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
@@ -3,14 +3,17 @@ name: claude-subagent-playbook
|
||||
disable-model-invocation: true
|
||||
description: >-
|
||||
Конвейер одной задачи со стороны Claude Code: постановка → свежий взгляд →
|
||||
реализация Кодексом → слепое двойное ревью → синтез. Знания, не каркас.
|
||||
реализация Кодексом → ревью по шкале риска (до слепого двойного) →
|
||||
синтез. Знания, не каркас.
|
||||
---
|
||||
|
||||
# Плейбук: одна задача через Кодекса и слепое двойное ревью
|
||||
# Плейбук: одна задача через Кодекса и слепое ревью
|
||||
|
||||
Ты — **оркестратор** в сессии Claude Code: планируешь, ставишь задачу,
|
||||
раздаёшь работу, синтезируешь. Реализацию не пишешь. Это плейбук — знания и
|
||||
приёмы; порядок этапов разумен, но подстраивай под задачу, а не наоборот.
|
||||
раздаёшь работу, синтезируешь. Реализацию не пишешь. Это оптика, а не
|
||||
обязательный конвейер: своё внимание держи для цели, ограничений, решений,
|
||||
рисков и приёмки — субагенты выясняют и выполняют, решаешь ты. Порядок
|
||||
этапов разумен, но подстраивай его под задачу, а не наоборот.
|
||||
|
||||
## Когда применять — и когда нет
|
||||
|
||||
@@ -33,7 +36,10 @@ description: >-
|
||||
чтение логов) отдавай субагенту **до её начала**: изнутри она всегда
|
||||
выглядит «ещё на один шаг». Стоп-кран: **сам — максимум один заход**
|
||||
(одна команда с коротким выводом по единственной гипотезе); не
|
||||
подтвердилось — делегируй. Механику (правки файлов по готовым решениям,
|
||||
подтвердилось — делегируй. Перед запуском любого субагента назови его
|
||||
вклад: защита контекста, свежий взгляд, специализация, параллельность
|
||||
или отдельная среда; не можешь назвать — делай сам или продолжай
|
||||
существующий тред. Механику (правки файлов по готовым решениям,
|
||||
скрипты, вёрстку) — `fast-worker`'у: твоё в них только короткий список
|
||||
решений. **Индекс — у тебя, полезная нагрузка — файлами между
|
||||
агентами**: вердикты, отчёты и промпты живут в `$SCRATCH` (обменный
|
||||
@@ -50,7 +56,8 @@ description: >-
|
||||
пишет в целом лучше, но верхнеуровнево планирует хуже — поэтому
|
||||
декомпозиция и постановка остаются у тебя. Механика вызова —
|
||||
[references/codex-exec.md](references/codex-exec.md).
|
||||
- **Ревьюеры** — два, **разных родословных**, слепые друг к другу:
|
||||
- **Ревьюеры** — до двух (шкала — этап 4), **разных родословных**, слепые
|
||||
друг к другу:
|
||||
Claude-субагент (`adversarial-reviewer`; нет в среде — `deep-reasoner`
|
||||
или скептический `general-purpose`) и Codex **свежим тредом**, не тем,
|
||||
что писал код.
|
||||
@@ -70,7 +77,10 @@ description: >-
|
||||
- **Модель Claude-субагентов задавай явно**: Опус — рассуждения и ревью,
|
||||
Sonnet — механика. Без явной модели субагент наследует Fable, чьи лимиты
|
||||
самые дорогие — держи их для оркестрации (у `deep-reasoner`/`fast-worker`
|
||||
модели пришиты в определениях).
|
||||
модели пришиты в определениях). Две ручки эскалации: не хватило
|
||||
глубины — повышай effort; не хватает качества суждения — повышай модель;
|
||||
после двух слабых результатов подряд — свежий более сильный агент вместо
|
||||
переноса неудачного контекста.
|
||||
|
||||
## Конвейер
|
||||
|
||||
@@ -108,29 +118,46 @@ description: >-
|
||||
файл отчёта, харнесс будит по завершении; рецепты, ветки и ловушки —
|
||||
[references/codex-exec.md](references/codex-exec.md).
|
||||
Один писатель в дереве: пока Codex пишет — никто больше (казус с
|
||||
форвардером — в [references/lessons.md](references/lessons.md)). Готово,
|
||||
когда Codex вернул отчёт, в дереве нет правок, которых он не называл,
|
||||
форвардером — в [references/lessons.md](references/lessons.md)).
|
||||
После отчёта — **саморевью тем же тредом** (resume, effort medium;
|
||||
заготовка — [references/prompt-templates.md](references/prompt-templates.md)):
|
||||
исполнитель проходит свой diff против критериев как ревьюер и сам чинит
|
||||
найденное, тебе — одна строка «found N, fixed N». Дёшево и снимает часть
|
||||
находок до внешних глаз. Готово, когда Codex вернул отчёт, саморевью
|
||||
пройдено, в дереве нет правок, которых он не называл,
|
||||
и дешёвая сквозная проверка (если она есть в репо) зелёная: гонял её
|
||||
исполнитель по промпту, а если ему она недоступна (docker, стенд) — ты,
|
||||
**до запуска ревьюеров**: иначе ревью уйдёт на код, который сквозной
|
||||
прогон ещё поменяет.
|
||||
4. **Два слепых ревью параллельно.** Промпт — **один канонический файл в
|
||||
`$SCRATCH` на оба ревью** (скелет и обёртки вызова —
|
||||
4. **Ревью реализации — по шкале риска.** Саморевью уже пройдено (этап 3);
|
||||
дальше по цене ошибки: **тривиальное** изменение (до-правка по готовому
|
||||
диагнозу, механика, целиком накрытое детерминированной проверкой) —
|
||||
внешних линий не гоняй, причину пропуска назови одной фразой;
|
||||
**простое, но с заметной ценой ошибки** — один ревьюер другой
|
||||
родословной, чем исполнитель (у нас — Клод при Codex-исполнителе;
|
||||
одиночную линию выбирай по родословной, не по цене); **обычное и
|
||||
сложнее** — два слепых ревью параллельно с разведёнными фокусами: одна
|
||||
линия «по задаче» (соответствие постановке, критериям, границам), другая
|
||||
«по коду» (корректность, инварианты, регрессии, честность тестов) —
|
||||
разность семейств даёт разные находки, разность фокусов страхует от
|
||||
дублирования, когда семейства сходятся. Промпт — **общий блок один на
|
||||
обе линии** плюс крошечный файл линии (линза и префикс ID); собираются
|
||||
два файла с разными путями (скелет и обёртки вызова —
|
||||
[references/prompt-templates.md](references/prompt-templates.md)): Codex
|
||||
получает его через stdin, Клод-субагенту в prompt — короткая обёртка
|
||||
получает свой через stdin, Клод-субагенту в prompt — короткая обёртка
|
||||
«прочитай файл X и выполни; индекс — в файл Y» (не дублируй текст
|
||||
промпта в параметре — это второй полный экземпляр в твоём контексте).
|
||||
Содержание: путь к задаче-файлу + фокус (математика/краевые случаи,
|
||||
соответствие критериям, честность тестов, артефакты); мандат и
|
||||
поощрение эмпирических проверок уже в готовом boilerplate. Друг про
|
||||
Содержание: путь к задаче-файлу + фокус и префикс ID линии; мандат,
|
||||
формат индекса с устойчивыми ID и поощрение эмпирических проверок уже
|
||||
в готовом boilerplate. Друг про
|
||||
друга не знают, твои выводы им не пересказывай. Вердикты — файлами с
|
||||
**разными путями**: у Codex это его `-o`-отчёт, Клод-ревьюеру путь и
|
||||
финальный акт (SendMessage только со строкой VERDICT, счётчиками и
|
||||
путём) задаёт готовая обёртка из шаблонов; его idle-уведомления
|
||||
результата не содержат, не жди из них ничего. После
|
||||
ревью сверь дерево (`git status`). Клод-ревьюеру можно поручить смотреть
|
||||
артефакты (картинки из ноутбука). Этап закрыт, когда оба вердикта у тебя
|
||||
индексами и дерево нетронуто; вердикт без единой находки засчитывай
|
||||
артефакты (картинки из ноутбука). Этап закрыт, когда вердикты всех
|
||||
выбранных линий у тебя индексами и дерево нетронуто; вердикт без единой находки засчитывай
|
||||
только после проверки его лога — работа, не отписка
|
||||
(приём — в [references/codex-exec.md](references/codex-exec.md)).
|
||||
5. **Синтез и триаж.** Сведи вердикты по индексам: пересечения, противоречия.
|
||||
@@ -142,16 +169,36 @@ description: >-
|
||||
«Дословно» — это конкатенация: `cat triage-header.md вердикт-A.md
|
||||
вердикт-B.md > fix-prompt.md` Bash'ем (шапка готова в
|
||||
`references/prompts/`); Write'ом ты бы переписал те же находки в
|
||||
контекст ещё раз. Свои замечания к триажу — только шапкой. Ты судишь уровнем
|
||||
задачи: принять риск / вне скоупа. Повторная проверка — узкая (см.
|
||||
«Свежесть»); её промпт не пересказывает резолюции — ссылается на файл
|
||||
отчёта исполнителя. Этап закрыт, когда по каждой находке обоих ревью есть
|
||||
решение: починено и перепроверено — или отклонено с доводом.
|
||||
6. **Финал.** Артефакты проверь **своими глазами** (счётчик тестов, картинки,
|
||||
прогон CLI) — ревью не заменяет твою приёмку. Обнови чекбоксы и статус
|
||||
задачи-файла, коммит — по `/conventional-commits`, пользователю — выжимку:
|
||||
вердикты, что принято/отклонено, что осталось. Готово, когда чекбоксы
|
||||
проставлены, дерево чистое после коммита и пользователь получил отчёт.
|
||||
контекст ещё раз. Статус каждого ID — `FIXED / REJECTED / OUT_OF_SCOPE /
|
||||
NEEDS_DECISION`; два последних — решения твоего уровня, исполнитель
|
||||
возвращает их тебе, а не решает молча. Резолюции и доводы он пишет в
|
||||
свой файл отчёта, **тикет в триаже не правится**: правка тикета эхом
|
||||
вкатывает весь его текст в твой контекст (пожиратель №1 прогона задачи
|
||||
13), выжимку в тикет перенесёт fast-worker на финале. Свои замечания к
|
||||
триажу — только шапкой. Ты судишь уровнем задачи: принять риск / вне
|
||||
скоупа. Повторная проверка — узкая (см. «Свежесть»); её промпт не
|
||||
пересказывает резолюции — ссылается на файл отчёта исполнителя.
|
||||
Третий круг триажа — точка вмешательства: доложи пользователю, почему
|
||||
процесс не сходится и что меняешь (постановку, модель/effort,
|
||||
исполнителя, границы); пятый не начинай без явного решения. Повторно
|
||||
поднятая уже отклонённая находка — спор: отдельная узкая проверка
|
||||
усиленным уровнем, не новый общий круг. Этап закрыт, когда у каждого ID
|
||||
обоих ревью есть статус: FIXED и перепроверен, REJECTED с доводом, либо
|
||||
OUT_OF_SCOPE / NEEDS_DECISION закрыт твоим решением.
|
||||
6. **Финал.** В доказательства углубляйся постепенно: состав изменений и
|
||||
сводки ревью → отдельные спорные фрагменты → полный diff, только когда
|
||||
он ограничен и нужен для решения; зелёный журнал не читай, красный
|
||||
отдай исполнителю или разборщику; проверку, доступную только агенту в
|
||||
спецсреде, называй косвенным свидетельством. Ключевые артефакты проверь
|
||||
**своими глазами** (счётчик тестов, картинки, прогон CLI) — ревью не
|
||||
заменяет твою приёмку. Чекбоксы, статус и выжимку резолюций в тикет
|
||||
переносит fast-worker из файла отчёта исполнителя (не твой Write).
|
||||
Коммит — по `/conventional-commits`, пользователю — выжимка: вердикты,
|
||||
что принято/отклонено, что осталось — плюс короткая саморефлексия: что
|
||||
больше всего потратило контекст и что в следующий раз направить файлом
|
||||
или субагентом (метрика: каждый полный артефакт проходит через твой
|
||||
контекст не более одного раза). Готово, когда чекбоксы проставлены,
|
||||
дерево чистое после коммита и пользователь получил отчёт.
|
||||
|
||||
## Пользователь в петле
|
||||
|
||||
@@ -167,6 +214,18 @@ description: >-
|
||||
teammate-субагентов — шум, а не событие: не докладывай о них пользователю
|
||||
и не действуй по ним, если результат уже получен.
|
||||
|
||||
## Сбои координации
|
||||
|
||||
- Нет ожидаемого файла или отчёта: один запрос короткого итога в тот же
|
||||
тред; повторная тишина — свежий агент от сохранённых артефактов.
|
||||
- Длинный рассказ пришёл сообщением: попроси сводку с путём к файлу,
|
||||
рассказ дальше не переноси.
|
||||
- Два писателя пересеклись в дереве: стоп обоим, назначь одного владельца,
|
||||
продолжай от проверенного состояния; чужие правки не откатывай не
|
||||
разобравшись.
|
||||
- После финала удали обменный каталог прогона: долговечно только то, что
|
||||
предусмотрено проектом (тикет, коммит, lessons).
|
||||
|
||||
## Соседние скиллы
|
||||
|
||||
- `/coordinator-loop` — автономный цикл очереди issue на стороне Codex
|
||||
|
||||
Reference in new issue
Block a user