私は AI の出力を、もうほとんど読んでいません。AI が出力するテスト結果も、AI が書き足す知見メモ(メモリ)も、メインの会話を引き継がずに別に立ち上げた AI(サブエージェント)の作業ログも。読んでいないのは、私だけではありません。AI 自身も、自分の出力を読まずに済む形にしてあります。それで品質が落ちたかというと、落ちていません。このシリーズは、その状態を仕組み一つずつで作っていく連載です。
先に、読み方を書いておきます。この連載は、読むだけで追えます。各回は、現場で何が起きたかから始まり、何を置いて、その結果として何を読まなくなったかまで続きます。各回の終盤に「検証手順」という節がありますが、読み飛ばして構いません。自分の環境で試したくなったときに、戻ってくれば足ります。
まず一つだけ、思い出してみてください。AI コーディングエージェントに渡している指示ファイル(CLAUDE.md や AGENTS.md など、ルールの置き場です)は、いま何行あるでしょうか。その中で、先週足した行がどれか思い出せますか。その行は、今日のセッション(AI との一続きのやり取り)で AI に守られたでしょうか。
まだ AI と一緒に開発していないなら、思い出せなくて当然です。ここから先は、その指示ファイルが 3 週間でどうなるかを順に見ていきます。自分の数字が無くても、そのまま読めます。
手元にターミナルがあれば、行数だけ数えておくと、次の節の数字が自分の話になります。
wc -l CLAUDE.md # AGENTS.md など、使っているファイル名に読み替えてください
3 週間で動かなくなる
よくある経過です。1 週目、指示ファイルは 10 行。AI はよく動く。2 週目、AI が失敗するたびに、あなたは「〜しないこと」を 1 行足して 30 行。AI はまだ動くが、前に足したルールを破る日が出てくる。3 週目、60 行。1 週目に AI ができていたことが、できなくなっている。あなたはルールを整理し、優先順位を付け、大事なものを太字で先頭へ。80 行。AI はもっと守らなくなる。あなたの改善の努力そのものが、状態を悪くする側に回る——ここがいちばん厄介なところです。
原因は AI の能力ではなく構造です。指示は、AI が応答のたびに読み込む作業記憶(コンテキスト)の中で、他の全部と注意を奪い合っている。ルールは足すほど薄まる。1 つ足すことは、他の全部を少し弱くすることです。だから「守らせるためにルールを足す」は構造的に負けが決まっています。
Anthropic はこれを逓減する有限の資源と書いています——LLM には注意の予算があり、トークン数が増えるほど、その中から正確に思い出す能力は落ちる。Claude Code のドキュメントはもっと直接で、指示ファイルは1 ファイル 200 行未満を目標に、長いファイルはより多くのコンテキストを消費し、遵守率を下げると書いてあります。
flowchart TB
subgraph K["毎セッション、応答のたびに読み込まれるもの"]
direction TB
k1["指示ファイル"]
k2["メモリの一覧"]
k3["いまのタスクの会話"]
k4["ツールの出力(テスト結果・差分…)"]
end
K --> B["注意の予算は、増えない"]
B --> R["1 行足すことは、<br/>他の全部を少し弱くすること"]
私の手元の本番プロジェクトもここを通りました。typingtube という、YouTube の音楽動画でタイピング練習ができる Web サービスで、個人で運営しています。指示ファイル 101 行、蓄積したメモリ 89 ファイル・約 1.1MB。ルールの一覧を hook(AI のコマンド実行に割り込む仕掛け)で毎回注入するだけで、約 26KB がコンテキストに入る状態まで行きました。このシリーズは、そこから引き返した記録です。
読まない技術
引き返した先にあったのは「もっと読ませる」の逆でした。テスト結果は、私にも AI にも失敗だけが届く。メモリは勝手に増えない。サブエージェントは見張らなくても止まるべきところで止まる。読まされていたものが一つずつ消えて、そのぶん楽になります。
やることは各回一つだけです。ファイルやスクリプトを一つ置き、確かめる手順も一つ。仕組みは置くだけで効きます。理解は、使い始めてからで間に合います。中身を読み込んでから始める必要はありません。
多くの回で hook(Claude Code なら hooks の設定)を使いますが、使っているツールになければ作ればいい。要るのは「読んでいなければ動けない構造」で、hook はその実装手段の一つにすぎません。
大事な注意を一つ。全部を今日置く必要はありません。失敗する前に先回りして置くと、うまくいかないことが多いからです。規模や構成によっては、そもそも起きない失敗もあります(小さなプロジェクトはメモリ肥大化と無縁です)。
多くの回の冒頭には、自分の環境で症状を確かめる操作を一つ置いてあります。症状が出ていたら、その回の置きどきです。失敗してから置く仕組みは、なぜ要るかを目撃した直後なので、よく馴染みます。
シリーズの構成
基本編は、この連載が渡す仕組みをそのまま使う人向けです。置くだけで効きます。
応用編は、仕組みを自分で作ってチームに渡す人向けです。規模が大きくなっても崩れない形にします。
- 第 5 回 サブエージェントの出力だけは読め
- 第 6 回 ルールを読まない技術(チーム向け)
- 第 7 回 共有メモリを整理しない技術(チーム向け)
- 第 8 回 修正履歴を読まない技術
- 第 9 回 引き継ぎを読まない技術
- 第 10 回 AI に要約しろと言わない技術
- 第 11 回 口を挟まない技術
- 第 12 回 作業結果を読まない技術
最終回で、ここまでの部品がどうつながって、私が読まなくても回るかをまとめます。
テストをいつ・何本・どの手段で走らせるかは、この連載では扱いません。別の連載になりました。
次回は一番手前の話から。AI がテストを走らせて流れてくる 26,147 行を、私は読んでいません。それで見落としたことは、まだ一度もありません。
連載「読まない技術」
- → 次回: 第 1 回 テスト結果を読まない技術