diff --git a/agents/.agents/skills/claude-subagent-playbook/SKILL.md b/agents/.agents/skills/claude-subagent-playbook/SKILL.md index b27f293..3a40a69 100644 --- a/agents/.agents/skills/claude-subagent-playbook/SKILL.md +++ b/agents/.agents/skills/claude-subagent-playbook/SKILL.md @@ -2,9 +2,9 @@ name: claude-subagent-playbook disable-model-invocation: true description: >- - Конвейер одной задачи со стороны Claude Code: постановка → свежий взгляд → - реализация Кодексом → ревью по шкале риска (до слепого двойного) → - синтез. Знания, не каркас. + Конвейер одной задачи со стороны Claude Code: постановка тикетами-срезами → + свежий взгляд по шкале → реализация Кодексом → ревью по шкале риска + (до слепого двойного) → синтез. Знания, не каркас. --- # Плейбук: одна задача через Кодекса и слепое ревью @@ -56,7 +56,7 @@ description: >- пишет в целом лучше, но верхнеуровнево планирует хуже — поэтому декомпозиция и постановка остаются у тебя. Механика вызова — [references/codex-exec.md](references/codex-exec.md). -- **Ревьюеры** — до двух (шкала — этап 4), **разных родословных**, слепые +- **Ревьюеры** — до двух (шкалы — этапы 2 и 4), **разных родословных**, слепые друг к другу: Claude-субагент (`adversarial-reviewer`; нет в среде — `deep-reasoner` или скептический `general-purpose`) и Codex **свежим тредом**, не тем, @@ -87,20 +87,34 @@ description: >- 1. **Постановка — самодостаточный файл-задача.** У исполнителя нет твоего контекста; всё нужное — в файле: цель, критерии приёмки чекбоксами, границы («что трогать нельзя»), «сначала прочитать» (спека, ADR, README с - командами), команды проверки. Формат и место — по конвенции репозитория - (например, `.scratch//issues/`; если репозиторий настроен под - скиллы Мэтта Покока — постановка через `/to-tickets` в его трекер: - тикеты-срезы с рёбрами блокировок вместо ad-hoc файла, конвенции — в - `docs/agents/`, настройка — `/setup-matt-pocock-skills`). Не хватает + командами), команды проверки. Разбиение крупнее одного тикета веди по + критериям `/to-tickets` — и его руками, если подключён (настройка — + `/setup-matt-pocock-skills`, конвенции трекера — в `docs/agents/`): + тикет — вертикальный срез, демонстрируемый сам по себе; влезает в один + свежий контекст; рёбра блокировок явные. Мерка самодостаточности — + тикет можно взять в отдельной сессии вообще без общего контекста. + Сверка разбиения с пользователем внутри `/to-tickets` — уже первая + линия ревью постановки, засчитай её на этапе 2. Формат и место — по + конвенции репозитория (например, `.scratch//issues/` или + трекер из `docs/agents/`). Не хватает фактуры по внешним библиотекам/API — сначала `/research` и Context7 MCP, выжимку — в «сначала прочитать». Задача просится под test-first — сошлись в ней на `/tdd` (скиллы у Codex те же — общий каталог), ключевые требования - продублируй текстом. Готово, когда исполнитель может сделать задачу, - не задав тебе ни одного вопроса. -2. **Свежий взгляд на постановку — до реализации.** Адверсарный ревьюер без + продублируй текстом. Готово, когда исполнитель в свежей сессии может + сделать задачу, не задав тебе ни одного вопроса. +2. **Свежий взгляд на постановку — до реализации, по шкале и один раз.** + Правило: **одно ревью на версию артефакта**, а не на каждую передачу из + рук в руки — спека ревьюится при принятии, разбиение — сверкой с + пользователем в `/to-tickets`, тикет — здесь; отревьюенный и не + изменившийся тикет перед выполнением заново не ревьюится и целиком в + твой контекст не перечитывается (передавай номером/путём — исполнитель + прочтёт сам), после правок — узкая проверка дельты тем же ревьюером. + Шкала: тикет-срез по уже принятой спеке, без решений сверх неё — + внешнюю линию пропусти, причину назови одной фразой; обычный тикет — + адверсарный ревьюер без твоего контекста проверяет задачу против кода: фактические ошибки, скрытые - решения-«однострочники», недостающие критерии. Окупается каждый прогон: + решения-«однострочники», недостающие критерии — ловит блокеры, которые исполнитель молча реализовал бы. Постановка крупная или цена ошибки высока — сделай ревью двойным и слепым, как для кода: вторая @@ -111,7 +125,8 @@ description: >- «формально отчитаться можно»), Клод — механику кода (нереализуемые формулировки, мёртвые стабы). Этап закрыт, когда каждая находка внесена в задачу **решением** или письменно отклонена — «пусть - решит исполнитель» решением не считается. + решит исполнитель» решением не считается; при пропуске внешней линии — + когда причина пропуска названа. 3. **Реализация Кодексом.** Промпт: «задача самодостаточна, следуй буквально, коммит не делай». Запуск — прямым `codex exec` **фоновым Bash оркестратора**: шум — редиректами в файлы, в контекст читается только @@ -234,6 +249,8 @@ teammate-субагентов — шум, а не событие: не докл - `/claude-team-review` — ревью-петля, где лид сам чинит код (живёт отдельным репозиторием, в среде может быть не подключён). - `/adversarial-review` — разовое адверсарное ревью Кодексом. +- `/to-tickets` — разбиение на тикеты-срезы с рёбрами блокировок (этап 1); + его сверка разбиения с пользователем — первая линия ревью постановки. - `/tdd` — дисциплина test-first: для задач-мелочей, которые делаешь сам, и как словарь для test-first-постановки (этап 1). - `/research` — фоновое исследование первоисточников с выжимкой-файлом; diff --git a/agents/.agents/skills/claude-subagent-playbook/references/lessons.md b/agents/.agents/skills/claude-subagent-playbook/references/lessons.md index ac61cff..dcc0006 100644 --- a/agents/.agents/skills/claude-subagent-playbook/references/lessons.md +++ b/agents/.agents/skills/claude-subagent-playbook/references/lessons.md @@ -231,3 +231,18 @@ git (`git show HEAD:path`) + повторным наложением право пользователя не узкое место, менять нечего; потенциальная полоса — bulk-механика /coordinator-loop и узкие починки, если лимиты станут узкими. Проверка — один A/B на реальной узкой починке. + +## Прогон 2026-07-21: yantar-dags, предразметка — этап постановки + +- Issues в GitLab созданы по конвенции репозитория, но мимо критериев + `/to-tickets`: без критериев приёмки чекбоксами, один тикет — два среза + (две разные точки стендовой проверки). Поймал пользователь сверкой ПОСЛЕ + публикации. Урок: сверка разбиения — до публикации, внутри `/to-tickets`. +- Пользователь заметил избыточность: текст тикета проходил через мастера + трижды (создание + проверка после создания + тщательное ревью перед + выполнением) — по времени и токенам. Поглощено 2026-07-21: SKILL.md + этапы 1–2 — `/to-tickets` как норма разбиения с меркой «тикет берётся в + свежей сессии без общего контекста»; правило «одно ревью на версию + артефакта» (сверка с пользователем = первая линия); шкала риска этапа 2 + (срез по принятой спеке без новых решений — внешнюю линию пропустить с + одной фразой обоснования).