work_item: ORCH-078
stage: analysis
author_agent: analyst
status: ready-for-review
created_at: 2026-06-09
model_used: claude-opus-4-8
title: "ORCH-52e: трассировка ORCH-NNN — стандарт маркеров + правило чтения"
framework: pytest
scope: >
  Покрытие — структурные текстовые проверки (без запуска агентов, без импорта src/):
  наличие и содержание docs/_standards/TRACEABILITY.md, присутствие правила чтения в
  developer/architect, контроль соблюдения в reviewer, fallback-доступ, анти-археология,
  анти-регресс промптов 52d. Вне покрытия — массовый ретро-фит маркеров в src/ и любое
  поведение кода (src/** не меняется).
notes: >
  Тесты — расширение существующего tests/test_agent_prompts_canon.py (tests-only; src/ не
  трогается, что согласуется с AC-7). Проверки текстовые (open()+read() по файлам репозитория),
  как и канон 52d. test_agent_frontmatter_no_model.py остаётся зелёным. Полный регресс
  pytest tests/ -q должен оставаться зелёным.

tests:
  - id: TC-01
    type: unit
    description: "docs/_standards/TRACEABILITY.md существует и непустой (AC-1)."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-02
    type: unit
    description: "TRACEABILITY.md описывает формат маркера ORCH-NNN и правило размещения рядом с нетривиальным инвариантом (AC-1)."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-03
    type: unit
    description: "TRACEABILITY.md содержит реальный пример: ссылается на существующий путь src/...py и на существующий docs/work-items/ORCH-NNN/06-adr/...md (AC-1)."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-04
    type: unit
    description: "TRACEABILITY.md документирует fallback-доступ git show origin/main:docs/work-items/... (AC-4)."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-05
    type: unit
    description: "TRACEABILITY.md документирует анти-археологию: порог 3+ маркеров → сводная ссылка на сквозной ADR docs/architecture/adr/ (AC-5)."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-06
    type: unit
    description: "developer.md несёт правило чтения чужого маркера + ссылку на TRACEABILITY.md + fallback git show origin/main: (AC-2, AC-4)."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-07
    type: unit
    description: "architect.md несёт правило чтения маркированного кода + анти-археологию (3+ → сквозной ADR) + ссылку на TRACEABILITY.md (AC-2, AC-5)."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-08
    type: unit
    description: "reviewer.md несёт ось контроля: правка маркированного кода без сверки с ADR → finding (AC-3)."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-09
    type: unit
    description: "АНТИ-РЕГРЕСС 52d: 5 XML-секций и 6 полей 52c-схемы присутствуют во всех 6 промптах (NFR-2)."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-10
    type: unit
    description: "АНТИ-РЕГРЕСС 52d: machine-verdict ключи сохранены байт-в-байт (verdict:/result:/staging_status:/deploy_status:/security_status:, точный регистр и наборы значений) (NFR-2)."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-11
    type: unit
    description: "frontmatter промптов остаётся валидным без ключа model: (повторно зелёный) (NFR-2)."
    module: tests/test_agent_frontmatter_no_model.py
    expected: PASS

  - id: TC-12
    type: unit
    description: "CLAUDE.md и docs/architecture/README.md ссылаются на docs/_standards/TRACEABILITY.md как слой 4 эпика 52 (AC-8)."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-13
    type: integration
    description: "Полный регресс pytest tests/ -q зелёный; src/ не изменён (поведение кода идентично) (AC-7)."
    module: tests/
    expected: PASS
