Claude codeのメモリー調整

解決したい問題

Claude Codeで開発を進めていく中で、プロジェクト特有のコンテキストや規約が肥大化・複雑化してきたため、一度立ち止まって設定と構造を見直すことにしました

1. 設計の重要なところが会話に載っていない

  • 症状: 過去の設計判断や docs の内容を踏まえずに提案 / 説明する
  • 発端: docs/features/{feature}/design.md と docs/principles/ を task 開始時に読んでいない
  • 根拠: task_routing.md に 「タスク種別ごとに必読 md」 が既に整理されているが、 私が守っていない
  • 波及: 設計書の語彙 / 概念と提案の語彙が乖離するので、 説明が浮く

2. 説明・計画の日本語が難しい

  • 症状: ジャーゴンの羅列、 blog 風の短文、 「わかって当然」 の書き方
  • 発端: 「短く」「技術用語で」「blog 調 NG」 の feedback rule が同時に効いて、 読者への橋渡しが削られている
  • 波及: 新人 / 来週の自分が読めない、 issue や plan が判断材料として機能しない
  • 補足: 実は問題 1 と繋がっている。 設計書を読まないから語彙が揃わず、 前提を渡せず、 blog 的短文で誤魔化す

3. memory ディレクトリの肥大

  • 症状: 89 file (feedback 77 / project 7)、 index 21KB
  • 発端: 同テーマの feedback が分裂して積み上がる、 陳腐化した rule が消えない
  • 波及: rule 同士が矛盾しても気付きにくい、 検索性が下がる

Claude設定ファイルの理解

Claudeのカスタマイズファイルは、「自動で読み込まれるか(常時有効)」「呼び出し時に読まれるか(遅延読み込み)」というタイミングと、「チーム共有か」「個人専用か」のスコープで整理すると非常にすっきり理解できます。

1. 自動読み込みファイル(セッション開始時に常時適用)

セッション開始時に自動的にシステムプロンプトへ組み込まれる、規約や前提知識のためのファイルです。

ファイル名配置場所共有範囲用途・キャラクター
CLAUDE.md<repo>/CLAUDE.mdチーム共有(Commit)プロジェクトの基本規約、アーキテクチャ、命名規則など。
CLAUDE.md (入れ子)<repo>/{subdir}/CLAUDE.mdチーム共有(Commit)サブディレクトリでの作業時、その親階層までの規約も追加で自動読み込み。
CLAUDE.md (user)~/.claude/CLAUDE.md個人グローバル全プロジェクトで共通して適用したい、自分専用の個人指示。
rules/*.md.claude/rules/*.md
(project または user)
配置によるCLAUDE.md と同格の追加規約。本体ファイルを汚さずカテゴリごとに分割したい時に便利。
MEMORY.md~/.claude/projects/<slug>/memory/MEMORY.md個人(Commit外)オートメモリのインデックス。 リンクされた個別メンバファイルも文脈に応じて自動でReadされる。

2. 遅延読み込みファイル(必要なタイミングで呼び出し)

最初からすべてを読み込むのではなく、ユーザーの入力や必要性に応じて動的に読み込まれるファイルです。

ファイル名 / ディレクトリ配置場所共有範囲読み込みのトリガー・用途
commands/*.md.claude/commands/
(project または user)
配置によるカスタムスラッシュコマンド。 ユーザーが /foo のようにコマンドを打った瞬間に読み込まれる。
agents/*.md.claude/agents/
(project または user)
配置によるカスタムサブエージェント定義。 Agent tool が呼び出された際に読み込まれる。
skills/<name>/SKILL.md.claude/skills/
(project または user)
配置によるカスタムスキル定義。 Skill tool が機能(invoke)した際に読み込まれる。
memory の個別 *.md~/.claude/projects/<slug>/memory/*.md個人(Commit外)上述の MEMORY.md を経由して、Claudeが関連性があると判定した際に Read tool で自動で開く。

3. 環境・挙動設定ファイル

Claudeの挙動そのものや、実行権限などをシステム側に解釈させるための設定ファイルです。

ファイル名配置場所共有範囲用途・設定内容
settings.json.claude/settings.json
(project または user)
配置による
(project側はCommit)
権限(permissions)、フック(hooks)、環境変数(env)、使用モデル(model)の制御。
settings.local.json.claude/settings.local.json
(project内)
個人(gitignore)プロジェクト共通設定(settings.json)を、開発者個人の環境で上書き(override)したい時(APIキー許可など)。
keybindings.json~/.claude/keybindings.json個人グローバルキーバインド設定(ユーザー専用)。

優先順位

  • 同じキーがぶつかった時: project local > project shared > user global
  • rules / agents / commands / skills / memory は “重ねて” 読まれるので、 上書きではなく併存

運用の勘所

  • CLAUDE.md はチーム共有、 変更に議論を伴う → 規約級
  • .claude/rules/ は CLAUDE.md を短く保ちたい時の分割先 → 規約級
  • MEMORY.md は Claudeが会話から蓄積するメモ、 user 個人スコープ → 個人 note 級

方針

  • 今回の問題 (「設計を読まない」) は CLAUDE.md か .claude/rules/task-start.md に書けば全員 (将来の共同開発者含む) に効くし、 個人だけで済ませたければ ~/.claude/CLAUDE.md
  • に書く選択もある。

ルール見直し:設計を読ませる, 文章の難しさの解消

  • CLAUDE.md の整理
  • .claude/rules/task-start.md の整備
  • .claude/rules/writing-style.md の整備

memory整理:memoryディレクトリの肥大化の解消

  • MEMORY.mdの整理
  • memory/*.mdの整理

バックアップ

作業前にgitで管理してないファイルのバックアップを取る

  cp -R ~/.claude/projects/{project}/memory \
        ~/.claude/projects/{project}/memory.backup-$(date +%Y%m%d-%H%M)

実行

  • .claude/rules/coding-style.md 整備
  • .claude/rules/writing-style.md 整備
  • .claude/rules/task-start.md 整備
  • memoryファイルの一部をwriting-style rule に統合し、削除
  • memoryファイルの一部をcoding-style rule に統合、削除
  • memoryファイルの一部をマージ(plan用、issue用、test用、)

関連記事

カテゴリー

アーカイブ

Lang »