Files
orchestrator/docs/work-items/ORCH-077/04-test-plan.yaml

78 lines
5.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
work_item: ORCH-077
title: "ORCH-52d — канон Anthropic + эмиссия frontmatter-схемы в 6 промптах агентов"
framework: pytest
scope: >
Структурная верификация 6 системных промптов (.openclaw/agents/*.md): наличие XML-секций,
инструкции эмитить обязательную frontmatter-схему 52c, сохранение machine-verdict ключей и
ключевых анти-регресс маркеров, валидность YAML-frontmatter. Вне покрытия: семантическое
качество выхода агентов (оценивается A/B-проверкой вручную, TC-09) и любая логика src/
(код не меняется).
notes: >
Задача docs/prompts-only — src/ не трогается. Тесты читают файлы .openclaw/agents/*.md как
текст/YAML. Существующий tests/test_agent_frontmatter_no_model.py (ORCH-074) ОБЯЗАН остаться
зелёным. Полный регресс pytest tests/ -q должен оставаться зелёным. Имена тест-функций/файла —
ориентир; точную реализацию определяет developer (например tests/test_agent_prompts_canon.py).
Списки обязательных секций/полей/ключей вынести в параметризацию, чтобы тест шёл по всем 6
ролям единообразно.
tests:
- id: TC-01
type: unit
description: "Каждый из 6 промптов содержит все 5 XML-секций (<context>/<task>/<deliverables>/<constraints>/<output_format>), открывающий и закрывающий тег. (AC-1)"
module: tests/test_agent_prompts_canon.py
expected: PASS
- id: TC-02
type: unit
description: "Каждый промпт перечисляет все 6 имён полей схемы 52c (work_item/stage/author_agent/status/created_at/model_used) в теле. (AC-2)"
module: tests/test_agent_prompts_canon.py
expected: PASS
- id: TC-03
type: unit
description: "Для каждой роли в промпте присутствуют корректные конкретные значения author_agent (==роль) и stage (стадия роли по карте FR-2). (AC-2)"
module: tests/test_agent_prompts_canon.py
expected: PASS
- id: TC-04
type: unit
description: "Каждый промпт ссылается на docs/_templates/ и хотя бы на один эталон (ORCH-073 или ORCH-088). (AC-3)"
module: tests/test_agent_prompts_canon.py
expected: PASS
- id: TC-05
type: unit
description: "АНТИ-РЕГРЕСС machine-verdict ключей: reviewer.md содержит 'verdict:' (APPROVED|REQUEST_CHANGES), tester.md — 'result:' (PASS|FAIL), deployer.md — 'staging_status:' и 'deploy_status:' (SUCCESS|FAILED), регистр сохранён. (AC-4)"
module: tests/test_agent_prompts_canon.py
expected: PASS
- id: TC-06
type: unit
description: "АНТИ-РЕГРЕСС deployer self-hosting: deployer.md содержит canonical 'docker exec orchestrator-staging' staging-команду, merge-guard 'pr_already_merged', запрет рестарта 8500 изнутри, ORCH-061 'INFRA-WAIVED'. (AC-4)"
module: tests/test_agent_prompts_canon.py
expected: PASS
- id: TC-07
type: unit
description: "АНТИ-РЕГРЕСС ключевых маркеров остальных ролей: analyst — 4 deliverable + Write tool; architect — ADR-формат + сквозной ADR + эскалация; developer — TDD + 'не мержить свой PR' + 'не рестартить прод'; reviewer — правило 'src изменён, доки нет → REQUEST_CHANGES'. (AC-4)"
module: tests/test_agent_prompts_canon.py
expected: PASS
- id: TC-08
type: unit
description: "Валидность frontmatter промптов: каждый .openclaw/agents/*.md парсится как YAML-mapping, name==роль, description непуст, ключа 'model:' нет (re-use существующего теста ORCH-074). (AC-8)"
module: tests/test_agent_frontmatter_no_model.py
expected: PASS
- id: TC-09
type: integration
description: "A/B-проверка на репрезентативной стадии (старый vs новый промпт): новый не хуже по числу циклов REQUEST_CHANGES и полноте артефакта; вердикт корректно парсится. Ручной/полуавтоматический прогон; результат фиксируется в 13-test-report.md. (AC-6)"
module: tests/manual/ab_prompt_compare.md
expected: PASS
- id: TC-10
type: integration
description: "Полный регресс: pytest tests/ -q зелёный (код не тронут, гейты и контракты целы). (AC-9)"
module: tests/
expected: PASS