From c18472e36037666bb2c70081d2ff32584f30c3b2 Mon Sep 17 00:00:00 2001 From: Dmitry Dementiev Date: Sun, 2 Aug 2026 23:02:32 +0300 Subject: [PATCH] =?UTF-8?q?docs(skills):=20claude-subagent-playbook=20?= =?UTF-8?q?=E2=80=94=20=D1=8D=D0=BC=D0=BF=D0=B8=D1=80=D0=B8=D0=BA=D0=B0=20?= =?UTF-8?q?#40=20=D0=B8=20#50?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Зачем: - две записи прогонов остались незакоммиченными; без них теряется фактура, ради которой журнал и ведётся, — и повторяющийся долг скилла нечем подтвердить. - Что: - запись по #40: шапки соразмерности лечения сработали в третий раз; пересечение слепых линий — одно явление, описанное двумя способами. - запись по #50: сломанный прибор доезжает до коммита — ошибка измерения всплыла трижды на трёх уровнях, и ни разу её не поймал тот, кто мерил. - там же уточнение наблюдения владельца про дрейф Кодекса к букве и кандидат в механизм; долг с шапками отмечен четвёртым прогоном подряд. - Проверка: - git show --stat; записи читаются как фактура для доработки скилла. --- .../references/lessons.md | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/agents/.agents/skills/claude-subagent-playbook/references/lessons.md b/agents/.agents/skills/claude-subagent-playbook/references/lessons.md index 33c6371..57242bd 100644 --- a/agents/.agents/skills/claude-subagent-playbook/references/lessons.md +++ b/agents/.agents/skills/claude-subagent-playbook/references/lessons.md @@ -678,3 +678,106 @@ compose down`); отдельных событий эскалации в `--json` - Цифры: два ревью — 58 и 36 команд/инструментов, 10 находок (1 MAJOR, 8 MINOR, 1 NIT); триаж — 10 FIXED; перепроверки на medium — 8 и 12; тесты 297 → 353. + +## 2026-08-02: шапки соразмерности сработали в третий раз (clickstream v2, тикет #40) + +Конфигурация редкая по исполнителю: тикет залезал на территорию трёх соседних +(план состава #38, воронка и каталог #39), и вкусовую реализацию вёл не +`craftsman`, а `deep-reasoner` — решение пользователя, обоснование: не письмо +по готовой форме, а калибровка «померил — подкрутил — померил» под вилки мира. +Оправдалось: 41 минута, 26 новых тестов, числа мира легли в вилки с первого +захода. Линия кода — Кодекс (high) свежим тредом, линия задачи и вкуса — +свежий Опус. + +- **Пересечение линий — одна находка из девяти, и обе линии описали её + по-разному.** Полуночная потеря покупки при выжившей странице подтверждения: + Кодекс сконструировал сценарий и дал MAJOR, Опус померил 14 канонических дней, + нашёл ноль случаев и записал в необязательные соображения. Не спор, а два + свидетельства об одном латентном дефекте (окно ~7 с на заказ). Приём: + сводя вердикты, ищи не совпадение формулировок, а совпадение явления — + разная оценка достижимости у линий нормальна и полезна. +- **Шапка соразмерности лечения окупилась на MAJOR'е.** Исполнитель отклонил + маршрут ревьюера («проверь симптом там, где он виден») и починил слоем выше — + граница суток даёт подтверждению место под торговый хвост. Довод сильный: + починка внутри `commerce` двигала бы просмотры страниц при правке торгового + подпотока, то есть ломала бы ровно то свойство, о котором вторая находка + того же ревью. Без шапки предписание проехало бы молча, как в #36. +- **9 FIXED / 0 REJECTED — и одно ослабление порога всё же было.** TASK-3: + группа стала строже (пары исключены), измеренный лифт упал ×4,7 → ×3,0, + и порог теста опущен `> 3` → `> 2`. Обосновано, но это ровно тот ход, от + которого предостерегает шапка, — судить его отдал перепроверке той линии, + что находку и подняла. Вернулась CLOSED с воспроизведёнными числами. +- **Тонкий лог перепроверки Кодекса (10 команд) — снова повод проверить MAJOR + самому.** Свой зонд оркестратора: 14 дней × два режима, включая стресс с + часовым торговым хвостом (окно, в котором дефект жил) — ноль подтверждений + без покупки и ноль покупок без подтверждения. Приём из #39 подтверждён. +- **Приёмка глазами нашла то, чего не даёт ни один вердикт: урок виден в + данных.** Распечатал один визит целиком и померил разрыв: у 157 покупок из + 272 сумма по разобранным массивам не равна `purchaseRevenue` (2680 против + 2679,8). Ради этого копейки в каталог и заводились — без своего прогона + осталось бы верить отчёту. +- Цифры: реализация 41 мин / 328k токенов, саморевью 8/8; ревью — Клод 33 + инструмента, Кодекс 120 команд; 9 находок (2 MAJOR, 5 MINOR, 2 NIT), + пересечение 1; триаж 9 FIXED за 13 мин; перепроверки 13 и 10 команд, обе + ALL_CLOSED + 1 новый NIT (повтор фразы в спеке, внесённый починкой TASK-2) — + поправил сам по месту. Тесты 353 → 383. +- **Долг скилла остаётся тот же**: абзацы про соразмерность лечения третий + прогон подряд пишутся руками. Кандидат прежний — перенести в + `prompts/triage-header.md` и `prompts/recheck-header.md` (тексты этого + прогона годятся как есть). + +## 2026-08-02: сломанный прибор доезжает до коммита (clickstream v2, тикет #50) + +Продолжение #40 после грилинга: реализация — `deep-reasoner` (калибровка +чисел мира), линия кода — Кодекс (high) свежим тредом, линия задачи и вкуса — +свежий Опус. Ревью постановки — одна линия (Кодекс), вторая пропущена: решения +уже прогриллены и лежат в спеке. + +- **Ошибка измерения всплыла трижды на трёх уровнях, и ни разу её не поймал + тот, кто мерил.** (1) Оркестратор мерил на зерне 0, а весь мир и все тесты + живут на `CANONICAL_SEED` — поймало ревью постановки; (2) в знаменателе + «просмотры карточек» сидели строки событий корзины, потому что событие + садится на ту же страницу, — поймал исполнитель; (3) маска «строка с + массивом товаров» захватывала и строку покупки — поймал сам оркестратор, + сверив арифметику отчёта. Два из трёх уже уехали в коммит спеки. Класс + дефекта не новый (#38 — устаревший `.pyc`), но новое здесь то, что прибор + ломается на **чтении** данных, а не на прогоне, и потому переживает и + тесты, и ревью кода. Приём: числа, попадающие в постановку и спеку, сверять + арифметикой независимо от источника — сумма частей, тождества между + колонками; и называть зерно явно везде, где написано «канонический день». +- **Наблюдение владельца по итогам дня: Кодекс дрейфует к букве.** Прогон + его уточняет, а не подтверждает целиком. На **постановке** Кодекс работал + ровно по смыслу — половина из девяти находок это охота на формальность + («критерий закрывается одним визитом», «требование живёт в прозе, а не в + чекбоксе»). На **коде** он вернул 1 MINOR за 120 команд и прошёл мимо + главного дефекта прогона — дефекта цели, видного только тому, кто держит в + голове, зачем тикет заведён. Часть промаха назначена линзой оркестратора + («не дублируй вкусовую линию»), но остаётся устойчивый осадок из #36/#38/ + #40: **лечения** Кодекса буквальны даже внутри его линзы. Кандидат в + механизм (не решение): требовать от линии Кодекса перед индексом один + абзац — «что сделает эту правку провальной, даже если все критерии + зелёные». +- **Шапка соразмерности сработала дважды за прогон.** Исполнитель отверг + предложенный ревьюером ряд вероятностей, перемерив его (давал 1,84 при + требуемых 2), и закрыл находку другим маршрутом; перепроверка поймала + необязательный сдвиг порога (0,05 → 0,03 при измеренных 7,25% — старый пол + проходил). Второе — новый факт: **порог, сдвинутый и честно объявленный, + всё равно бывает лишним**; объявление снимает скрытность, но не заменяет + проверку необходимости. +- **Ревьюер признал своё предложение неверным на перепроверке** — раньше + такого не встречалось. Перепроверка, которой явно поручено судить лечение, + судит и собственное предписание. +- **Приёмка глазами снова дала то, чего не даёт ни один вердикт**: один + распечатанный визит показал новый сюжет целиком (шесть карточек, две в + корзину, корзина не открыта) и заодно, что кладут не только магниты, — + то есть главная правка видна на одном случайном примере. +- Казус: `make` в промпте звался из `generator/`, а Makefile лежит в корне — + три «красных» прогона на пустом месте, и ревью постановки этого не поймало + (команды проверки оно не запускало). +- Цифры: ревью постановки 32 команды / 9 находок, все приняты; реализация + ~31 мин, саморевью 3/3; слепые ревью — Опус 28 инструментов / 7 находок, + Кодекс 120 команд / 1, пересечение **ноль**; триаж 8 FIXED + второй круг + на 1 новую находку, 0 отклонённых; перепроверки 15 и 18; тесты 383 → 394. +- **Долг четвёртый прогон подряд тот же**: шапки соразмерности в + `prompts/triage-header.md` и `prompts/recheck-header.md` так и не + перенесены.