8.6 KiB
work_item, stage, author_agent, status, created_at, model_used
| work_item | stage | author_agent | status | created_at | model_used |
|---|---|---|---|---|---|
| ORCH-079 | architecture | architect | proposed | 2026-06-09 | claude-opus-4-8 |
adr-0023: Reviewer-ось «обзорные доки» (README-ограничения) + закрытие эпика ORCH-52
- Статус: proposed
- Дата: 2026-06-09
- Источник: ORCH-079 (эпик ORCH-52, слой 52f — обзорные доки, слой 5/финал)
- Связи: замыкает цепочку стандартов эпика 52 — adr-0019 (52b,
PIPELINE_DOCS.md), adr-0020 (52c, frontmatter-контракт), adr-0021 (52d, канон промптов), adr-0022 (52e, трассировка маркеров). Детально —docs/work-items/ORCH-079/06-adr/ADR-001-readme-sync-and-reviewer-overview-docs-axis.md.
Контекст
Эпик ORCH-52 строит сквозной контракт «документация = golden source наравне с кодом» слоями:
52b (adr-0019) — описательный стандарт документов + скелеты; 52c (adr-0020) — машинный
frontmatter-контракт + HANDOFF_PROTOCOL.md; 52d (adr-0021) — 6 промптов в каноне Anthropic +
добровольная эмиссия 52c-схемы; 52e (adr-0022) — стандарт трассировки маркеров + reviewer-ось
«соответствие ADR». Закрыты слои структуры, машинного вердикта, формы промптов и трассировки кода —
но обзорная витрина проекта (корневой README.md) не охвачена.
Факты, сверенные с кодом main:
- Секция
README.md«Известные ограничения» (:236–241) имеет битую нумерацию (1,2,3,4,3,4) и выдаёт решённое за открытое: worktree-гонки (закрытоensure_worktree+ ORCH-026/088), in-process daemon (закрыто очередью ORCH-1), «Gitea CI не настроен» (опровергнутоcheck_ci_green,src/qg/checks.py:82), «no retry» (опровергнуто backoff/breaker вqueue_worker.py), плюс устаревшие issue-ID (зрелыйplane_syncORCH-010/066/068) и Playwright-timeout (неприменим к pytest-сервису; реальный механизм — watchdog ORCH-7). - Процессный пробел: reviewer (ось «Документация») проверяет обновление конвейерных доков, но обзорные разделы (README «Известные ограничения») в правиле не названы → витрина копит рассинхрон, т.к. закрытие ограничения не обязывает автора снять пункт.
Решение
Закрыть слой 5 (финал) эпика 52: синхронизировать обзорные доки с кодом по факту и добавить reviewer'у нормативную под-ось «обзорные доки» (по образцу оси трассировки 52e). Это docs + prompt-only, нулевое касание кода; правило — описательно-нормативное, не машинный гейт.
- Reviewer-ось «обзорные доки» (cross-cutting). В
.openclaw/agents/reviewer.mdось 4 «Документация» +<constraints>несут точечную врезку «❌→✅»: PR закрыл пункт README «Известные ограничения», README не обновлён → finding. Severity ≥ P1; при закрытии ограничения правкойsrc/без обновления README — совпадает с существующим P0 «src/изменён, доки не обновлены». Канон 52d (5 секций, формат запретов,<thinking>), 6 полей схемы 52c и ключverdict: APPROVED|REQUEST_CHANGES— байт-в-байт. - Витрина приведена к коду (NFR-3). Все 6 устаревших пунктов сняты/перенесены в «Закрыто (история)» с ORCH-ссылками; в «открытых» остаются ТОЛЬКО реально открытые, верифицированные кодом/задачей; нумерация сквозная. Запрет на изобретение ограничений (только уже задокументированные known-limitations — анти-scope-creep).
- Точечная сверка
README.md/docs/architecture/README.mdсsrc/(стадии/QG_CHECKS/ модели-эффорты/компоненты), минимально инвазивно. - Анти-регресс машинно: расширение
tests/test_agent_prompts_canon.py(tests-only) — assert присутствия оси обзорных доков; проверки 52d иtest_agent_frontmatter_no_model.pyзелёные.
Границы: src/**, STAGE_TRANSITIONS, QG_CHECKS, check_*, _parse_*, src/frontmatter.py,
схема БД — не трогаются. frontmatter_validation_strict остаётся False; новый QG не вводится.
Эпик ORCH-52 — закрыт (карта слоёв)
| Слой | Задача | Глобальный ADR | Артефакт |
|---|---|---|---|
| 52b — структура доков | ORCH-075 | adr-0019 | docs/_standards/PIPELINE_DOCS.md + _templates/ |
| 52c — машинный frontmatter | ORCH-076 | adr-0020 | src/frontmatter.py + HANDOFF_PROTOCOL.md |
| 52d — канон промптов | ORCH-077 | adr-0021 | 6 промптов .openclaw/agents/*.md |
| 52e — трассировка маркеров | ORCH-078 | adr-0022 | docs/_standards/TRACEABILITY.md |
| 52f — обзорные доки (финал) | ORCH-079 | adr-0023 | README.md + reviewer-ось |
Альтернативы
- Машинный enforcement (новый QG «README актуален»). Отвергнуто: вне scope; для self-hosting ложный fail валит конвейер всех проектов; правило остаётся нормативным, как 52e. Enforcement — возможная будущая задача (как hard-fail схемы 52c).
- Отдельный
docs/_standards/для правила обзорных доков. Отвергнуто: одно правило, один артефакт (README) — врезки в промпт достаточно; новый стандарт-файл избыточен. - Только per-work-item ADR. Отвергнуто: рвёт цепочку эпика 52 (52b–e имеют глобальный ADR); нет явной точки «эпик 52 закрыт».
Последствия
- + Витрина проекта честна; самоподдерживающаяся синхронность (reviewer-ось).
- + Эпик 52 формально закрыт сквозным ADR — единая точка входа для будущих агентов.
- + Self-hosting без рестарта: промпт
cat-ается из worktree → правило с следующего worktree отmainбез рестарта 8500. - + Полная обратимость: чисто текстовое изменение, нет миграций/состояния/kill-switch.
- − Правило нормативно, не enforced машинно → дисциплина + ревью (осознанный компромисс).
- − Рост
reviewer.mdна короткую врезку (митигейшн: точечность, без переписывания). - Откат:
git revertPR — доки/промпт/тест откатываются, поведение кода/гейтов идентично.
Связи
- Замыкает: adr-0019 (52b), adr-0020 (52c), adr-0021 (52d), adr-0022 (52e).
- Per-work-item:
docs/work-items/ORCH-079/06-adr/ADR-001-readme-sync-and-reviewer-overview-docs-axis.md. - Сверено по коду:
src/agents/launcher.py(ensure_worktree,_resolve_timeout),src/queue_worker.py(backoff/breaker),src/qg/checks.py:82,381,src/plane_sync.py:451,541,README.md:236–241,.openclaw/agents/reviewer.md,tests/test_agent_prompts_canon.py.