fix(skills): уроки прогона 2026-07-22 перенесены в клодовский плейбук

- Зачем:
  - вчерашний патч 43a93cd лёг не в тот скилл: уроки клодовского
    координатора попали в codex-subagent-playbook — близнец для
    координатора на стороне Codex; там «канал codex exec» — бессмыслица,
    а правила канала давно живут в claude-subagent-playbook/codex-exec.md.
- Что:
  - codex-subagent-playbook: три файла возвращены к состоянию до 43a93cd;
    во фронтматтер добавлен disable-model-invocation и адресное описание
    против повторного промаха;
  - claude-subagent-playbook: запись прогона issue #5 в lessons.md (чужой
    скилл, плагин вместо CLI, два писателя, приёмочный сценарий);
    в SKILL.md — владение деревом после остановки прежнего владельца и
    проверка команд приёмки на живом объекте.
- Проверка:
  - git diff 43a93cd^ по трём файлам codex-плейбука — только фронтматтер;
    перечитка lessons.md на связность.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
ddadminandClaude Fable 5 committed 2026-07-23 10:43:14 +03:00
1 parent 43a93cd3c3
commit 8312ef071e
5 files changed
+48 -34

No files matched your search

@@ -218,7 +218,9 @@ description: >-
отдай исполнителю или разборщику; проверку, доступную только агенту в
спецсреде, называй косвенным свидетельством. Ключевые артефакты проверь
**своими глазами** (счётчик тестов, картинки, прогон CLI) — ревью не
заменяет твою приёмку. Чекбоксы, статус и выжимку резолюций в тикет
заменяет твою приёмку. Команды нового приёмочного сценария проверь на
живом объекте до полного прогона; сложные вставки собирай файлами, не
экранированием. Чекбоксы, статус и выжимку резолюций в тикет
переносит fast-worker из файла отчёта исполнителя (не твой Write).
Коммит — по `/conventional-commits`, пользователю — выжимка: вердикты,
что принято/отклонено, что осталось — плюс короткая саморефлексия: что
@@ -244,7 +246,8 @@ teammate-субагентов — шум, а не событие: не докл
## Сбои координации
- Нет ожидаемого файла или отчёта: один запрос короткого итога в тот же
тред; повторная тишина — свежий агент от сохранённых артефактов.
тред; повторная тишина — свежий агент от сохранённых артефактов, владение
деревом — только после остановки прежнего владельца.
- Длинный рассказ пришёл сообщением: попроси сводку с путём к файлу,
рассказ дальше не переноси.
- Два писателя пересеклись в дереве: стоп обоим, назначь одного владельца,
@@ -276,3 +276,39 @@ git (`git show HEAD:path`) + повторным наложением право
артефакта» (сверка с пользователем = первая линия); шкала риска этапа 2
(срез по принятой спеке без новых решений — внешнюю линию пропустить с
одной фразой обоснования).
## Прогон 2026-07-22: clickstream-demo, issue #5 — счётчики стартовой истории
Полный конвейер (исполнитель → два слепых ревью → триаж → узкая
перепроверка → стендовая приёмка) дошёл до цели, но шёл под ЧУЖИМ скиллом:
вместо этого плейбука вызван codex-subagent-playbook — близнец для
координатора на стороне Codex, на тот момент единственный из пары видимый
модели для автовызова. Отсюда главный казус: канал запуска Codex
«унаследовался» из handoff — конвейер пошёл через плагин-обёртку вопреки
codex-exec.md и воспроизвёл её известные баги (ложный «started» с подменой
ответа — issue #158, потерянные уведомления, несбрасываемый статус
остановленной задачи, read-only песочница ревьюера — вердикт извлекали из
лога задачи). Спас файловый контроль: мандаты и отчёты жили в `$SCRATCH`,
дерево сверялось тестами. Поглощено 2026-07-23: близнецу поставлен
`disable-model-invocation` и адресное описание («со стороны Claude Code —
claude-subagent-playbook»); правила канала в codex-exec.md были и остаются
действующим договором.
Казус двух исполнителей: молчащего исполнителя заменили свежим без
остановки прежнего — в одном дереве оказались два писателя, дерево
пришлось перепроверять тестами. Поглощено: «Сбои координации» (владение —
только после остановки прежнего владельца).
Казус приёмки: сценарий стендовой приёмки трижды падал на непроверенных
командах (способ аутентификации Airflow, маскировка кода выхода, имя
колонки витрины), а инлайн-python с экранированием в heredoc сломался и
после проверки. Поглощено: SKILL.md этап 6 (команды нового сценария — на
живом объекте до полного прогона, сложные вставки — файлами). Попутно:
`pkill -f` в одной команде с запуском/ожиданием находит шаблон в
собственной командной строке и убивает свой же Bash — дисциплина фоновых
процессов зафиксирована в памяти проекта.
**Цифры:** триаж закрыл обе находки ревью (фрагментация наборов ID сняла
потолок Kafka: манифест 3 152 байта вместо ~0,81 МБ); приёмка — плоское
время next-day 716/718/716 с, мир 3 → 6 дней, 561 942 события; тесты
216 + 31 зелёные.
@@ -1,6 +1,7 @@
---
name: codex-subagent-playbook
description: "Оптика тонкого мастера для одной нетривиальной задачи: как выбирать делегирование, независимую проверку и файловый обмен, сохраняя контекст координатора для решений."
disable-model-invocation: true
description: "Оптика тонкого мастера для координатора на стороне Codex (spawn_agent, TOML-роли). Со стороны Claude Code используй claude-subagent-playbook."
---
# Тонкий мастер
@@ -101,8 +102,6 @@ description: "Оптика тонкого мастера для одной не
3. полный diff, только когда его объём ограничен и чтение нужно для решения.
Доступную детерминированную финальную проверку запускай сам с выводом в файл.
Команды нового сценария проверь на живом объекте до полного прогона; сложные
вставки собирай файлами, не экранированием.
В контекст возьми точную команду, код возврата, итоговые счётчики, имена
упавших тестов и путь к журналу. Зелёный журнал не читай. Красный журнал
направь исполнителю или отдельному разборщику; сам открывай детали, когда они
@@ -125,8 +124,7 @@ description: "Оптика тонкого мастера для одной не
## Сбои координации
- Нет ожидаемого файла: один раз запроси короткий итог в том же треде; после
повторной тишины продолжи свежим агентом от сохранённых артефактов, передав
владение только после остановки прежнего владельца.
повторной тишины продолжи свежим агентом от сохранённых артефактов.
- Длинный рассказ пришёл сообщением: попроси повторить ответ сводкой и путём,
не переноси рассказ дальше.
- Два исполнителя пересеклись в исходниках: останови их, установи одного
@@ -24,18 +24,6 @@
права ревьюера смешались с каналом результата; семь буквальных этапов
породили лишние проверки. Вывод поглощён в
[основную оптику](../SKILL.md) и [договор ревью](review-and-triage.md).
- 2026-07-22 — конвейер пошёл через плагин-обёртку вопреки ресёрчу
2026-07-07 и воспроизвёл её известные сбои: ложный старт с пустым
запросом, потерянные уведомления, несбрасываемый статус остановленной
задачи, read-only песочница ревьюера (вердикт извлекли из лога задачи).
Результаты спас файловый контроль координатора: мандаты и отчёты жили в
`$SCRATCH`, дерево сверялось тестами. Вывод поглощён в
[роли](roles.md): канал командной строки.
- 2026-07-22 — приёмочный сценарий трижды падал на непроверенных командах
(способ аутентификации, маскировка кода выхода, имя колонки), а
инлайн-python с экранированием в heredoc сломался и после проверки.
Вывод поглощён в [основную оптику](../SKILL.md): проверка команд на
живом объекте, сборка сценария из файлов.
## Проверить боем
@@ -54,8 +42,6 @@
7. Доступны ли ревьюеру поиск и документация при текущих сетевых разрешениях.
8. Достаточно ли файлового канала, чтобы координатор не открывал полный
отчёт, diff и сырые журналы.
9. Работает ли канал командной строки (`codex exec` фоном у координатора)
на полном конвейере: запуск, resume треда ревьюера, чтение и запись
общего `$SCRATCH`. Прогон 2026-07-22 проверил только плагинный канал —
он забракован; при workspace-write запись в `$SCRATCH` работала,
read-only песочница — нет.
9. Может ли будущая линия другого семейства читать и писать общий
`$SCRATCH`. Пока адаптер запуска не проверен, он не является действующим
договором.
@@ -18,8 +18,7 @@
## Возможности хоста
Сначала установи, позволяет ли текущий хост выбрать пользовательского агента
и его конфигурацию, а для линии другого семейства — каким каналом её
запускать.
и его конфигурацию.
- **Управляемая стоимость.** Хост видит агентов из `~/.codex/agents` или
`.codex/agents` и схема `spawn_agent` открывает `agent_type`, `model` и
@@ -33,14 +32,6 @@
имя треда. Передавай роль мандатом в промпте, но не утверждай, что выбрана
дешёвая или сильная модель. `task_name` — идентификатор треда, а не выбор
конфигурации агента.
- **Канал командной строки.** Хост другого семейства запускай напрямую:
`codex exec` в собственной фоновой команде координатора — pid, код выхода
и лог принадлежат координатору, а не посреднику. Модель и effort задавай
явно; тред продолжай через `codex exec resume <session-id>`.
Плагин-обёртку с фоновыми задачами для конвейера не используй: известные
сбои — ложный «started» с подменой ответа, зависшие фоновые ревью, воркеры
без признаков жизни (openai/codex-plugin-cc issues #279, #158, #49, #277);
она годится только для интерактива по явному запросу партнёра.
Если способ выбора роли не виден в доступном инструменте, считай стоимость
неуправляемой, отметь это в итоговом отчёте и не разделяй совместимую работу