# 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-задачи (ожидаемо 0–1).
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 → фиксируется и возвращается на доработку промптов.
