feat(skills): claude-subagent-playbook — исполнитель не берёт ревью на веру
- Зачем:
- после разворота ролей (реализация Опусом, ревью Кодексом) ревьюер
продавливает исполнителя формальными решениями: за прогоны #39, #40 и
#50 около 28 находок и ноль отклонений.
- Что:
- в triage-header добавлен блок «ревью — свидетельство, а не приказ»:
отклонение равноправно починке, маршрут ревьюера — предложение.
- определение NEEDS_DECISION расширено случаем, когда выбор делает сама
починка, независимо от объёма правки.
- в recheck-header добавлен суд над лечением: перебор — тоже дефект, а
NOT_CLOSED требует существующего закрывающего состояния и цены
альтернативы.
- в lessons закрыт долг четырёх прогонов и сведена очередь на механизм.
- Проверка:
- следующий полный прогон плейбука: в триаже должны появиться
отклонения или закрытия своим маршрутом с доводом.
This commit is contained in:
1 parent
c18472e360
commit
36fc76ff90
3 files changed
+76
-9
No files matched your search
@@ -649,8 +649,7 @@ compose down`); отдельных событий эскалации в `--json`
|
||||
Штатная конфигурация: реализация — Опус-мастеровой, линия кода — Кодекс (high)
|
||||
свежим тредом, линия задачи и вкуса — свежий Опус. Долг двух прошлых прогонов
|
||||
закрыт руками: в шапку триажа и в шапку перепроверки дописаны абзацы про
|
||||
соразмерность лечения (заготовки прогона; кандидат — перенести в
|
||||
`prompts/triage-header.md` и `prompts/recheck-header.md`).
|
||||
соразмерность лечения (заготовки прогона; перенесены в шапки 2026-08-03).
|
||||
|
||||
- **Ручка сработала трижды за один прогон.** Перепроверка вкусовой линии
|
||||
сама оценила правку спеки на перебор (вышла за границу промпта — принята
|
||||
@@ -722,9 +721,7 @@ compose down`); отдельных событий эскалации в `--json`
|
||||
ALL_CLOSED + 1 новый NIT (повтор фразы в спеке, внесённый починкой TASK-2) —
|
||||
поправил сам по месту. Тесты 353 → 383.
|
||||
- **Долг скилла остаётся тот же**: абзацы про соразмерность лечения третий
|
||||
прогон подряд пишутся руками. Кандидат прежний — перенести в
|
||||
`prompts/triage-header.md` и `prompts/recheck-header.md` (тексты этого
|
||||
прогона годятся как есть).
|
||||
прогон подряд пишутся руками. Закрыт 2026-08-03.
|
||||
|
||||
## 2026-08-02: сломанный прибор доезжает до коммита (clickstream v2, тикет #50)
|
||||
|
||||
@@ -778,6 +775,51 @@ compose down`); отдельных событий эскалации в `--json`
|
||||
~31 мин, саморевью 3/3; слепые ревью — Опус 28 инструментов / 7 находок,
|
||||
Кодекс 120 команд / 1, пересечение **ноль**; триаж 8 FIXED + второй круг
|
||||
на 1 новую находку, 0 отклонённых; перепроверки 15 и 18; тесты 383 → 394.
|
||||
- **Долг четвёртый прогон подряд тот же**: шапки соразмерности в
|
||||
`prompts/triage-header.md` и `prompts/recheck-header.md` так и не
|
||||
перенесены.
|
||||
- **Долг четвёртый прогон подряд тот же**: шапки соразмерности так и не
|
||||
перенесены. Закрыт 2026-08-03.
|
||||
|
||||
## 2026-08-03: долг соразмерности закрыт, и найдена его настоящая причина
|
||||
|
||||
Сессия без прогона: разбор `lessons.md` по `/writing-great-skills` и правка
|
||||
шапок. Долг, висевший с #39, закрыт — правки лежат в
|
||||
`prompts/triage-header.md` и `prompts/recheck-header.md`, содержание там,
|
||||
здесь не дублирую.
|
||||
|
||||
- **Причина не в размере починки, а в весе слова** (диагноз пользователя).
|
||||
Пока код писал Кодекс, а ревьюил Опус, послушный исполнитель был прав:
|
||||
ревьюер сильнее как архитектор. После разворота ролей — вкусовая
|
||||
реализация Опусом, ревью Кодексом — послушание стало вредным: Кодекс
|
||||
очень сильный исполнитель, но слабее как мыслитель-архитектор, настойчив,
|
||||
склонен к формализации без учёта высокоуровневой цели и продавливает
|
||||
Опуса на свои решения. Перекос усиливает разница ступеней: Опус на medium
|
||||
против Сола на high уступает ещё и по «званию».
|
||||
- **Цифра под диагнозом**: #39, #40, #50 — около 28 находок, ноль
|
||||
отклонений.
|
||||
- **Два кандидата сняты сверкой с эмпирикой, а не по вкусу.** Требование
|
||||
объявлять ослабление порога отдельной строкой — против него сам урок #50
|
||||
(«объявление не заменяет проверку необходимости»), а оба случая (#40,
|
||||
#50) поймала перепроверка. Пункт «оценивай довод исполнителя, а не факт
|
||||
несогласия» — дубль строки, уже стоявшей в шапке.
|
||||
- **Правило об арбитре в споре не писалось намеренно**: спора ни разу не
|
||||
было (ноль отклонений), правило под несуществующую ситуацию есть
|
||||
перерегулирование. Ждём первого отклонения — новые шапки как раз должны
|
||||
его породить.
|
||||
- **Разбор самого файла**: 783 строки, 22 записи; собственное правило
|
||||
«поглощён урок — сожми до строки-факта» сработало один раз (07-12) и с
|
||||
тех пор нет — записи после него по 30–80 строк, часть держит вторую копию
|
||||
действующих правил SKILL.md. Дистилляция архива вынесена отдельным
|
||||
заходом.
|
||||
|
||||
**Очередь на механизм** (сведена сюда, чтобы не искать по всему файлу):
|
||||
блок открытых решений в промпте ревью — «какие решения ещё открыты и кем
|
||||
владеются» (#36); абзац от линии Кодекса «что сделает эту правку
|
||||
провальной, даже если все критерии зелёные» (#50); приёмы против сломанного
|
||||
прибора оркестратора (#38 — `PYTHONDONTWRITEBYTECODE=1` и чистое дерево
|
||||
крайними прогонами; #50 — арифметика чисел, попадающих в спеку, и явное
|
||||
зерно; #39/#40 — тонкий лог перепроверки как повод проверить MAJOR своим
|
||||
зондом; #40/#50 — один пример целиком на приёмке); мелочи по месту —
|
||||
сведение вердиктов по совпадению явления, а не формулировки (этап 5), ревью
|
||||
постановки не запускает команды тикета (этап 2), оговорка про `< /dev/null`
|
||||
рядом с приёмом в `codex-exec.md`; старьё — ранжирование правил задачи
|
||||
(07-07), эхо файла задачи (07-13), A/B на gpt-5.6-terra (07-13), пп. 1–2 и 4
|
||||
одёргиваний (07-31).
|
||||
@@ -5,6 +5,16 @@ their resolutions report is appended below. Check ONLY your own findings —
|
||||
no full second pass. Mandate unchanged: modify nothing; reading and
|
||||
running tests are allowed.
|
||||
|
||||
Judge the repair, not only the closure:
|
||||
|
||||
- A fix that reaches further than your finding required is itself a
|
||||
defect — and the likeliest source of it is your own prescription, so
|
||||
put that on trial too.
|
||||
- Before writing NOT_CLOSED, check that a closing state exists at all,
|
||||
and price the alternative. A demand the platform cannot satisfy, or one
|
||||
that trades away a real property to guard against deliberate misuse, is
|
||||
not a valid NOT_CLOSED.
|
||||
|
||||
One line per your original ID: `ID | CLOSED | NOT_CLOSED (why) |
|
||||
REJECTION_VALID | REJECTION_INVALID (why)`. Judge a rejection by its
|
||||
argument in the resolutions report — contract and test, not taste. If you
|
||||
|
||||
@@ -10,11 +10,26 @@ disposition:
|
||||
"not important" is not accepted;
|
||||
- OUT_OF_SCOPE — needs a boundary decision; state which one;
|
||||
- NEEDS_DECISION — a product, architecture, or risk choice a technical
|
||||
argument cannot settle; state the open question.
|
||||
argument cannot settle; state the open question. This includes the case
|
||||
where your own fix would settle such a choice — the size of the edit is
|
||||
irrelevant.
|
||||
|
||||
OUT_OF_SCOPE and NEEDS_DECISION belong to the coordinator — do not
|
||||
silently decide them yourself.
|
||||
|
||||
## The review is evidence, not orders
|
||||
|
||||
A review report is a set of claims, not a list of instructions. Verify
|
||||
every finding yourself. You own the task; the review is there to help.
|
||||
|
||||
- **Rejection is a normal outcome, not a conflict.** A REJECTED with an
|
||||
argument from contract and test is worth exactly as much as a FIXED. A
|
||||
run with no rejection and no finding closed by your own route says
|
||||
nothing about the quality of the review — it is a reason to re-read
|
||||
what you took on trust.
|
||||
- **The reviewer's route is a proposal.** Closing a finding another way
|
||||
is fine when the argument is stronger; name the route you took and why.
|
||||
|
||||
No commits. Do NOT edit the task file: write detailed resolutions and
|
||||
rejection arguments to your assigned report file — re-checks and fresh
|
||||
threads will read that file by path; the task file is updated separately
|
||||
|
||||
Reference in new issue
Block a user