docs(skills): плейбук — заметки к рефакторингу: ось вкуса и набор запахов
Зачем. Прогон #18 показал, чего не хватает: обе наши ручки выбора (эффорт, модель) про силу, вкус ими не выражается. Решения приняты, но структурные правки скилла отложены — чтобы не потерялись, они записаны в открытый вопрос, который читается при следующем заходе. Что. - Третья ось выбора: разрез по подзадачам на этапе планирования, вкусовое Опусу, руки Кодексу, ось ревью переворачивается. С требованием спросить у пользователя матрицу и примеры. - Набор запахов Фаулера из /code-review Мэтта Покока — сильнее самодельных примеров в блоке Taste; оттуда же правило не сливать находки двух осей. - Разбор журнала Codex-ревьюера: восстановление стенда ловушкой без проверки, самовольные subagent-ы вопреки правилу «глубина один». Проверка. Правка документации, прогонять нечего. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
4f19cce325
commit
59e9c0787e
1 file changed
+39
@@ -490,6 +490,14 @@ compose down`); отдельных событий эскалации в `--json`
|
|||||||
долгоживущие службы здоровы», а `kafka` и `prometheus` лежали `exited`:
|
долгоживущие службы здоровы», а `kafka` и `prometheus` лежали `exited`:
|
||||||
их погасил её же страж и не поднял. `docker compose ps` без `-a`
|
их погасил её же страж и не поднял. `docker compose ps` без `-a`
|
||||||
погашенных не показывает вовсе — легко принять за здоровый стенд.
|
погашенных не показывает вовсе — легко принять за здоровый стенд.
|
||||||
|
Разбор журнала сессии: ревьюер написал `trap ... EXIT` с `make up` и
|
||||||
|
счёл восстановление состоявшимся, не проверив его. Ровно тот дефект,
|
||||||
|
который вкусовая линза и должна ловить, — проверка, проходящая без
|
||||||
|
доказательства собственного утверждения, — только допустил его сам
|
||||||
|
ревьюер. Заодно оттуда же: он дважды вызвал `spawn_agent`, то есть
|
||||||
|
развернул своих субагентов вопреки правилу «глубина один». Правило
|
||||||
|
живёт в SKILL.md для оркестратора и до Codex-ревьюера не доезжает —
|
||||||
|
писать его в мандат.
|
||||||
- Две линии ревью на одном живом стенде мешают друг другу: стражи гасят
|
- Две линии ревью на одном живом стенде мешают друг другу: стражи гасят
|
||||||
службы и роняют таблицы, параллельная линия получает загрязнённые
|
службы и роняют таблицы, параллельная линия получает загрязнённые
|
||||||
прогоны (заметили обе, независимо). Либо стенд одной линии, либо явный
|
прогоны (заметили обе, независимо). Либо стенд одной линии, либо явный
|
||||||
@@ -532,3 +540,34 @@ compose down`); отдельных событий эскалации в `--json`
|
|||||||
делить между линиями).
|
делить между линиями).
|
||||||
- Заодно проверить остальные заготовки на то же расхождение «константа
|
- Заодно проверить остальные заготовки на то же расхождение «константа
|
||||||
живёт в документации вместо `prompts/`».
|
живёт в документации вместо `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 открыл этот
|
||||||
|
файл сам первой командой прогона: механизма нет, а нужда есть.
|
||||||
Reference in new issue
Block a user