90 lines
5.6 KiB
YAML
90 lines
5.6 KiB
YAML
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
|