Claude Code の ~/.claude/CLAUDE.md に何を書くか、自分の経験則で埋めていないだろうか。僕はそうだった。

Anthropic は公式ドキュメントで、モデルが実際にやらかす症状と、それを打ち消す英文を「そのままプロンプトに貼れ」という形で配っている。勘で書くより、写すほうが精度が高い。

グローバルメモリは、全セッションに無条件で入る

Claude Code の指示ファイルは2階層ある。

  • ~/.claude/CLAUDE.md全プロジェクト・全セッションに読み込まれる(グローバル)
  • プロジェクト直下の CLAUDE.md … そのリポジトリでだけ読み込まれる

グローバル側に書いた行は、どのプロジェクトで何を頼んでも会話の先頭に入る。「毎回言っているのに毎回やられること」の置き場所は、ここ一択になる。

問題は、そこに何を書くか。

公式が「貼れる文言」を配っている

Anthropic の Claude Fable 5.1 プロンプティングガイドは、他のドキュメントと作りが違う。モデルが実際に起こす症状を先に列挙して、症状ごとに「この英文をプロンプトに貼れ」と書いてある。

症状公式の対処
文章が長く、密度が高いmannered prose(気取った文章)を定義して禁止する
作業が終わる前にターンが終わる/「進めますか?」と聞いてくる自律動作の宣言+最後の段落の自己点検
頼んでいない修正やテストがコミットされる変更とテストをタスクの範囲に留める指示
小さな修正でファイル全体が書き直される対象を絞った編集を優先する指示
検索せずに記憶で答える「名前を知っている」と「現状を知っている」は別だと伝える

どれもプロジェクト固有の話ではない。モデルの性質の話だ。だからグローバル側に置く価値がある。

1. 気取った文章を止める

公式が定義しているアンチパターンは、そのまま引用する価値がある。

Mannered prose substitutes metaphor and flourish for direct statement. Instead of “a parameter worth varying,” the mannered writer produces “a dial worth turning.” (…) The fix is to say what you mean. When a literal phrase is available, use it.

「調整する価値のあるパラメータ」と書けば済むところを「回す価値のあるダイヤル」と書く。言い回しが、中身を伝えるためではなく書き手を見せるために存在している状態のことだ。

短縮版も用意されている。Please remove all mannered prose. これだけでも効く。

2.「進めますか?」を止める

長い作業の途中でモデルが止まり、「これを適用しましょうか?」と聞いてくる。ユーザーは「続けて」と打つだけの係になる。

公式の対処は、冒頭の一文が要になっている。

You are operating autonomously. The user is not watching in real time and cannot answer questions mid-task…

ドキュメントには「ユーザーが見ていないことをモデルに伝える冒頭の文が、効果の多くを担っています。書かれているとおりに保持してください」と書いてある。要約して縮めると効かなくなる、という意味だ。

もう一つ、同じ節にある自己点検の指示が効く。ターンを終える前に最後の段落を見ろ。それが計画・分析・質問・次のステップの一覧・「〜します」という約束なら、今それをやれ。

3. 頼んでいない親切を止める

作業中に既存のバグや性能の問題を見つけても、その変更では直さない。要約にフォローアップとして報告するだけにする。テストは、タスクが求めているか、リポジトリが既に同種の変更でテストを持っている場合だけコミットする。

公式はこの指示について「依頼していない追加やコミットされるテストコードが大幅に減少し、タスクの成功率に測定可能な変化はありません」と書いている。減るのは余計な分だけで、仕事の達成率は落ちない。

4. 古い行を消すのが、半分

古い行が消え、新しい行が入るイメージ

ここが一番の見落としだと思う。

公式ドキュメントには、追加ではなく削除を指示している箇所がある。

以前の一部のモデルは作業中に熱心に更新を出していたため、「すべての発見事項は最終応答まで保留すること」のようなシステムプロンプトの行が書かれることがありました。何かを追加する前に、そのような行を削除してください

フォーマットについても同じことが書いてある。以前のモデルは箇条書きと太字を使いすぎたので、多くの人がそれを抑えるルールを書いた。今のモデルは逆に、見出しもリストも使わなさすぎる。抑制ルールが残っていると、足りないものをさらに削ることになる。

去年のモデルに向けて書いた行が、今のモデルでは逆向きに効く。メモリを育てているつもりで、モデルの改善を打ち消している状態がありうる。

増えた行数ではなく、消せた行数を見たほうがいい。

実際にやったこと

僕のグローバルメモリには、以前から2つのルールがあった。

  1. 自分が付けた短い呼び名を、定義なしで会話に出さない
  2. 変数名・関数名・ファイル名を日本語にしない

どちらも、AIが「実体を書かずに済ませる」失敗への対処として自分で書いたものだ。

今日、公式の mannered prose を3つ目として入れた。ただし足すだけだと、1つ目のルールにあった「比喩で呼ばない」と内容が重なる。重なったまま放置すると、片方が古くなったときに気づけない。

なので1つ目から「比喩で呼ばない」を削って、3つ目に寄せた。比喩の禁止が書いてある場所は、1箇所になった。

結果は28行から58行。増えた30行のほとんどは公式の引用文で、自分が書いた文はむしろ減っている。

適用範囲を書かないと事故る

1つ注意がある。mannered prose の禁止を全面適用すると、文章を書く仕事が壊れる

小説やSNS投稿で比喩や情景描写を使うのは、そこでは比喩が仕事をしているからだ。「手のひらが冷たく汗ばんでいた」を「緊張していた」に直したら、何も残らない。

なので範囲を明示した。

適用範囲は伝達のための散文 — チャット本文・説明・報告・レビュー・仕様・コミットメッセージ。小説・SNS で意図的に置く比喩と感覚描写は対象外。

禁止ルールは、効く範囲を書かないと、効いてほしくない場所まで効く。

まとめ

  • グローバルメモリは ~/.claude/CLAUDE.md。全プロジェクトの全セッションに無条件で入る
  • 何を書くかは、自分の勘より公式ドキュメントのほうが精度が高い。症状→対処の形で並んでいる
  • 追加より先に、古いモデル向けに書いた抑制ルールを消す
  • 同じ内容が2箇所に書いてある状態を作らない。片方が腐る
  • 禁止には適用範囲を書く

読んだだけでは何も変わらない。自分の CLAUDE.md を開いて、去年書いた行を1つ消すところからでいい。


出典: Claude Fable 5.1 のプロンプティング(Anthropic 公式ドキュメント)