Что происходит → что делать
Ищите не по названию статьи, а по симптому. Ссылка под «Что делать» ведёт к разделу, где описано это решение. Список статей — внизу этой страницы, вне обратного указателя.
Эта таблица предполагает использование Claude Code (агента для программирования от Anthropic). hook, CLAUDE.md, subagent и auto memory — названия его функций.
Фраза, которую человек пишет, когда что-то пошло не так
「Очистите все todo. Посмотрите https://typing-tube.net/articles/ru/lookup.md, просмотрите эту сессию и проверьте, не пошло ли что-то не так.」
Отсюда выходит только список проблем. Как их исправить, решаете вы — под свой проект.
| Что происходит | Предлагаемый подход |
|---|---|
| No.1 Каждый раз, когда ИИ запускает тесты, в контекст выгружаются десятки тысяч строк вывода |
Пример:Оберните запуск тестов в один скрипт и возвращайте ИИ только сводку ошибок. |
| No.2 Чем больше заметок со знаниями сохраняет ИИ, тем больше приходится читать в каждой следующей сессии |
Пример:Перед записью в память давайте прочитать чек-лист, а в постоянно читаемый файл кладите одну строку. |
| No.3 Тесты проходят, но непонятно, действительно ли они что-то защищают |
Пример:Поручите ИИ провести mutation testing. |
| No.4 ИИ иногда использует зарегистрированный skill, а иногда нет |
Пример:Блокируйте неверный вызов на входе и указывайте нужную документацию. |
| No.5 После того как работа передана sub-agent'у, не видно, что происходит, пока он не закончит |
Пример:Составьте список задач для делегирования и проверяйте их через hook перед запуском. |
| No.6 Чем больше правил добавляется в файл инструкций, тем хуже соблюдаются добавленные раньше |
Пример:Каждое «не делайте X» переводите в автоматический тест, находящий нарушение. |
| No.7 Память, которую делят параллельные сессии, замусоривается, и чтение политики этому не помогает |
Пример:Не меняйте содержимое — показывайте его сразу после сохранения. |
| No.8 Даже если способ обработки ошибки записан, в следующий раз ИИ повторяет ту же ошибку |
Пример:В момент обнаружения сбоя автоматически подставляйте политику повтора. |
| No.9 Даже при чтении заметок передачи и отчёта о завершении не хватает неудобных деталей |
Пример:Рядом с отчётом о завершении всегда ставьте цифры, посчитанные машиной. |
| No.10 Числа, посчитанные машиной, к моменту попадания в отчёт превращаются в другие числа |
Пример:Добавляйте к строке с числом фиксированный префикс и проверяйте через hook, что она скопирована дословно. |
| No.11 Если прервать ИИ посреди работы, всё, что он делает дальше, идёт наперекосяк |
Пример:Не вмешивайтесь посреди работы — ждите границы. Прерывание доверьте механизму. |
| No.12 К концу сессии неясно, что нужно прочитать, а что нет |
Пример:Не читайте ни результат, ни лог — судите только по exit code. |
| No.13 Однажды отклонённое предложение снова всплывает в следующей сессии |
Пример:Собирайте все отклонённые решения в один документ. |
| No.14 Даже если запрет записан одной строкой, его толкуют то слишком широко, то слишком узко |
Пример:К каждому запрету добавляйте «причину» рядом с выводом. |
| No.15 Запрет записан правильно, но не соблюдается, и каждый раз приходится это обсуждать |
Пример:К каждому запрету добавляйте «область применения» и перечисляйте спорные границы. |
| No.16 Одна и та же инструкция, розданная нескольким sub-agent'ам, возвращается каждый раз в разной форме |
Пример:В списке задач для делегирования указывайте нужные входные данные. |
| No.17 Запреты без автоматического теста накапливаются, оставаясь просто текстом |
Пример:Для каждого запрета отмечайте, есть ли соответствующий автоматический тест. |
| No.18 Каждая работа ИИ заканчивается словами «откройте экран и проверьте» |
Пример:Судите об успехе не по виду экрана, а по оставшимся данным. |
| No.19 Каждый раз, когда ИИ говорит что-то чуть не то, приходится самому объяснять и исправлять |
Пример:Не объясняйте сами — возвращайте через hook и сообщения об ошибках тестов. |
| No.20 Список отклонённых решений продолжает расти, и похоже, что однажды его перестанут читать |
Пример:Отклонённые предложения отправляйте в раздел «непринятые варианты» в конце. |
| No.21 Строки «обязательно выполните это» в файле инструкций никак не сокращаются |
Пример:Сверяйте, есть ли команда из «обязательно выполните» также и в механизме. |
| No.22 Даже если передать точный порядок действий, исправление приходит не в том виде |
Пример:Не диктуйте порядок действий — определяйте только нужные входные данные. |
| No.23 Чтобы сообщить о баге, каждый раз приходится самому описывать шаги и симптомы |
Пример:Пусть человек пишет только одно предложение о симптоме — остальное собирается автоматически. |
| No.24 Каждый раз приходится тратить усилия на то, чтобы написать «сначала дай план» |
Пример:Разместите один проектный документ — ИИ повторит его формат. |
| No.25 Строки, которые больше всего хочется, чтобы соблюдались, написаны наиболее настойчиво, но неясно, помогает ли это |
Пример:Не измеряйте эффект — считайте строки с выделением и задайте предел. |
| No.26 Результат работы sub-agent'а возвращается в форме, отличной от ожидаемой |
Пример:Заранее определяйте критерии приёмки результата, до передачи задачи. |
| No.27 Найдя ошибку, хочется спросить с упрёком: «вы вообще это читали?» |
Пример:Не упрекайте — спрашивайте в форме «разве не …?». |
| No.28 Ответ «нет, не так» на полученный результат не делает его лучше |
Пример:Не указывайте сами — показывайте запрет вместе с diff сразу после сохранения. |
| No.29 ИИ рассказывает о содержимом файла так, будто открывал его, хотя не открывал |
Пример:Заставьте писать один и тот же идентификатор и в источнике, и в реализации, и проверяйте автоматическим тестом, что он существует. |
| No.30 ИИ снова и снова спрашивает «А или Б?», и работа стоит, пока вы решаете |
Пример:Не отвечайте сразу — пусть критерий выбора определяет механизм. |
| No.31 ИИ проводит ревью, но неясно, что остаётся вне поля зрения |
Пример:Извне находите автоматические тесты, которые сканируют, но не имеют нижней границы числа. |
| No.32 Скриншоты продолжают накапливаться, но непонятно, какой из них что именно подтверждает |
Пример:Перед съёмкой пишите «что проверяется» и начинайте с самого дешёвого способа. |
| No.33 Шаг с обязательной записью введён, но невозможно посчитать, сколько запусков его пропустило |
Пример:Перед скриншотом или E2E требуйте записать «что проверяется» — без записи не запускайте. |
| No.34 Один и тот же тест запускается снова, хотя код не менялся, и приходится ждать заново |
Пример:Дайте возможность перечитать прошлый лог, чтобы не повторять один и тот же запуск. |
| No.35 Ничего не сломано, а вылезает целый ряд незнакомых ошибок |
Пример:Берите эксклюзивную блокировку на запуск тестов — без неё не запускайте. |
| No.36 В отчёте «тесты проходят» не сказано, какая часть вообще не запускалась |
Пример:Пропускайте тяжёлые тесты по умолчанию и каждый раз выводите список непройденных областей. |
| No.37 Нельзя потом понять, была ли на самом деле соблюдена инструкция, задающая порядок действий |
Пример:Не усиливайте инструкцию — пусть в результате остаётся след пройденных шагов. |
| No.38 Установленный обёрточный скрипт со временем снова заменяют на голую команду |
Пример:Не усиливайте инструкцию — проверьте, не осталась ли причина возврата к голой команде. |
| No.39 На один и тот же вопрос каждый раз приходит разный ответ, а при сведении в одно что-то теряется |
Пример:Перед сведением в одно выводите, сколько из скольких указали каждый тип замечания. |
| No.40 Непонятно, сработала ли строка вида «сделайте X, если нужно» |
Пример:Не пишите «если нужно» — сделайте шаг обязательным для продолжения. |
| No.41 Просьба «подумайте ещё раз» меняет ответ, но неясно, действительно ли ИИ убедился |
Пример:Не возвращайте на доработку без деталей — указывайте, какая посылка неверна. |
| No.42 После фразы «не гадайте» ИИ стал возвращаться, вообще ничего не создав |
Пример:Не давайте только запрет — добавляйте выход в виде «не применимо». |
| No.43 Чем дольше продолжается удачно идущий диалог, тем больше усилий уходит на проверку |
Пример:Завершайте сессию на границе и начинайте следующую заново. |
| No.44 Все результаты работы верны, но накапливаются потери, которые в них не отражены |
Пример:Когда результаты готовы, один раз подведите итог по логу работы. |
| No.45 Заметки со знаниями, оставленные для следующего, расходятся с реальностью и устаревают |
Пример:Не оставляйте знание в документе — встраивайте его в сообщение при остановке. |
| No.46 Копание в причине продолжается, и чтение идёт даже после того, как ответ уже найден |
Пример:Считайте чтения подряд без изменений и заранее задайте условие остановки. |
| No.47 Самая дешёвая по цене модель делается моделью по умолчанию без проверки, подходит ли она задаче |
Пример:Передайте задачу дешёвой и дорогой модели и решайте, посчитав шаги и объём. |
| No.48 Если что-то не работает, вместо механизма чинят, повышая модель |
Пример:Передайте задачу обеим моделям и превратите провалы дешёвой в автоматический тест. |
| No.49 Исследование, которое основная сессия могла бы завершить сама, на всякий случай передают sub-agent'у |
Пример:Не передавайте то, что уже есть у родителя, — только недостающее чтение. |
| No.50 По умолчанию работу делят на четыре части и запускают всё одновременно, просто на всякий случай |
Пример:Передавайте sub-agent'у не больше, чем он вернёт за один ответ. Цену определяет число обменов, а не sub-agent'ов. |
| No.53 «Посмотрите ещё и на это» вставляют извне посреди работы |
Пример:Дождитесь границы и просите с узкой областью, добавив «если достаточно — так и напишите». |
| No.52 Выбор модели пытаются сделать через прямое сравнение |
Пример:Перед сравнением посчитайте, скольким механизмам равны его затраты. |
| No.51 Фразой «разницы не было» пытаются свернуть проверку |
Пример:Перед сворачиванием пересчитайте исключённые результаты и пункты с нулём везде. |
| No.54 В какой-то день ИИ начал работать иначе, хотя вы не меняли ни инструкции, ни настройки |
Пример:Не пишите то, что конфликтует с инструкциями продукта, — дополняйте только то, что они не определяют. Меняя подход, переключайте настройку. |
Список статей
Дальше идёт не обратный указатель, а ссылки на статьи — по каждой серии, от введения до заключительной части.
はじめに —— 3 つの連載を、1 冊に
バイブコーディングにおける読まない技術
- 読まない技術 序論 AIの出力を、もうほとんど読んでいない
- 読まない技術 第1回 テスト結果を読まない技術
- 読まない技術 第2回 メモリを読まない技術
- 読まない技術 第3回 単体テストを読まない技術
- 読まない技術 第4回 スキルを使わない技術
- 読まない技術 第5回 サブエージェントの出力だけは読め
- 読まない技術 第6回 ルールを読まない技術
- 読まない技術 第7回 共有メモリを整理しない技術
- 読まない技術 第8回 修正履歴を読まない技術
- 読まない技術 第9回 引き継ぎを読まない技術
- 読まない技術 第10回 AIに要約しろと言わない技術
- 読まない技術 第11回 口を挟まない技術
- 読まない技術 第12回 作業結果を読まない技術
- 読まない技術 最終回 AIの出力を、ほとんど読まなくなった
AIの意見を聞かない技術
言わない技術
- 言わない技術 序論 AI に指示することが、ほとんどなくなった
- 言わない技術 第1回 検証を指示しない技術
- 言わない技術 第2回 具体的な指示を出さない技術
- 言わない技術 第3回 不具合詳細を書かない技術
- 言わない技術 第4回 計画を書けと言わない技術
- 言わない技術 第5回 念を押さない技術
- 言わない技術 第6回 サブエージェントの出力だけは、細かく指示しろ
- 言わない技術 第7回 AI を問い詰めない技術
- 言わない技術 第8回 AI にダメ出ししない技術
- 言わない技術 第9回 AI に考えさせない技術
- 言わない技術 第10回 質問に答えない技術
- 言わない技術 第11回 AI にレビューをさせない技術
- 言わない技術 最終回 何もしない技術
付録
はじめに —— 前巻の続きを、もう 1 冊に
確かめない技術
動かさない技術
追わない技術
番外編
- 番外編 A-1 整理する技術 —— 記録が増えたときに、何が起きているか
- 番外編 A-2 指示を残す技術 —— 「調べるだけ」が通らなかった日
- 番外編 A-3 参照するタイミングを変える技術 —— 2,000 行の壁
- 番外編 A-4 導出を依頼者の言葉と分ける技術 —— 誰も言っていない条件が、memory に載った日
- 番外編 A-5 memory を要約しない技術 —— 整理から、要約を抜く
- 番外編 A-6 責務で線を引く技術 —— 仕組みが増えたときに、どれを消すか
- 番外編 A-7 読まれたかを確かめる技術 —— 確かめるのをやめて、読めていない形を止めた
- 番外編 A-8 面積で数える技術 —— 読ませた量で数えていたら、102 倍外していました
- 番外編 A-9 ルールを短くする技術 —— 読みに来るのは、止められた直後の人です
- 番外編 B-1 連載を本にする技術 —— 本単位のスイッチでは、足りなかった日
- 番外編 C-1 校正の方法に、先に本編を当てる技術 —— AI が書いた方針に、その本自身の地雷が 10 個あった日
- 番外編 C-2 仕組みと人を分ける技術 —— 自動テストを置いたその手で、自動テストの外側で 2 度転んだ日
- 番外編 C-3 要素ごとに観点を変える技術 —— 一様に当てた点検が、要素をまたいだところで数を落とす
- 番外編 C-4 似た指示語を読み分ける技術 —— 1 字違いで、別の作業を頼んだことになる
- 番外編 C-5 作業の流れを見る技術 —— 終わりにしたつもりの日に、まだ起きていたこと
- 番外編 C-6 作業を進める技術 —— 選ぶ場面が、1 つも残らなかった日
- 番外編 C-7 読まずに止める技術 —— 決まったはずの判断が、1 分後に取り消されました
- 番外編 D-1 症状で読む —— 片付いた報告に、症状が混ざります
- 番外編 D-2 根拠で読む —— 突き合わせた報告に、症状が混ざります
- あとがき —— 本当の事実はどうでもいい話