work_item: ORCH-011 stage: analysis author_agent: analyst status: ready-for-review created_at: 2026-06-11 model_used: claude-opus-4-8 title: "Полная документация системы мультиагентов: структурный анти-дрейф витрины" framework: pytest scope: > Покрывается: каркас витрины (файлы/разделы/маршруты/норматив), сходимость машинно-проверяемых фактов с кодом (стадии из STAGE_TRANSITIONS, 6 агентов), валидность внутренних ссылок, отсутствие секретов/хост-хардкодов, обновление указателей README/CLAUDE.md, неизменность рантайма (полный регресс). Вне покрытия: качество прозы/дизайна слайдов (проверяет reviewer/человек), фактический рендеринг .pptx (ручная проверка по процедуре AC-7). notes: > Все тесты — структурные, без сети/LLM/subprocess (паттерн tests/test_lite_setup_doc.py, test_bundled_setup_doc.py, test_orch_52b_docs_standard.py). Точные пути витрины фиксирует ADR-001 архитектора (рекомендация TRZ: docs/overview/); имя тест-модуля ниже — tests/test_system_docs.py — может быть уточнено в ADR, состав проверок обязателен. Сверки derive-из-кода (стадии) обязаны импортировать src.stages, а не дублировать статичный список (анти-дрейф, образец — тест полноты ORCH-091). FORBIDDEN-скан импортирует список запрещённых литералов из tests/test_no_host_hardcodes.py. Полный регресс tests/ должен оставаться зелёным. tests: # ---- FR-1: каркас витрины и единая точка входа ---- - id: TC-01 type: unit description: "Каталог витрины и индекс существуют; индекс содержит обязательные разделы: вход «что это», ссылки на бизнес-часть и тех-часть, маршруты аудиторий, норматив сопровождения (AC-1)." module: tests/test_system_docs.py expected: PASS - id: TC-02 type: unit description: "Из индекса по относительным ссылкам достижимы все файлы витрины: бизнес-часть, тех-блоки 1–7, презентационный источник (AC-1/AC-3)." module: tests/test_system_docs.py expected: PASS # ---- FR-2: бизнес-уровень ---- - id: TC-03 type: unit description: "Бизнес-часть содержит 5 обязательных смысловых разделов (проблема, решение, что умеет, ценность, сценарии) и минимум 5 сценариев использования (AC-2)." module: tests/test_system_docs.py expected: PASS # ---- FR-3: тех-уровень, сходимость с кодом ---- - id: TC-04 type: unit description: "Тех-часть содержит все 7 блоков контент-карты (архитектура, конвейер, агенты, объекты, интеграции, качество/безопасность, наблюдаемость); блок архитектуры несёт схему потока (AC-3)." module: tests/test_system_docs.py expected: PASS - id: TC-05 type: unit description: "Карта стадий витрины сверена импортом src.stages.STAGE_TRANSITIONS: каждая стадия (включая deploy-staging и cancelled) упомянута; derive из кода, не статичный список (AC-4)." module: tests/test_system_docs.py expected: PASS - id: TC-06 type: unit description: "Имена exit-гейтов рёбер в витрине существуют в реестре qg.checks.QG_CHECKS (нет выдуманных имён гейтов) (AC-4)." module: tests/test_system_docs.py expected: PASS - id: TC-07 type: unit description: "Блок агентов покрывает все 6 ролей (analyst/architect/developer/reviewer/tester/deployer); каждой роли сопоставлены артефакты; таблица модель/эффорт присутствует (AC-5)." module: tests/test_system_docs.py expected: PASS # ---- FR-1/FR-3: link-first ---- - id: TC-08 type: unit description: "Все относительные ссылки витрины резолвятся в существующие файлы; обязательные ссылки на golden sources (architecture/README, internals, PIPELINE_DOCS, HANDOFF_PROTOCOL, adr/, LITE_SETUP, BUNDLED_SETUP, PRODUCT_VISION, CLAUDE.md) присутствуют (AC-6)." module: tests/test_system_docs.py expected: PASS - id: TC-09 type: unit description: "Витрина не ссылается на вне-репозиторные пути (tasks/, memory/, абсолютные пути хоста) (AC-12)." module: tests/test_system_docs.py expected: PASS # ---- FR-4: презентационная основа ---- - id: TC-10 type: unit description: "Презентационный источник существует, несёт явную слайдо-структуру (нумерованные слайды с заголовками, не менее 12) и покрывает обязательный нарратив (проблема/решение/как работает/возможности/сценарии/тираж) (AC-7)." module: tests/test_system_docs.py expected: PASS - id: TC-11 type: unit description: "Зависимости генерации презентации не попали в прод-образ: requirements*/Dockerfile не содержат библиотек генерации (например python-pptx) (AC-7/NFR-2)." module: tests/test_system_docs.py expected: PASS # ---- FR-6: норматив и указатели ---- - id: TC-12 type: unit description: "Индекс витрины несёт норматив сопровождения («в том же PR»); README.md содержит ссылку на витрину; CLAUDE.md содержит указатель (AC-9/AC-11)." module: tests/test_system_docs.py expected: PASS # ---- NFR-3: секреты/хост-хардкоды ---- - id: TC-13 type: unit description: "FORBIDDEN-скан новых доков и презентационного источника: запрещённые хост-литералы (импорт из tests/test_no_host_hardcodes.py) и секрет-эвристика не находят совпадений (AC-10/AC-11)." module: tests/test_system_docs.py expected: PASS # ---- Регресс ---- - id: TC-14 type: integration description: "Полный регресс: pytest tests/ -q зелёный; существующие структурные док-тесты (test_lite_setup_doc, test_bundled_setup_doc, test_orch_52b_docs_standard, test_agent_prompts_canon) не сломаны (AC-10/AC-11)." module: tests/ expected: PASS