diff --git a/agents/.agents/skills/claude-subagent-playbook/references/lessons.md b/agents/.agents/skills/claude-subagent-playbook/references/lessons.md index 252e08b..73ca7f6 100644 --- a/agents/.agents/skills/claude-subagent-playbook/references/lessons.md +++ b/agents/.agents/skills/claude-subagent-playbook/references/lessons.md @@ -490,6 +490,14 @@ compose down`); отдельных событий эскалации в `--json` долгоживущие службы здоровы», а `kafka` и `prometheus` лежали `exited`: их погасил её же страж и не поднял. `docker compose ps` без `-a` погашенных не показывает вовсе — легко принять за здоровый стенд. + Разбор журнала сессии: ревьюер написал `trap ... EXIT` с `make up` и + счёл восстановление состоявшимся, не проверив его. Ровно тот дефект, + который вкусовая линза и должна ловить, — проверка, проходящая без + доказательства собственного утверждения, — только допустил его сам + ревьюер. Заодно оттуда же: он дважды вызвал `spawn_agent`, то есть + развернул своих субагентов вопреки правилу «глубина один». Правило + живёт в SKILL.md для оркестратора и до Codex-ревьюера не доезжает — + писать его в мандат. - Две линии ревью на одном живом стенде мешают друг другу: стражи гасят службы и роняют таблицы, параллельная линия получает загрязнённые прогоны (заметили обе, независимо). Либо стенд одной линии, либо явный @@ -532,3 +540,34 @@ compose down`); отдельных событий эскалации в `--json` делить между линиями). - Заодно проверить остальные заготовки на то же расхождение «константа живёт в документации вместо `prompts/`». +- **Третья ось выбора — вкус.** Наши две ручки (эффорт, модель) обе про + силу; матрица Тео (@t3dotgg) разводит стоимость, интеллект и вкус и + заставляет выбирать исполнителя на каждую задачу, а не наследовать + дефолт. Прогон #18 показал цену: код технически безупречен и при этом + неправильной формы. Решение пользователя 2026-07-31 — то, что читает + человек, пишет модель со вкусом (в учебном репозитории это почти всё); + Кодексу — техническая работа, где его лимиты и работают на нас; ось + ревью переворачивается. **Спроси у пользователя матрицу и примеры её + применения**: числа Тео расписаны под другой набор моделей (gpt-5.5, + opus-4.8) и требуют пересчёта под наш. + Разрез идёт не по тикету, а **по подзадачам, и назначается на этапе 1**: + что человек будет читать и разбирать — Опусу, руки (сборка образа, + обвязка проверок, повторяющиеся правки) — Кодексу. Два ограничения. + Порядок: сначала вкусовая часть — она задаёт форму, имена и границы, + под которые механическая потом подстраивается; наоборот получится + ретрофит. И один писатель в дереве остаётся в силе — либо + последовательно, либо по разным worktree, шов вести по файлам, которые + не пересекаются. +- **Принести ревьюеру набор запахов.** В `/code-review` Мэтта Покока + (`~/dotfiles/agents/.agents/skills/code-review/SKILL.md`) есть готовая + база из двенадцати запахов Фаулера, которая вклеивается ревьюеру в + промпт целиком, с оговорками «документированный стандарт репозитория + побеждает» и «каждый запах — суждение, не нарушение». Это сильнее моих + трёх самодельных примеров в блоке `Taste:`: имена вроде Speculative + Generality или Data Clumps — слова из претрейна, они поднимают целый + пласт поведения, а пересказ своими словами — нет. Наши CODE и TASK + повторяют его оси Standards и Spec, придуманные независимо; забрать + оттуда стоит и правило «находки двух осей не сливать и не + переранжировать» — оно прямо про то, как уверенный вердикт одной линии + закрывает собой другую. Показательно, что Codex-ревьюер #18 открыл этот + файл сам первой командой прогона: механизма нет, а нужда есть.