AIのメモリーは当てにしない。全部GitHubに残す
シリーズ2本目。これは「便利機能を疑え」という話です。AIには会話をまたいで覚えている「メモリー」があります。便利です。でも、それを判断の根拠にした瞬間、事故が起きます。
事件簿
事件1: 惑星の高さが、メモリーと実際で違っていた

ゲームには「どの高さでどの惑星に到達するか」という数値テーブルがあります。ある日、AIがメモリーに残っていた値を前提に作業を始めました。ところがその値は数週間前の古いもので、実際のコードではとっくに調整済みでした。私が指摘するまで、AIは古い数字で計算を続けていました。
メモリーは「その時点の要約」であって、コードが変わっても勝手には追随しません。
事件2: 「あるはず」のフォルダが無かった
ポータルサイトの公開作業で、AIはメモリー上の「こういう構成になっている」という記述を信じて作業しました。実際のリポジトリを見ると構成は違っていて、結果として別の作業で作ったページを上書きしてしまいました。復旧はできましたが、確認していれば起きなかった事故です。
事件3: メモリーに書いてあることが、そもそも適当
これは日常的にあります。「〜は実装済み」「〜は未対応」といった記述が、確認すると逆だったりする。要約の過程でニュアンスが落ちたり、推測が事実のように書かれたりします。メモリーは「確認のきっかけ」にはなるけれど、「判断の根拠」にはならない。この線引きを、AIにも自分にも徹底させる必要がありました。
対策: 全部GitHubに残す
やったことは単純で、AIの記憶に頼らず、リポジトリに書く。それだけです。目指す状態は一つ。プロジェクトの現在地が、コードも、開いているIssue/PRも、ルールも、すべてGitHubを見れば最新で分かる。チャットの履歴やAIのメモリーは頼りにしない。
- ルール文書をリポジトリ直下に置き、AIは作業開始時に必ずそれを読む。「大きいファイルはIssue経由」「マージは人間の指示で」「変更箇所は3つまで」など、全部ここにある
- 作業の引き継ぎはIssueに残す。「ここまでやった、次はこれ」をAIにIssueのコメントとして書かせておけば、新しい会話でもAIはそこから拾える
- 判断の理由もコミットメッセージに残す。「なぜこの値にしたか」が後で読める
- バージョン番号を3箇所で一致させる。HTMLの表示、サービスワーカー、登録時のクエリ。これがズレていると、どれが本番かわからなくなる
こうしておくと、AIのアカウントが止まっても、別のAIに乗り換えても、経緯とデータは全部残ります。これは実際に安心感が違います。会話ログの中にしか情報がない状態は、思っている以上に脆い。
共有ルールの徹底
ルールを書いただけでは守られません。AIは会話が長くなると最初の指示を忘れます。だから、作業の区切りごとにルールを読み直させる運用にしました。具体的には:
- セッション開始時: ルール文書と最新のコミット、開いているIssue/PRを報告させる
- 実装前: 「実施指示(GO)を待つ。GOが出るまでコードを書かない」
- 報告時: 確認していないことは「未確認」と明記させる。「たぶん」を事実のように言わせない
- 間違いが見つかったら: その場でルール文書を直す。次回から同じミスをしないため
「未確認」ラベルは特に効きました。AIは自信ありげに話すので、確認済みと推測の区別が外から見えない。ラベルを強制すると、推測が推測として見えるようになります。
最初から知っていたら
- メモリーは便利だが、読んだら必ずコードで裏を取る
- ルールも経緯もGitHubに。会話の中にしかない情報を作らない
- 「未確認」を言わせる。言わないAIは信用しない