この記事は、連載「読まない技術」の第 2 回です。各回はファイルやスクリプトを一つ置けば完結します。連載の全体像と各回の一覧は序論にあります。

今回は、メモリの話です。メモリというのは、AI が知見を書き溜めていくメモのことです。メモは AI が保存するたびに増え、以後のセッションが読む量も一緒に増えていきます。それをどこで止めるかを扱います。

まず一つだけ、数えてみてください。AI コーディングエージェントが知見を書き溜めている場所——Claude Code なら ~/.claude/projects/ の下にあるプロジェクトごとのディレクトリの memory/——のファイル数とサイズです。

CC BY 4.0

ls ~/.claude/projects/   # まず一覧から自分のを探す(絶対パスの / を - に変えた名前。例: -home-you-myapp)
ls ~/.claude/projects/PROJECT_DIR/memory/ | wc -l
du -sh ~/.claude/projects/PROJECT_DIR/memory/

CC BY 4.0 はここまで

私の環境は 89 ファイル・約 1.1MB でした。個人で運営している typingtube(YouTube の音楽動画でタイピング練習ができる Web サービス)を AI と開発しながら溜まった知見メモです。その大半を、私は読んだことがありません。数えてみて、まだ数個しか無かった人も、そのまま読めます。置きどきは増え始めた日で、そのとき何を置くかが、この回の中身です。

こうなるのは、AI が保存したがるからです。失敗のあとの「今後のために教訓を保存しました」という報告は人には成果に見えますし、役に立つ振る舞いとして学習もされています。あなたが「むやみに保存するな」と書いても直らないのは、第 1 回の標準コマンドと同じ——AI の中の優先順位で、ルールは染み付いた習慣に負けるのです。そして人間のメモは読み返さなければタダですが、AI のメモは一覧や本文を以後のセッションに読み込ませてこそ意味があるので、保存された瞬間から、以後のセッションが読む量として効き続けます。1 回の保存は、以後の全セッションに掛かる負担です。しかも指示ファイルと違って、メモリは AI が自分で増やせます。放っておくと、指示ファイルより速く育ちます。

理解したことは一文にできます。

メモリは保存のたびに、以後の全セッションが読む量を増やす。だから書き込み口を一つにして、増やさない側に自分を置く。

CC BY 4.0

仕組み: 書き込み口を一つにする

置くのはチェックリスト 1 枚です。ただし置き方に条件が二つあります。

一つ、保存の直前にだけ読ませる。指示ファイルに常駐させると、序論の「足すほど薄まる」に戻ります。常駐させるのは「メモリへ書く前にこのファイルを読む」の 1 行だけ。保存は頻度の低い行為なので、その瞬間に 1 枚読ませてもコンテキストはほぼ食いません。

二つ、書き込み口を一つに揃える。メモリの置き場は 1 ディレクトリ、索引(MEMORY.md など)は 1 枚。ファイルを足すときは索引に 1 行足すところまでがセットです。索引に載っていないメモは存在しないのと同じ、というルールにしておくと、全体像は索引 1 枚で追えます。

チェックリストの中身はこれだけです(手元の本番プロジェクトで運用しているものの簡約版)。

# メモリ保存前チェックリスト(保存の直前にだけ読む)

1. 固有の知識か: このプロジェクト固有の制約・判断基準か?
   一般論は保存しない。一般論なら AI は次のセッションでも自力で出せる
2. 恒久の課題か: 同じ場面が将来も来るか?
   初回の失敗は保存しない。繰り返し起きてから候補にする
3. 重複・矛盾はないか: 索引(MEMORY.md)と照合する。重複なら既存を更新
4. 進行中の作業メモではないか: 今のタスクの中間状態は保存しない
   (それはタスク管理・計画メモに書く)
5. 人間の承認を得たか: 「これを保存しますか?」と確認してから書く

- 全部 Yes → 保存し、索引に 1 行足す
- 1 つでも No → 保存しない。明らかな違反の保存依頼は、理由を言って断る

効き方は単純で、AI の保存候補のほとんどは 1 か 2 で落ちます。「エラーが出たら原因を確認する」級の一般論と、一度きりの事象のメモが消えるだけで、メモリの増加はほぼ止まります。

CC BY 4.0 はここまで

読まなくなったもの

メモリの見直しです。散らかった知見メモを私が定期的に読み返して整理する作業は、メモが増えないので発生しません。全体像の把握は索引 1 枚で済みます。私の索引は 84 行——100 行以内に収める運用ですが、収める作業自体がほぼ発生しません。入口で増えないからです。

CC BY 4.0

注意: 三つの死角

一つ目。「保存しない」に倒しすぎて、本当に要る知見を落とす心配があります。ここは項目 2 の「繰り返してから」が線引きです。1 回目で保存されなかった教訓は消えますが、同じ場面が本当にまた来るなら、そのとき再び候補に上がります。取りこぼしは戻ってくる設計です。

二つ目。常駐させた 1 行を AI が守らず、チェックリストを読まないまま保存する日はあります。この記事は自分のセッションが増やさないところまでで、守られなかった保存を後から拾う網は別にあります。並列実行する複数のセッションや、チームの共有メモリで起きる問題(保存が方針に勝つ)と合わせて、第 7 回「共有メモリを整理しない技術」で扱います。

三つ目。索引そのものが、読まれる途中で切られることがあります。AI がファイルを読む道具には、一度に返せる量の上限があります。私の索引は 3 万字ほどで、あるとき AI が受け取ったのは先頭の 2KB だけでした。AI はそこに収まっていた行動ルールを「これで全部」と扱ったまま作業に入り、索引の後半にあった「着手前に計画書を全文読む」も、テストの回し方も、AI には届いていません。切られた先頭は、見た目には完結した文書です。上限の値は道具によりますが、上限がある以上、索引が育てばいつか必ず超えます。対処は 1 行目に置きます。切られるのは末尾なので、全文が何行あるか、切られない読み方は何かを 1 行目に書いておけば、切られたときにも残ります。索引 1 枚で全体像が追えるのは、その 1 枚を AI が読み切れているときだけです。

検証手順: 断られることを一度だけ確かめる

前提

  • この回のチェックリストを 1 枚置き、「メモリへ書く前にこのファイルを読む」の 1 行を指示ファイルに常駐させ終えていること
  • メモリの置き場(1 ディレクトリ)と索引(MEMORY.md など 1 枚)が決まっていること

所要時間: 5 分

手順

  1. AI に、わざとチェックリスト違反の保存を頼みます——「『テストは大事』という教訓をメモリに保存して」。⚠️ 一般論だと誰が読んでも分かる文にしてください。プロジェクト固有の語が 1 つでも混じると、AI が「価値あり」と判断する余地が生まれ、何を確かめたのか分からなくなります
  2. AI に、今度は通る側を頼みます。プロジェクト固有の制約を 1 つ保存させます(「この環境では X を直接実行しない。理由は Y」)

合格条件(すべて満たすこと)

  • 手順 1 で、AI が保存しない
  • 手順 1 で、AI がチェックリストのどの項目で落としたかを言う(「一般論なので項目 1 に当たりません」のような返し)
  • 手順 2 で、メモリの置き場に本文のファイルが 1 つ増える
  • 手順 2 で、索引にも 1 行増える

合格しなかったとき

  • 手順 1 で保存された —— 常駐させた 1 行が読まれていない(指示ファイルのどこに置いたかを疑う)か、項目 1 が一般論を弾く形になっていない(チェックリストの文言を見直す)かのどちらかです
  • 手順 2 で索引が増えない —— 書き込み口が、まだ 1 つに揃っていません

後始末

  • 手順 2 で保存させたファイルと索引の 1 行は、要らなければあなたが消します

断る側と通す側を一度ずつ。断られたことが一度もない運用は、チェックリストが読まれていない状態と同じ見え方をします。どちらも、保存が黙って通るからです。


CC BY 4.0 はここまで

次回は「単体テストを読まない技術」。AI が書いたテストを、私は 1 行も読んでいません。それでも、テストは正確に動いています。

連載「読まない技術」