docs(skill): уроки прогона задачи 13 — эхо файла задачи и формат индекса

- Зачем:
  - третий боевой прогон подтвердил рефакторинг «тонкого мастера»;
    новые пожиратели контекста и слабое место Клод-ревьюера должны
    остаться в эмпирике скилла.
- Что:
  - lessons.md: запись прогона 2026-07-12/13 (находки этапов, три новых
    пожирателя, цифры конвейера).
  - prompt-templates.md: обёртка Клод-ревьюера требует однострочность
    индекса (Клод-родословная держит формат хуже Codex).
  - handoffs/: handoff разработки с открытыми вопросами (эхо файла
    задачи, приём вердикта из уведомления, эксперимент medium).
- Проверка:
  - вычитка; факты сверены с транскриптом прогона задачи 13.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
ddadminandClaude Fable 5 committed 2026-07-13 00:09:24 +03:00
1 parent f9ea5b8c44
commit a4985b365d
3 files changed
+106 -2

No files matched your search

@@ -0,0 +1,47 @@
# Handoff разработки скилла: прогон задачи 13, эхо файла задачи и формат индекса
Дата: 2026-07-13. Контекст: третий боевой прогон конвейера (clickstream-demo,
задача 13 «глагол next-day»), первый после рефакторинга «тонкого мастера»
(коммит `f9ea5b8`) и поглощения уроков задачи 20.
## Итог прогона для скилла
Рефакторинг подтверждён боем: все поглощённые уроки сработали (вердикты по
одному чтению, cat-сборка промптов, английский обмен, стоп-кран диагнозов,
будильники одной строкой). Полная эмпирика и цифры — в
`references/lessons.md`, запись «Прогон 2026-07-12/13», здесь не дублируются.
## Что изменено в скилле этим заходом
- `references/lessons.md` — запись прогона задачи 13 (находки этапов, три
новых пожирателя контекста, цифры).
- `references/prompt-templates.md` — обёртка Клод-ревьюера дополнена
требованием однострочности индекса (boilerplate это уже требовал, но
Клод-родословная держит формат хуже Codex) + пояснение, почему дубль.
## Открытые вопросы разработки
1. **Эхо файла задачи** — главный непоглощённый пожиратель: когда
исполнитель правит файл, который мастер недавно писал сам, харнесс
вкатывает мастеру весь файл (в прогоне — ~190 строк, текст тикета прошёл
через мастера трижды). Варианты: резолюции исполнителя — отдельным
файлом с переносом в тикет на финале (минус: лишний шаг и двойное место
правды); писать тикет через fast-worker по списку решений (минус: список
решений ≈ сам текст); принять цену и просто зафиксировать в SKILL.md
предупреждением. Решения нет — обсудить с пользователем.
2. **Проверить в следующем прогоне**, помогло ли напоминание об
однострочности в обёртке Клод-ревьюера (если нет — думать про пример
формата прямо в обёртке).
3. **Кандидат в SKILL.md/шаблоны:** вердикты узких перепроверок Клода можно
принимать из строки task-notification без чтения файла (обёртка и так
требует финальным актом только VERDICT-строку) — в прогоне сэкономило
одно чтение. Закрепить явно?
4. **Эксперимент «worker на medium»** (память пользователя) так и не
поставлен: реализация задачи 13 сознательно шла на high. Полигон-кандидат
— маленькая задача про расписание next-day в clickstream-demo.
## Suggested skills
- `conventional-commits` — коммит этих правок в dotfiles.
- `claude-subagent-playbook` — следующий боевой прогон (задача про
расписание) с проверкой пункта 2.
@@ -111,3 +111,54 @@ git (`git show HEAD:path`) + повторным наложением право
**Цифры:** реализация ~25 мин; ревью постановки 75k токенов субагента, **Цифры:** реализация ~25 мин; ревью постановки 75k токенов субагента,
ревью кода 65k, перепроверка 80k (с новой находкой); приёмка — 4 прогона ревью кода 65k, перепроверка 80k (с новой находкой); приёмка — 4 прогона
гейта по ~1,5 мин + красный сценарий; тесты 190 -> 192 + 21. гейта по ~1,5 мин + красный сценарий; тесты 190 -> 192 + 21.
## Прогон 2026-07-12/13: clickstream-demo, задача 13 — глагол next-day
Первый прогон после поглощения уроков задачи 20 — они сработали: вердикты
читались по одному разу, boilerplate не переписывался (cat из prompts/),
обмен на английском, ноль инлайн-диагнозов мастера (стоп-кран держит),
будильники одной строкой (9 взводов, ни один не сработал впустую — все
сняты по уведомлениям).
**Что поймал каждый этап:**
- Двойное ревью постановки: пересечение 5 тем из ~15 (guard, идемпотентность,
атомарность, формат цепочки, проверки). Уникальное: Клод — «next-day =
новый режим запуска, постановка прячет основную работу за словом
„переиспользует"»; Codex — «расписание запустит дефолтный backfill»
(скоуп-решение: расписание вынесено отдельной задачей).
- Слепые ревью кода: пересечение 1 тема из ~12 (нулевой стык). Codex —
дефекты нового скрипта (хвост за границей, TZ), Клод — архитектура
(retention Kafka против пересборки счётчиков — блокер будущей задачи,
скрытая связка наборов настроек). Родословные разошлись почти полностью.
- Эмпирика исполнителя: требование обоих ревью («громкий отказ на нулевом
стыке») покраснело на честном стенде — ночной провал трафика, снова класс
«артефакт верификатора». Диагноз по данным делегирован исполнителю тем же
тредом (state на границе: 0 активных визитов — restore ни при чём).
Урок: требование ревьюеров сверяй с критериями приёмки и реальным
распределением данных, прежде чем принять его в код.
- Узкая перепроверка Codex снова принесла новый MAJOR (микросекунды в
UTC-нормализации) — второй прогон подряд, считать штатным режимом.
**Новые пожиратели контекста мастера, по убыванию:**
1. Эхо файла задачи: исполнитель дописал резолюции в тикет, который мастер
сам писал на этапе 2, — харнесс вкатил в контекст все ~190 строк; итого
текст тикета прошёл через мастера трижды (Write + эхо + финальное
чтение). Не поглощено; митигация неочевидна — резолюции проекту нужны
именно в тикете. Держать в уме при выборе, кто пишет файл задачи.
2. Клод-ревьюер держит формат индекса хуже Codex: многострочные находки и
развёрнутые confirmations при жёстком boilerplate («one-phrase essence»).
Поглощено: обёртка Клод-ревьюера в prompt-templates дополнена
напоминанием об однострочности.
3. Авторство решений этапа 2 — у мастера по определению (110 строк
кириллицы в тикет после двойного ревью постановки): это цена этапа, на
мелких задачах конвейер не разворачивать (правило уже в SKILL.md,
теперь с ценником).
Дешёвый приём: вердикт перепроверки Клода взят из строки task-notification
(обёртка требует финальным актом только VERDICT-строку) — файл не читался.
**Цифры:** конвейер ~2 часа от ревью постановки до приёмки; реализация
~30 мин; Клод-субагенты: ревью постановки 94k, кода 108k, перепроверка
126k токенов; Codex-ревью: 42/36 команд; 2 круга триажа + узкий диагноз;
тесты 192 -> 204 + 21 -> 31; учебный цикл: DM 322 -> 10 026 -> 19 196 за
два next-day.
@@ -85,10 +85,16 @@ will run it before the reviews start.
Read {{path to review-prompt.md}} and execute it. Working directory: Read {{path to review-prompt.md}} and execute it. Working directory:
{{repo root}}. Write the full findings index to {{repo root}}. Write the full findings index to
{{$D/review-claude.md}} — it is outside the repo, so the mandate allows {{$D/review-claude.md}} — it is outside the repo, so the mandate allows
it (via Write or a Bash heredoc, whichever you have). Final message: it (via Write or a Bash heredoc, whichever you have). Keep the index
ONLY the VERDICT line, severity counters and the file path. strict: ONE line per finding and per confirmation, as the boilerplate
demands — no multi-line entries. Final message: ONLY the VERDICT line,
severity counters and the file path.
``` ```
(Однострочность продублирована в обёртке не случайно: boilerplate это уже
требует, но Клод-родословная держит формат хуже Codex — эмпирика
2026-07-12/13, многострочные находки и развёрнутые confirmations.)
```markdown ```markdown
# Code review: {{ticket NN — essence}} # Code review: {{ticket NN — essence}}