work_item: ORCH-092
stage: analysis
author_agent: analyst
status: ready-for-review
created_at: 2026-06-09
model_used: claude-opus-4-8
title: "Промпт-аудит 6 агентов: расхардкод дат/модели, сверка гейтов, escalation, чистка"
framework: pytest
scope: >
  Покрываются структурные (pure-text) инварианты 6 промптов .openclaw/agents/*.md после
  аудита ORCH-092, плюс анти-регресс канона 52d/52c/52e и машинных verdict-ключей. Вне
  покрытия: поведение src/ (НЕ трогается), запуск реальных агентов. Полный регресс tests/
  должен оставаться зелёным. Новые TC живут в tests/test_agent_prompts_canon.py; TC-03 —
  единственный с импортом QG_CHECKS (integration).

notes: >
  Все правки docs/prompts-only — src/ не изменяется, прод-контейнер 8500 не перезапускается.
  Регрессом считается: слом любого verdict-ключа (verdict:/result:/staging_status:/
  deploy_status:/security_status:) по имени/регистру/значению; нарушение порядка/наличия 5
  XML-секций или 6 полей 52c; красный test_agent_prompts_canon.py или
  test_agent_frontmatter_no_model.py. P1-2 (rebase) и P2-2 (язык deployer) фиксируются ADR —
  TC проверяют лишь, что промпт согласован и канон/ключи не сломаны.

tests:
  - id: TC-01
    type: unit
    description: "AC-1: во всех 6 промптах пример frontmatter использует created_at: <YYYY-MM-DD> (нет литерала конкретной даты в копируемом блоке) и несёт инструкцию 'не копируй дату буквально'."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-02
    type: unit
    description: "AC-2: во всех 6 промптах пример несёт model_used: <resolve ORCH-41> (нет литерала claude-opus-4-8 в копируемом блоке) + оговорку про подстановку фактической модели."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-03
    type: integration
    description: "AC-3: каждое имя check_* в 6 промптах присутствует ключом в QG_CHECKS (импорт src.qg.checks). check_tests_passed подтверждён валидным; нет имён вне реестра."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-04
    type: unit
    description: "AC-4: developer.md не содержит 'разбивай на меньшие PR'; содержит эскалацию для слишком большого PR (декомпозиция на уровне задач); маркер 'свой PR' сохранён."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-05
    type: unit
    description: "AC-5: developer.md, reviewer.md, tester.md содержат секцию <escalation>…</escalation> с маршрутами back-to:analysis / back-to:dev / REQUEST_CHANGES соответственно."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-06
    type: unit
    description: "AC-7: tester.md содержит явный worktree-путь, smoke-проверку блока serial_gate в /queue (ORCH-088) и упоминание покрытия ТЗ (каждый TC из 04-test-plan) в success_criteria; маркеры pytest//health//status//queue сохранены."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-07
    type: unit
    description: "AC-6: deployer.md несёт в начале видную рамку с запретом рестарта прод-8500; анти-регресс-маркеры docker exec orchestrator-staging / pr_already_merged / 8500 / INFRA-WAIVED сохранены."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-08
    type: unit
    description: "AC-8: reviewer.md не содержит 'того же экземпляра Developer'; маркеры REQUEST_CHANGES, 'НЕ обновлена', TRACEABILITY.md, 'Известные ограничения', ORCH-079 сохранены."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-09
    type: unit
    description: "AC-9 анти-регресс: verdict-ключи (verdict:/result:/staging_status:/deploy_status:/security_status:) и значения (APPROVED/REQUEST_CHANGES/PASS/FAIL/SUCCESS/FAILED) присутствуют байт-в-байт; 5 XML-секций в нормативном порядке + 6 полей 52c во всех 6 промптах (существующие канон-проверки зелёные)."
    module: tests/test_agent_prompts_canon.py
    expected: PASS

  - id: TC-10
    type: unit
    description: "AC-9: верхний frontmatter определения агента остаётся валидным YAML с name/description и без ключа model: во всех 6 промптах (регресс test_agent_frontmatter_no_model.py)."
    module: tests/test_agent_frontmatter_no_model.py
    expected: PASS

  - id: TC-11
    type: integration
    description: "AC-9/AC-10: полный регресс pytest tests/ -q зелёный; git diff не содержит правок src/ (docs/prompts-only)."
    module: tests/
    expected: PASS
