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:
1 parent
f9ea5b8c44
commit
a4985b365d
3 files changed
+106
-2
No files matched your search
+47
@@ -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}}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user