Files
orchestrator/tests/manual/ab_prompt_compare.md
claude-bot 8beed58d98 docs(prompts): rewrite 6 agent prompts in Anthropic canon + emit 52c schema (ORCH-52d)
Замыкающий слой эпика ORCH-52. Тело всех 6 промптов .openclaw/agents/*.md
переписано в едином каноне Anthropic (5 обязательных XML-секций <context>/
<task>/<deliverables>/<constraints>/<output_format>, запреты « X →  Y»,
<thinking> у решающих ролей), и каждый промпт добровольно эмитит 6-польную
frontmatter-схему 52c (work_item/stage/author_agent/status/created_at/
model_used) аддитивно — рядом с machine-verdict ключом, не меняя его имя/
регистр/значения (verdict:/result:/staging_status:/deploy_status:/
security_status:).

Docs/prompts-only: src/**, STAGE_TRANSITIONS, QG_CHECKS, схема БД не тронуты;
frontmatter_validation_strict остаётся False (enforcement не включён).
Функциональное содержание старых промптов перенесено 1:1 (инвентарь TRZ §FR-6).

- tests/test_agent_prompts_canon.py: структурный анти-регресс (TC-01…TC-07)
- tests/manual/ab_prompt_compare.md: метод A/B (TC-09 / AC-6)
- CLAUDE.md, CHANGELOG.md обновлены; README/ADR — архитектором

Полный регресс pytest tests/ -q зелёный (1244); test_agent_frontmatter_no_model
остаётся зелёным.

Refs: ORCH-077
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 15:08:27 +03:00

41 lines
3.4 KiB
Markdown
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.
# A/B-проверка промптов (старый vs новый канон) — ORCH-077 / ORCH-52d
> Полуавтоматический интеграционный прогон (test-plan **TC-09**, покрывает **AC-6**).
> Это не pytest-кейс: семантическое качество выхода агента нельзя проверить юнит-тестом.
> Результат фиксируется тестером в `docs/work-items/ORCH-077/13-test-report.md`.
## Зачем
ORCH-077 переписывает тело 6 системных промптов в каноне Anthropic и учит их эмитить
frontmatter-схему 52c. Критерий приёмки AC-6 — **новый промпт не хуже старого**: не растёт число
циклов `REQUEST_CHANGES` и не теряется содержание артефакта стадии.
## In-vivo метод (основной, без прод-рестарта)
Промпт `cat`-ается из git-worktree агента в момент запуска (`launcher --system-prompt
"$(cat .openclaw/agents/<role>.md)"`), НЕ запекается в образ (ADR-001 D6). Следствие: worktree
последующих стадий **этой же** ветки ORCH-077 срезается на её HEAD → reviewer и tester самой
ORCH-077 исполняются **уже под новыми промптами**. Это естественный A/B без отдельного стенда и
без рестарта прод-контейнера (8500).
Зафиксировать в `13-test-report.md`:
1. **Стадия сравнения** — ≥1 репрезентативная (например `review` и/или `testing` самой ORCH-077).
2. **Число циклов `REQUEST_CHANGES`** на этой задаче — не выросло относительно типичного для
docs-задачи (ожидаемо 01).
3. **Полнота артефакта**`12-review.md` / `13-test-report.md` содержат все обязательные секции
и обязательную frontmatter-схему 52c (6 полей).
4. **Парсимость машинного вердикта**`verdict:` / `result:` корректно прочитаны гейтом
(`check_reviewer_verdict` / `check_tests_passed`), регистр/имя ключа не изменились.
## Опциональный метод (ручное сравнение на фиксированном входе)
Допустимо вне конвейера сравнить артефакт одной стадии, сгенерированный под старым и новым
промптом на одинаковом входе (например прогнать reviewer на одном и том же diff с
`git show <commit>:.openclaw/agents/reviewer.md` vs текущим). Метод offline, без деструктива.
## Критерий PASS
Новый промпт **не хуже**: машинный вердикт парсится, обязательные элементы артефакта на месте,
число циклов `REQUEST_CHANGES` не выросло. Любой регресс (потеря содержания, непарсимый вердикт,
рост циклов) → FAIL → фиксируется и возвращается на доработку промптов.