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

3.4 KiB
Raw Blame History

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 → фиксируется и возвращается на доработку промптов.