diff --git a/agents/.agents/skills/claude-subagent-playbook/references/lessons.md b/agents/.agents/skills/claude-subagent-playbook/references/lessons.md index c703075..e9a3c56 100644 --- a/agents/.agents/skills/claude-subagent-playbook/references/lessons.md +++ b/agents/.agents/skills/claude-subagent-playbook/references/lessons.md @@ -324,3 +324,26 @@ claude-subagent-playbook»); правила канала в codex-exec.md был свободного слота) — в SKILL.md, раздел «Роли». Скилл переведён на автовызов моделью (описание с триггерами), близнец скрыт `disable-model-invocation` — пара промахов исключена с обеих сторон. + +## 2026-07-23: taste-слепота триажа — «закрыть находку тестом» + +Прогон course-labs-redesign (issue #7, docs-only). Codex на триаже закрыл +9 из 10 находок честно, но каждую сопроводил контрактным тестом с +дословной цитатой учебной прозы (+7 хрупких тестов в +test_world_dags_contract.py: «не сравнивай», «днём 5» и т.п.). Формально +безупречно — «regression-тест на находку», по сути мусор: прибитая фраза +падает при любом честном рерайте текста, а не при дефекте. Обе линии +слепого ревью прошли раньше триажа и этого видеть не могли; поймал +пользователь, читая незакоммиченный дифф. + +Решения пользователя (перенесены в память проекта: +claude-reviews-code-meaningfulness): 1) в линзу Claude-ревьюера добавлять +осмысленность кода — «заслуживает ли существования каждый добавленный +артефакт», не только соответствие постановке; 2) срезание/переписывание +бессмысленного кода поручать Опусу, не Codex («у него куда лучше вкус»). +Механика: узкую перепроверку после триажа давать той линзе, что видит +дифф триажа целиком, — иначе taste-дефекты триажа не увидит никто. + +Попутно: образец заражает — исполнитель добавлял прозаические тесты, +следуя уже существующим в файле (жанр «тест на фразу README» там был до +него). Чистка легаси-жанра — отдельным issue (#24), не в ветке фичи.