Files
dotfiles/agents/.agents/skills/claude-subagent-playbook/references/lessons.md
T
Dmitry Dementiev 145ac75a09 docs(skill): claude-subagent-playbook — урок о смерти фонового ревьюера
- Зачем:
  - ревью скилла Опус-ревьюером не состоялось: субагент дважды ушёл в
    idle без отчёта и исчез; урок должен остаться в эмпирике.
- Что:
  - в references/lessons.md добавлен инцидент и вывод: критичный отчёт
    ревьюера писать в файл (двухканальный протокол), сообщение — указатель.
- Проверка:
  - зеркало ~/.claude/skills синхронно (rsync + diff).
2026-07-06 18:35:53 +03:00

4.7 KiB
Raw Blame History

Эмпирика прогонов

Датированные факты: что поймал каждый этап конвейера, казусы, цифры. Дописывай после каждого прогона — это и есть «выжимка опыта», ради которой скилл существует.

2026-07-06 — t2-ml-forecast, задача 05 «полировка витрины под демо»

Первый прогон конвейера. Задача: ~200 строк правок в ядре отчёта + ноутбук.

Свежий взгляд на постановку (Клод, adversarial-reviewer) — окупился:

  • блокер: постановка требовала «русские названия из report.name_ru», а в данных name_ru — английские имена из Excel-книги; исполнитель молча сделал бы английские заголовки. Решение внесено в задачу: словарь «статья → русское имя» как явная поставка;
  • две «одностроки», прятавшие проектные решения: поворот отрицательного ряда (правило, пересчёт коридора, единый хелпер) и согласованность «график по модулю vs таблица со знаком»;
  • процессная дыра: без явных двух шагов регенерации .ipynb остался бы без выводов, и тест ноутбука его бы завернул.

Казус форвардера: субагент codex:codex-rescue, получив постановку вместо команды, реализовал задачу сам (+1227 строк). Настоящий Codex стартовал на уже изменённом дереве — столкновения избежали везением (форвардер успел закончить). Урок в SKILL.md и codex-companion.md.

Слепое двойное ревью — родословные поймали разное:

  • Клод (Опус): APPROVE; подтвердил математику поворота/коридора (алгебраическое тождество), краевые случаи (ряд через ноль, нули), неизменность метрик и таблиц; посмотрел картинки из .ipynb; один nit.
  • Codex (свежий тред): needs-attention; две дыры в тестах — раздел ноутбука не закреплён в required_snippets, нет регрессионного теста «таблица отрицательного ряда остаётся со знаком». Оба — про то, что зелёный прогон не докажет готовность; Клод этих дыр не нашёл.
  • Пересечения находок — ноль. Слепота и разность родословных работают.

Точечная починка: Codex --fresh с промптом «добавь только два теста, продуктовый код не трогай» — чисто, 148 → 150 passed.

Цифры для калибровки: ревью Клода на Фабуле (этап постановки) — ~60k токенов; конвейер целиком — ~3 часа настенного времени, из них реализация ~20 минут; остальное — ревью и оркестрация. На мелочь такое не разворачивать.

Смерть ревьюера (тот же день, ревью самого скилла по /claude-team-review): Опус-ревьюер дважды ушёл в idle без доставленного отчёта (одно напоминание по idle-гарду — снова тишина), пользователь подтвердил: субагент исчез из интерфейса. Спасти отчёт из транскрипта не удалось — jsonl тиммейтов не нашлись в каталоге проекта. Урок: отчёт фонового ревьюера — скоропортящийся; если он критичен, проси ревьюера сначала писать результат в файл (двухканальный протокол раннера из /adversarial-review), а сообщение слать как указатель. Ревью скилла не состоялось — отложено до боевого прогона.