Files
orchestrator/docs/work-items/ORCH-078/03-acceptance-criteria.md

7.7 KiB
Raw Permalink Blame History

work_item, stage, author_agent, status, created_at, model_used
work_item stage author_agent status created_at model_used
ORCH-078 analysis analyst ready-for-review 2026-06-09 claude-opus-4-8

03 — Критерии приёмки (Acceptance Criteria): ORCH-078 — ORCH-52e: трассировка ORCH-NNN

Work Item: ORCH-078 · Repo: orchestrator · Стадия: analysis

Формат: каждый критерий имеет PASS (что должно быть истинно для приёмки) и FAIL (что считается провалом). Reviewer проверяет их буквально по файлам репозитория.


AC-1 — Стандарт маркеров создан с реальным примером из кода

Условие: в docs/_standards/ существует TRACEABILITY.md с форматом маркера, правилом размещения и проверяемым примером из реального кода.

  • PASS: файл docs/_standards/TRACEABILITY.md существует; описывает формат ORCH-NNN, где ставится (рядом с нетривиальным инвариантом), как читать историю; содержит ≥1 пример, ссылающийся на реально существующие в main файл src/... + маркер ORCH-NNN + путь docs/work-items/ORCH-NNN/06-adr/... (напр. src/serial_gate.py → ORCH-088 → ADR-001-serial-gate.md).
  • FAIL: файла нет; нет формата/правила размещения; пример отсутствует или ссылается на несуществующие файл/ADR (нерабочая трассировка).

AC-2 — Правило чтения присутствует в developer и architect

Условие: правило «правишь код с маркером ORCH-NNN → прочитай его 06-adr ПЕРЕД изменением, не сломай инвариант» присутствует в developer.md и architect.md.

  • PASS: оба промпта содержат правило (со ссылкой на TRACEABILITY.md), сформулированное как правило для чужих маркеров в правимом коде (не просто «реализуй по 06-adr/ текущей задачи»); developer-формулировка соблюдает формат « X → Y».
  • FAIL: правило отсутствует в одном из промптов; либо лишь повторяет 52d-упоминание ADR текущей задачи без сути «читай ADR чужого маркера перед правкой».

AC-3 — Reviewer проверяет соблюдение трассировки

Условие: reviewer.md содержит ось/под-пункт контроля: правка маркированного кода без сверки с его ADR / со сломом инварианта → finding.

  • PASS: reviewer-промпт явно требует проверять сверку правок маркированного (ORCH-NNN) кода с его 06-adr; нарушение даёт finding с severity (≥P1); есть ссылка на TRACEABILITY.md.
  • FAIL: reviewer не проверяет соблюдение трассировки (правило есть у автора, но никто не контролирует) либо проверка не привязана к severity/finding.

AC-4 — Fallback-доступ задокументирован

Условие: способ git show origin/main:docs/work-items/ORCH-NNN/06-adr/... задокументирован.

  • PASS: команда присутствует в TRACEABILITY.md и в developer.md (рядом с правилом чтения), с пояснением «когда папки нет в текущей ветке».
  • FAIL: fallback не задокументирован нигде, либо приведён без контекста применения.

AC-5 — Анти-археология зафиксирована

Условие: конвенция «3+ маркеров в блоке → сводная ссылка на сквозной ADR (docs/architecture/ adr/)» зафиксирована.

  • PASS: правило присутствует в TRACEABILITY.md (с примером, напр. src/merge_gate.py → ORCH-043/065/071/073 → сквозные adr-0006/0013/0014/0016) и в architect.md.
  • FAIL: правило отсутствует либо сформулировано без числового порога/без указания на сквозной ADR.

AC-6 — Анти-дубль: 52e не повторяет 52d

Условие: 52e не дублирует уже сделанное в 52d; где смежное поведение есть — ссылается/усиливает.

  • PASS: промпты ссылаются на единый текст правила в TRACEABILITY.md (а не копируют его в каждый); XML-канон 52d (5 секций) и 52c-эмиссия сохранены; нет дословного повтора уже имевшихся 52d-формулировок.
  • FAIL: правило скопировано дословно в несколько промптов вместо ссылки; либо промпты переписаны целиком (нарушен канон 52d).

AC-7 — Код не изменён; анти-регресс промптов держится; регресс зелёный

Условие: изменены только docs/** и .openclaw/agents/*.md (+ tests-only расширение структурного теста); src/** не тронут; анти-регресс промптов сохранён.

  • PASS: git diff --name-only origin/main показывает изменения только в docs/**, .openclaw/agents/*.md, tests/test_agent_prompts_canon.py, CLAUDE.md, CHANGELOG.md (нет src/**, STAGE_TRANSITIONS, QG_CHECKS, _parse_*, схемы БД); tests/test_agent_prompts_canon.py и tests/test_agent_frontmatter_no_model.py зелёные; machine-verdict ключи (verdict:/result:/staging_status:/deploy_status:/security_status:) сохранены байт-в-байт; полный pytest tests/ -q зелёный.
  • FAIL: любой файл src/** изменён; потерян verdict-ключ/XML-секция/запрет; красный тест.

AC-8 — Сопутствующая документация обновлена

Условие: CLAUDE.md, docs/architecture/README.md, CHANGELOG.md обновлены; есть ADR задачи.

  • PASS: CLAUDE.md и docs/architecture/README.md ссылаются на TRACEABILITY.md (слой 4 эпика 52); в CHANGELOG.md есть запись ## [Unreleased]; создан docs/work-items/ORCH-078/06-adr/ ADR-001-*.md.
  • FAIL: любой из перечисленных документов не обновлён/не создан (для reviewer: необновлённая документация при изменении репозитория → REQUEST_CHANGES).

Сводная матрица AC ↔ FR/BR

AC Покрывает
AC-1 BR-1 / FR-1
AC-2 BR-2 / FR-2, FR-3
AC-3 BR-3 / FR-4
AC-4 BR-4 / FR-1, FR-5
AC-5 BR-5 / FR-1, FR-6
AC-6 BR-6 / FR-1..FR-4
AC-7 NFR-1, NFR-2 / FR-8
AC-8 BR-7 / FR-7