- Зачем:
- выжимка боевого прогона 2026-07-06 (t2-ml-forecast, витрина) в
переиспользуемый плейбук: постановка → свежий взгляд → реализация
Codex → слепое двойное ревью разных родословных → синтез.
- Что:
- SKILL.md: роли, шаги с критериями закрытия, триаж у исполнителя,
границы применимости; словарь общий с coordinator-loop;
- references: механика codex-companion с ловушками и раннер-паттерном,
накопительная эмпирика прогонов, определения deep-reasoner/fast-worker
для воссоздания в новом репозитории;
- handoffs: записка о рождении скилла и списке непроверенного боем.
- Проверка:
- зеркало ~/.claude/skills синхронно (diff -rq чисто); боевой тест —
следующий прогон конвейера по тексту скилла.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
5.5 KiB
5.5 KiB
Handoff: рождение скилла claude-subagent-playbook и что в нём не проверено
Дата: 2026-07-06. Для сессии, которая будет развивать сам скилл (не МЛ-задачу).
Состояние
- Скилл собран и готов к вызову: источник —
~/dotfiles/agents/.agents/skills/claude-subagent-playbook/(в git dotfiles ещё не закоммичен), зеркало —~/.claude/skills/claude-subagent-playbook/. Состав: SKILL.md + references/{codex-companion,lessons,claude-agents}.md. - Собран по итогам одного боевого прогона (задача 05 «полировка витрины» в
~/sources/t2-ml-forecast, коммит 880d506) — но сам прогон шёл ДО оформления скилла. Скилл ни разу не исполнялся по своему письменному тексту. - Эмпирика прогона — в references/lessons.md (файл накопительный, дописывать
после каждого прогона). Память проекта t2-ml-forecast тоже знает о скилле:
~/.claude/projects/-home-ddmitry-sources-t2-ml-forecast/memory/.
Дизайн-решения и их источники (не пересказ — только происхождение)
- Форма «набор знаний, не жёсткий каркас» — явное требование пользователя;
жёсткий каркас уже есть у
/coordinator-loop(очередь issue, сторона Codex). - Структура и словарь выверены по
/writing-great-skills: user-invoked, короткий description, completion criteria на шагах, ведущие слова общие с coordinator-loop (индекс, родословная, свежесть). - Раннер-паттерн для вызова Codex — из
/adversarial-review(references/runner.md там — самый проработанный образец: двухканальный протокол, результат файлом, ретраи). Добавлен по предложению пользователя. - Триаж находок исполнителем — из
/claude-team-reviewи coordinator-loop («судит тот, у кого контекст кода»). Тоже добавлен по замечанию пользователя.
Не проверено боем — проверять в следующих прогонах
- Раннер с
task --wait— в прогоне 05 использовался--background+ bash-монитор, раннер не пробовали. Открытый риск: у Bash-вызова внутри субагента потолок 10 минут (timeout max 600000 мс), а реализация у Codex шла ~15 минут. Раннеру, видимо, нужна инструкция «по таймауту не падать, а опрашивать$CC status/resultдо завершения». Обкатать и вписать в references/codex-companion.md то, что реально сработало. - Триаж исполнителем — в прогоне 05 триаж делал оркестратор (обе находки принял сам). Формулировка «перешли индекс дословно, Codex чинит или аргументированно отклоняет» — теория из соседних скиллов, не наша эмпирика.
- Фолбэк ревьюера (general-purpose со скептическим промптом при отсутствии adversarial-reviewer) — не обкатан.
- Порог «мелочь vs конвейер» откалиброван по одному случаю — уточнять.
- Чего в скилле осознанно нет (кандидаты при развитии, не тащить без нужды): журнала прогона (след живёт в задаче-файле — хватит ли на длинной задаче?); узкого rerun-а ревьюера продолжением той же сессии (SendMessage — в 05 не понадобился); ролей deep-reasoner в синтезе.
Ближайший боевой тест
Регламент переобучения («выживаемость») в t2-ml-forecast — единственный
незакрытый пункт Этапа 1 пилота, калибр подходящий. Вызвать
/claude-subagent-playbook в свежей сессии и смотреть, где текст скилла
расходится с практикой; расхождения — в lessons.md и правки SKILL.md.
Suggested skills
/claude-subagent-playbook— предмет работы; прогнать как написано./writing-great-skills— перед любыми правками структуры скилла./adversarial-review— образец раннера (references/runner.md) при обкатке пункта 1./handoff— по завершении сессии развития обновить эту записку (или положить рядом новую; старую можно удалить, если полностью поглощена).