110 lines
7.0 KiB
Markdown
110 lines
7.0 KiB
Markdown
---
|
||
work_item: ORCH-079
|
||
stage: analysis
|
||
author_agent: analyst
|
||
status: ready-for-review
|
||
created_at: 2026-06-09
|
||
model_used: claude-opus-4-8
|
||
---
|
||
|
||
# 03 — Критерии приёмки (Acceptance Criteria): ORCH-079 — ORCH-52f: синхронизация README/доков с кодом + reviewer-гейт обзорных доков
|
||
|
||
Work Item: **ORCH-079** · Repo: **orchestrator** · Стадия: analysis
|
||
|
||
Формат: каждый критерий имеет **PASS** (что должно быть истинно для приёмки) и **FAIL**
|
||
(что считается провалом). Reviewer/tester проверяет их буквально по файлам репозитория и коду.
|
||
|
||
---
|
||
|
||
## AC-1 — Последовательная нумерация «Известные ограничения»
|
||
|
||
**Условие:** Секция «Известные ограничения» в корневом `README.md` пронумерована сквозно без
|
||
повторов.
|
||
- **PASS:** номера в списке идут `1, 2, 3, …` строго по возрастанию без дубликатов; повторов `3`/`4`
|
||
(текущее `1,2,3,4,3,4`) нет.
|
||
- **FAIL:** есть повторяющиеся номера, пропуски или не-последовательная нумерация.
|
||
|
||
---
|
||
|
||
## AC-2 — Решённые пункты сняты/помечены закрытыми с ORCH-ссылкой
|
||
|
||
**Условие:** Четыре решённых/устаревших пункта (single-task/worktree, in-process daemon-потоки,
|
||
Gitea CI, no-retry) не присутствуют как **открытые** ограничения; если упомянуты — то как
|
||
закрытые, с указанием ORCH-решения.
|
||
- **PASS:** ни один из этих пунктов не стоит в списке открытых ограничений; для каждого упоминания
|
||
(если оставлено) указана закрывшая задача/механизм (worktree — ORCH-026/088; очередь — ORCH-1;
|
||
CI — `check_ci_green`; retry/breaker — ORCH-1 resilience).
|
||
- **FAIL:** хотя бы один из четырёх пунктов остался в формулировке «открыто/не настроено/в работе»
|
||
без пометки закрытия и без ORCH-ссылки.
|
||
|
||
---
|
||
|
||
## AC-3 — Оставшиеся ограничения реально открыты (сверено с кодом)
|
||
|
||
**Условие:** Каждый пункт, оставшийся в списке открытых ограничений, подтверждён открытым по коду
|
||
или закрытой/незакрытой задаче.
|
||
- **PASS:** для каждого оставшегося пункта в `02-trz.md`/`12-review.md` прослеживается подтверждение
|
||
открытости (ссылка на код/задачу); ни один открытый пункт не противоречит фактическому коду.
|
||
- **FAIL:** в списке открытых остаётся пункт, который по коду уже решён, либо пункт без какого-либо
|
||
подтверждения открытости.
|
||
|
||
---
|
||
|
||
## AC-4 — `docs/architecture/README.md` согласован с кодом
|
||
|
||
**Условие:** В части, затронутой задачей, `docs/architecture/README.md` не противоречит `src/`.
|
||
- **PASS:** таблица стадий/гейтов соответствует `STAGE_TRANSITIONS`; реестр `QG_CHECKS`
|
||
соответствует `src/qg/checks.py::QG_CHECKS`; таблица моделей/эффортов соответствует резолву
|
||
(`claude-opus-4-8`; developer=`xhigh`, tester/deployer=`medium`, прочие=`high`); перечень
|
||
компонентов соответствует модулям `src/`.
|
||
- **FAIL:** найдено хотя бы одно фактическое расхождение в перечисленных таблицах, оставшееся
|
||
непоправленным.
|
||
|
||
---
|
||
|
||
## AC-5 — Reviewer требует обновлять обзорные доки (README limitations)
|
||
|
||
**Условие:** `.openclaw/agents/reviewer.md` явно обязывает: при решении пункта из README «Известные
|
||
ограничения» необновление README — finding.
|
||
- **PASS:** в оси «Документация» (`<task>`) и/или `<constraints>` `reviewer.md` присутствует явное
|
||
упоминание обзорных доков / README «Известные ограничения» с трактовкой «не обновлено → finding»;
|
||
формулировка в каноне 52d («❌→✅»).
|
||
- **FAIL:** правило отсутствует, упоминает только конвейерные доки, или внесено вне канона
|
||
(сломаны 5 XML-секций / формат запретов).
|
||
|
||
---
|
||
|
||
## AC-6 — Анти-регресс: код не тронут, verdict-ключи и канон 52d сохранены, тесты зелёные
|
||
|
||
**Условие:** Изменения не затрагивают рантайм; контракт reviewer сохранён; регресс зелёный.
|
||
- **PASS:** `git diff` не содержит изменений в `src/**` (особенно `STAGE_TRANSITIONS`, `QG_CHECKS`,
|
||
`check_*`, схема БД); в `reviewer.md` ключ `verdict:` и значения `APPROVED|REQUEST_CHANGES` —
|
||
байт-в-байт, 6 полей схемы 52c и 5 XML-секций на месте; `pytest tests/ -q` зелёный, включая
|
||
`tests/test_agent_prompts_canon.py` и `tests/test_agent_frontmatter_no_model.py`.
|
||
- **FAIL:** есть правка `src/**`; изменён `verdict:`/его значения; сломан XML-канон/схема 52c;
|
||
любой тест регресса красный.
|
||
|
||
---
|
||
|
||
## AC-7 — `CLAUDE.md` / `CHANGELOG` / ADR обновлены
|
||
|
||
**Условие:** Сопроводительная документация обновлена в том же PR.
|
||
- **PASS:** `CHANGELOG.md` содержит запись об ORCH-079 в `## [Unreleased]`; создан
|
||
`docs/work-items/ORCH-079/06-adr/ADR-001-*.md`; `CLAUDE.md` обновлён, если правило/финал эпика
|
||
его затрагивает (иначе — обоснованно не затронут).
|
||
- **FAIL:** отсутствует запись в `CHANGELOG.md`, либо нет ADR задачи, либо `CLAUDE.md` устарел
|
||
относительно внесённого правила.
|
||
|
||
---
|
||
|
||
## Сводная матрица AC ↔ FR/BR
|
||
| AC | Покрывает |
|
||
|----|-----------|
|
||
| AC-1 | BR-1 / FR-1 |
|
||
| AC-2 | BR-2 / FR-2 |
|
||
| AC-3 | BR-3 / FR-2 |
|
||
| AC-4 | BR-4 / FR-3, FR-4 |
|
||
| AC-5 | BR-5 / FR-5 |
|
||
| AC-6 | NFR-1, NFR-2 / FR-6 |
|
||
| AC-7 | BR-6 |
|