AIが出してくる提案の大半を、は検討せずに済ませています。新機能の案も、改善案も、代替案も、同じです。AIは却下を覚えないので、が断った提案を、次のセッション(AIとの一続きのやり取り)でまた出してきます。それでも、開発の質は、提案を検討していた頃と同じです。その状態を作っているのは、一つずつ置いた仕組みです。
各回の終盤には「検証手順」という節があります。先に読む必要はありません。置いた仕組みがなぜ要るのかを、自分の目で確かめたくなったときに戻ってください。
症状から対処法を学ぶ
各回は、うまくいかない症状から始まります。その対処法には、関連するAIの性質や仕様と、なぜその対処が適切かの解説が付いています。
先に、なぜその対処が適切かを覚える必要はありません。対処に要るのは、仕組みを一つ置くことだけです。
AIの性質や仕様を覚えても、それらの組み合わせ次第で、AIは間違えることがあります。通常の設計開発では気付きにくい、複数の性質や仕様が絡む落とし穴も、症状から順にたどれば、学ぶことができます。
まず、心当たりを確かめる
まず一つだけ、思い出してみてください。
AIと一緒に開発しているなら、思い出してほしいのは、直近のセッションであなたがAIの提案を断った箇所です。
その提案は、何度目でしたか。
初めてではなかったはずです。提案されたのは、前と同じ機能、同じ改善点、同じ「ついでにこうしませんか」でした。前にあなたが断ったのに、AIはまた同じ提案をしてきます。もう一度断っても、次のセッションで、また同じ提案が来ます。
まだAIと一緒に開発していないなら、断った箇所を思い出すことができなくて当然です。
断るのは、いつも人間だけ
AIは、自分の提案が断られたことを覚えていません。忘れたのとも違います。の手元でも、次のセッションのAIは、同じコードベースを見て、前のセッションでが断ったのと同じ提案をしてきました。あなたにとっては「二度目」ですが、AIにとっては毎回が一度目です。
Claude Code のドキュメントは、セッションはそのたびにまっさらなコンテキストで始まると書いています。コンテキストは、AIが応答のたびに読み込む作業記憶です。同じドキュメントは、知識を次のセッションへ持ち越すための置き場を 2 つ挙げています。人が書く指示ファイル(CLAUDE.md や AGENTS.md)と、AIが自分で書くメモリです。セッションの中で断っただけなら、その却下は、どちらにも入りません。断ったという事実が残るのは、そのセッションの中だけです。
断るたびに、判断のコストが人間の側に積み上がります。断るたびに理由を思い出し、前と同じ結論に至り、同じ説明をするのが、そのコストです。
却下を指示ファイルに書いておけば、次のセッションのAIにも届きます。指示ファイルは、毎セッション読み込まれるからです。Claude Code のドキュメントは、指示ファイルを削るときに何を残すかも書いています。AIがコードベースから導くことのできる内容を削り、落とし穴と、理由と、ツールの既定と違う慣習を残す、としています。却下が当たるのは、このうちの理由です。AIがコードベースを読んでも、却下を導くことはできません。Claude Code のドキュメントが残すほうに挙げているものを、はセッションの中で捨てていました。
ただし、指示ファイルに書いた却下には、足すほど薄まるという問題があります。同じドキュメントは、指示ファイルを 200 行未満にするよう勧め、長いファイルはコンテキストを多く使い、守られにくくなると書いています。却下を 1 件書き足すたびに、長くなるのは指示ファイルです。却下を書いてセッションの外に置くやり方が成り立つのは、書く却下の種類が限られているときだけです。
前に断った提案が、次のセッションでまた来ました。このとき、あなたなら次のどちらを選びますか。
- もう一度、理由を説明して断る
- 断った判断を書き切って、セッションの外に置く
答えは、セッションの外に置くほうです。同じ提案がまた来たのは、断ったという事実が、前のセッションの中にしか残っていなかったからです。新しいセッションはまっさらなコンテキストで始まり、指示ファイルにもメモリにも入っていない却下は、次のセッションのAIに届きません。もう一度説明して断っても、その説明が残るのは、またそのセッションの中だけです。次のセッションで同じ提案が来れば、理由を思い出して同じ説明をするのは、またあなたです。セッションの外に書いておけば、却下は、次のセッションのAIにも届きます。
理解したことは一文にできます。
AI は却下を覚えない。断るたびに、同じ判断のコストを人間が払い直す。だから却下は、一度で書き切ってセッションの外に置く。
前作の、続きです
前作「読まない技術」の結論は「ルールは読まれたときだけ効く。自動テストや hook は読まれなくても落ちる」でした。hook は、コマンド実行などの直前・直後に割り込むスクリプトです。前作では、AIに守ってほしいことを指示ファイルに書くのをやめて、破られたら落ちる自動テストに置き換えました。その実装が、前作の第 6 回です。
ただし、あの回では、自動テストに置き換える範囲を自分で限っていました。自動テストに置き換えることができるのは、プログラムが真偽を決めることのできるルールだけです。「この機能はあえて作らない」のような方針は置き換えることができないので、AIに読ませる側に残します、と書きました。
前作でAIに読ませる側に残した方針も、はいま、前作と同じように仕組みに置き換えています。
- 前作: AIの出力を、読まなくて済む形にした
- この連載: 人間の判断を、二度しなくて済む形にする
前作とは、逆のことを言います
前作の第 2 回で、はこう書きました。AIがメモリを保存するたびに、以後のセッションでAIが読む量が増えるので、1 回の保存は、そのあと毎回払い続けるコストになります。
1 回の却下で、そのあと毎回の判断のコストを払わずに済むようになります。
違うのは、増え方です。の手元では、AIがメモリに保存した気づきが 89 件から 91 件へ増えたあいだも、却下の一覧は 17 件で止まっています。
17 件は、17 回断った結果です
この連載は「やらないことリストを作りましょう」という話ではありません。
の手元にある 17 件は、一件ずつ断って、一件ずつ書いたものを、後から一つの一覧に集めたものです。先回りして考えた禁止は 1 件もありません。今日、セッションの外に置くのは、二度目に断った 1 件だけで足ります。
の手元のプロジェクトは、前作と同じ、typingtube という、YouTube の音楽動画でタイピング練習ができる Web サービスです。このサービスは本番で動いていて、が個人で運営しています。
連載の構成
次回は一番手前の話から。は、AI の提案を検討していません。 それでも、良い提案を取り逃したことはありません。
連載「AIの意見を聞かない技術」
- → 次回: 第 1 回 提案を検討しない技術