78 lines
5.1 KiB
YAML
78 lines
5.1 KiB
YAML
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
|