今の CLAUDE.md は77行。行数自体は悪くないけど、「会話の後半で忘れられる」問題が構造的に起きている。
たとえば「設定ファイルを変えたら yadm(設定ファイルをGitで管理するツール)で commit → push すること」というルール。これは作業の最後に必要なルールなのに、CLAUDE.md に書いてあるだけだとセッションの終盤で忘れられやすい。
原因は、CLAUDE.md がシステムプロンプト(AIの根本的な性格設定)ではなく、ユーザーメッセージ(会話の最初の1通目)として注入されること。会話が長くなるほど「最初の1通目」は遠い記憶になり、影響力が薄れる。
放置すると、セッション後半で重要なルールが無視される現象が繰り返される。前回の最適化(v1、2/27)で122行→77行に減らしたのは正しかったけど、「何行あるか」より「どこに置くか」が本質だった。
CLAUDE.md の77行を「いつ必要か」で3つに仕分ける。
| 置き場所 | 注入タイミング | 影響力 | 向いている内容 |
|---|---|---|---|
CLAUDE.md |
セッション開始時(1回) | 会話が長くなると薄れる | プロジェクトの全体像、ワークフロー |
.claude/rules/ |
対象ファイルを初めて触った時 | 作業中に注入されるので強い | コーディングルール、設定変更手順 |
--append-system-prompt |
常時(システムプロンプト) | 最も強い(減衰しない) | 絶対に忘れてほしくない行動規範 |
.claude/rules/ のポイントは、ファイルパスの条件をつけられること。「.ts ファイルを編集するときだけ」「package.json を触るときだけ」のように、必要なタイミングで必要なルールだけ注入される。しかも CLAUDE.md より「新しいメッセージ」として届くので、影響力が強い。
「セッション開始時に知っておくべき情報」だけを残す。
AskUserQuestion で質問」「調査してから自作」「t-wada の性格を憑依」「recall search の使い方」「回答1行目は意味のあるテキスト」など。これらは全タスクに共通する行動指針なのでCLAUDE.mdに残す。plan-viewer の場所、Second-Brain のパス。Claude が最初に作業環境を理解するために必要。/compact のルール(Obsidian 書き出し→compact の順序)。セッション全体の管理方針。.claude/rules/ に移す(4-5ファイル)「特定のファイルを触るときに必要なルール」を移動する。ファイルを触ったタイミングで自動注入されるので、セッション後半でも忘れられない。
as)は設計で回避」「後方互換性は不要」。.ts / .tsx / .js ファイルを触った時だけ注入。.json / .jsonc / tsconfig* を触った時だけ注入。rules/dependency-eval.md に移す案だったが、フィードバックにより変更。ライブラリを採用するかどうかの判断は package.json を編集する前のプランニング段階で必要。rules/ だと「ファイルを触った時」にしか注入されないので手遅れになる。CLAUDE.md に残して、調査フェーズで常に意識できるようにする。yadm add → commit → push」「ADR(設計判断の記録)は ~/.claude/docs/adr-*.md に蓄積」。Claude Code の設定ファイルを触った時だけ注入。Claude がデフォルトで既にやっていること、またはスキルの description(説明文)で自動トリガーされるもの。消しても品質は変わらない。
tsc → リンター → テスト)と重複。※ YAGNI / KISS はフィードバックにより残すことに決定。Claude のデフォルト行動ではあるが、ユーザーが「特に強調したい」意思表示として機能している。
| BEFORE | AFTER | |
|---|---|---|
| CLAUDE.md 行数 | 77行 | 約50行 |
| コーディングルールの影響力 | セッション後半で減衰 | ファイル編集時に都度注入(減衰しない) |
| 毎セッションの読み込み量 | 全77行(不要なルール含む) | 45行 + 必要な rules のみ |
| yadm push 忘れ | 起きうる | 設定ファイル編集時に自動リマインド |
判断基準は「消したら Claude がミスするか?」 — 公式ドキュメントが推奨するゴールデンルール。No なら消す。今回の削除候補は全てこの基準でテスト済み。
Anthropic 公式 + Zenn 記事 + X の話題を統合した結論。 CLAUDE.md の行数を減らすだけでなく、「ルールが必要なタイミングで届く」仕組みにすることが本質。
リポジトリ作成時のルール(frontend-design で LP 作成、README は最小限)は今回見送り。 .claude/rules/ は paths 条件でファイル単位のトリガーができるけど、「リポジトリ作成時」はファイルパスで条件指定しにくい。スキル化(/new-repo のようなコマンド)のほうが適切。
ソース: Zenn: CLAUDE.md に何を書くべきか / Anthropic 公式 Best Practices / HumanLayer: Writing a good CLAUDE.md / Builder.io: CLAUDE.md Guide