118 lines
7.6 KiB
YAML
118 lines
7.6 KiB
YAML
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
|