docs(claude-playbook): перенесены находки зеркального codex-плейбука
- Зачем:
- зеркальный codex-subagent-playbook ушёл вперёд по договорам ревью и
экономии контекста координатора; согласованный с пользователем список
находок перенесён в этот скилл.
- Что:
- SKILL.md: установка «оптика, не конвейер», гейт и ручки эскалации для
субагентов, саморевью исполнителя, шкала риска ревью с линзами
TASK/CODE, статусы триажа с предохранителем кругов, постепенная
приёмка с саморефлексией, раздел «Сбои координации».
- prompts/: устойчивые ID находок, четыре статуса триажа, резолюции — в
файл отчёта вместо тикета (лечит эхо файла задачи); новые
result-contract.md и runtime-language.md.
- prompt-templates.md: файлы линий ревью, сборка промптов с хвостом
языка, вердикт перепроверки из task-notification; lessons.md — гейт
на дистилляцию и датированная отмена урока про доводы в файле задачи.
- Проверка:
- проверка относительных ссылок и git diff --check — чисто.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5b2db5bd7f
commit
fdf744e578
8 files changed
+235
-62
No files matched your search
@@ -11,6 +11,12 @@
|
||||
- [prompts/recheck-header.md](prompts/recheck-header.md) — узкая
|
||||
перепроверка (этап 5); может принести новую находку — это не нарушение
|
||||
узости, отправь её исполнителю тем же порядком.
|
||||
- [prompts/result-contract.md](prompts/result-contract.md) — формат
|
||||
результата вспомогательных агентов (исследователь, fast-worker, раннер);
|
||||
исполнителю формат задаёт сам шаблон задачи.
|
||||
- [prompts/runtime-language.md](prompts/runtime-language.md) — язык
|
||||
обмена (английский); подшивается в конец каждого собранного промпта,
|
||||
чтобы правило доехало до самих агентов.
|
||||
|
||||
Правила:
|
||||
|
||||
@@ -30,16 +36,23 @@
|
||||
вызова скилла):
|
||||
|
||||
```bash
|
||||
cat "$D/review-params.md" "$P/review-boilerplate.md" > "$D/review-prompt.md"
|
||||
cat "$D/task-body.md" "$P/runtime-language.md" > "$D/task-prompt.md"
|
||||
cat "$D/review-params.md" "$D/line-task.md" "$P/review-boilerplate.md" \
|
||||
"$P/runtime-language.md" > "$D/review-prompt-task.md"
|
||||
# вторая линия: line-code.md -> review-prompt-code.md;
|
||||
# одиночный ревьюер: line-rev.md -> review-prompt.md
|
||||
cat "$P/triage-header.md" "$D/review-codex.md" "$D/review-claude.md" \
|
||||
"$D/notes.md" > "$D/fix-prompt.md" # notes.md опционален — нет, так не включай
|
||||
cat "$P/recheck-header.md" "$D/recheck-params.md" > "$D/recheck-prompt.md"
|
||||
"$D/notes.md" "$P/runtime-language.md" > "$D/fix-prompt.md"
|
||||
# notes.md опционален — нет, так не включай
|
||||
cat "$P/recheck-header.md" "$D/recheck-params.md" \
|
||||
"$P/runtime-language.md" > "$D/recheck-prompt.md"
|
||||
```
|
||||
|
||||
## 1. Задача исполнителю (`codex exec`, workspace-write)
|
||||
|
||||
Сохрани как `$D/task-prompt.md` — под этим именем его ждут примеры
|
||||
codex-exec.md.
|
||||
Напиши параметрический текст в `$D/task-body.md`; финальный
|
||||
`$D/task-prompt.md` собирается `cat`'ом с хвостом языка (сборка выше) —
|
||||
под этим именем его ждут примеры codex-exec.md.
|
||||
|
||||
```markdown
|
||||
# Task: {{ticket/goal in one line}}
|
||||
@@ -74,15 +87,30 @@ will run it before the reviews start.
|
||||
4. Doubts, if any.
|
||||
```
|
||||
|
||||
## 2. Ревью: параметрический блок (один на ОБОИХ ревьюеров)
|
||||
## 1а. Саморевью исполнителя (resume тем же тредом, effort medium)
|
||||
|
||||
Блок не знает, кто его читает; куда класть вердикт, задаёт обёртка вызова,
|
||||
и пути у ревьюеров разные (иначе коллизия). Codex получает собранный файл
|
||||
через stdin (вердикт = его `-o`-отчёт); Клод-субагенту в prompt — короткая
|
||||
английская обёртка:
|
||||
Отдельным ходом после отчёта о реализации, до внешних ревью — смена рамки
|
||||
«автор → критик» отдельным ходом ловит больше, чем финальный пункт
|
||||
чек-листа в промпте задачи:
|
||||
|
||||
```text
|
||||
Read {{path to review-prompt.md}} and execute it. Working directory:
|
||||
Now switch roles: you are a reviewer of your own diff. Walk it against the
|
||||
task's acceptance criteria and boundaries. Fix what you find, stay inside
|
||||
the task scope. Return one line: SELF-REVIEW: found N, fixed N — plus one
|
||||
phrase per unfixed item, if any.
|
||||
```
|
||||
|
||||
## 2. Ревью: общий блок + файл линии
|
||||
|
||||
Общий параметрический блок (`review-params.md`) один на обе линии и не
|
||||
знает, кто его читает; линзу и префикс ID задаёт файл линии, поэтому
|
||||
собранных промптов — по одному на линию, с разными путями. Куда класть
|
||||
вердикт, задаёт обёртка вызова, и пути вердиктов у ревьюеров тоже разные
|
||||
(иначе коллизия). Codex получает свой собранный файл через stdin (вердикт
|
||||
= его `-o`-отчёт); Клод-субагенту в prompt — короткая английская обёртка:
|
||||
|
||||
```text
|
||||
Read {{path to this line's review prompt}} and execute it. Working directory:
|
||||
{{repo root}}. Write the full findings index to
|
||||
{{$D/review-claude.md}} — it is outside the repo, so the mandate allows
|
||||
it (via Write or a Bash heredoc, whichever you have). Keep the index
|
||||
@@ -103,14 +131,35 @@ You are an independent adversarial reviewer. Working directory: repo root
|
||||
|
||||
## What you review
|
||||
{{task file + spec; what is already committed and NOT under review}}
|
||||
Changes (uncommitted, see the working tree): {{file list}}
|
||||
Changes under review: {{exact paths, prepared diff path, or diff command —
|
||||
must let the reviewer tell reviewed work from unrelated tree noise}}
|
||||
Test command (expect {{N}} passed): {{command}}
|
||||
|
||||
## Focus
|
||||
{{adapt: 3–4 points — math/edge cases, criteria compliance, test honesty,
|
||||
shared code/regressions, artifacts}}
|
||||
{{adapt: 2–3 extra points for this task — math/edge cases, artifacts,
|
||||
shared code}}
|
||||
```
|
||||
|
||||
Файлы линий (`line-task.md` / `line-code.md`), по одному на слепую линию:
|
||||
|
||||
```markdown
|
||||
## Your line
|
||||
FINDING PREFIX: TASK
|
||||
Lens: compliance with the statement, acceptance criteria, boundaries,
|
||||
intended observable result.
|
||||
```
|
||||
|
||||
```markdown
|
||||
## Your line
|
||||
FINDING PREFIX: CODE
|
||||
Lens: correctness, invariants, regressions, security, test honesty.
|
||||
```
|
||||
|
||||
Одиночному ревьюеру (простая ступень шкалы этапа 4) — один `line-rev.md`
|
||||
с обеими линзами и префиксом `REV`. По эмпирике прогонов естественное
|
||||
распределение: Codex — CODE (дефекты нового кода), Клод — TASK (уровень
|
||||
задачи и архитектуры).
|
||||
|
||||
Вариант для **этапа 2** (ревью постановки, кода изменений ещё нет) — тот же
|
||||
boilerplate, другой параметрический блок:
|
||||
|
||||
@@ -132,6 +181,9 @@ Code to check the statement's facts against: {{file list with why}}
|
||||
criteria checkable and gameable?, observability}}
|
||||
```
|
||||
|
||||
Файл линии — тем же механизмом: только префикс (`SPEC-A` / `SPEC-B`,
|
||||
одиночному обзору — `SPEC`); линза уже задана рамкой блока.
|
||||
|
||||
## 3. Параметрические хвосты триажа и перепроверки
|
||||
|
||||
`notes.md` (опционально, коротко, по-английски): фактура, которой нет у
|
||||
@@ -144,6 +196,11 @@ Implementer's report with resolutions: read {{$D/fix-result.md}}.
|
||||
Test command (expect {{N}} passed): {{command}}
|
||||
```
|
||||
|
||||
Вердикт узкой перепроверки Клода бери прямо из строки task-notification —
|
||||
обёртка требует финальным актом только VERDICT-строку; файл перепроверки
|
||||
читай лишь при `ISSUES_REMAIN` или споре (эмпирика 2026-07-13: экономит
|
||||
чтение без потерь).
|
||||
|
||||
Кавеат: проверь, что Codex-ревьюер может читать `$SCRATCH` из песочницы
|
||||
(temp-каталоги обычно читаемы в workspace-write). Если нет — резолюции по
|
||||
его находкам передай текстом (только его находки, не весь отчёт).
|
||||
Reference in new issue
Block a user