メモリとコンテキストの実戦ガイド
Claude Code のメモリ:CLAUDE.md、/init、# ショートカット
CLAUDE.md は Claude Code がコードに触れる前に必ず読むファイルです。その一生をスクリーンショット順に追います。/init で生成し、1 行を手で足して新ファイルの置き場所を決め、セッション中に # で新しいルールを正しいメモリへ書き込みます。

全 16 ステップの図解ウォークスルーで、読了約 6 分。各ステップはソース動画の対応する瞬間へリンクしています。
TL;DR
Claude Code をプロジェクトで初めて使うときに /init を実行します。リポジトリを一覧し、package.json、tsconfig、README を読み、プロジェクト直下へ構造化された CLAUDE.md を書き、保存前に確認を求めます。以降このファイルは毎回のセッションにコンテキストとして同梱されるので、Claude はスクリプトもスタックもディレクトリ配置も知っている状態になります。ルールを追加するのは、チャットを出てから文中を # で始めるだけ。Claude は project メモリ(./CLAUDE.md)、project memory (local)(./CLAUDE.local.md)、user メモリ(~/.claude/CLAUDE.md)のどれに入れるか聞いてきます。/memory を使えば 3 つのいずれもエディタで開けます。動画が繰り返し強調する点はひとつ。見返さなくなったメモリファイルは、必ず Claude に嘘をつき始めます。
ソース動画について
このページは Net Ninja の Claude Code コース第 2 課に沿って、CLAUDE.md の操作を 1 手順ずつ再現しています。
スクリーンショットは制作者へクレジット付きで動画のフレームを使用しています。本文は独自執筆です。手順は 2026 年 9 月に動画と照合済みです。
/init で CLAUDE.md を生成する
1 コマンドでリポジトリ全体を読み、プロジェクト直下に 1 ファイルを残します。
- 1
プロジェクト直下で /init を実行
package.json があるフォルダで Claude Code を開き、/init と入力します。補完行は仕事を明確に書いています — “Initialize a new CLAUDE.md file with codebase documentation”。ウェルカムパネルのヒント 1 番も同じ内容です。機能の依頼をする前に実行してください。動画の立場は、/init は Claude Code がプロジェクトへ着いた直後にやることで、後回しにして取り返すものではない、というものです。

/init はウェルカム画面のヒント一覧そのままの位置にあります。0:40 から視聴 - 2
リポジトリを 1 項目ずつ読む様子を見る
Claude は自分に To-do を作らせ、上から処理します。リポジトリ構造の把握と主要ファイルの特定、package.json とビルド設定の分析、ソース構成の調査、既存ドキュメントの確認、そして CLAUDE.md の作成。その下には実ツールコールが流れていきます — プロジェクトフォルダの List()、Read(package.json)、Search(pattern: “README*”)、Read(tsconfig.json) — 終わった項目からチェックボックスに取り消し線が入ります。長い作業ですが、進捗一覧のおかげで読める状態になっています。

5 つの計画のうち、1 つはすでに消し込み済み。1:28 から視聴 - 3
書き込む前に承認を求められる
スキャンが終わると Claude は下書きを見せ、“Do you want to create this CLAUDE.md?” と 3 択を提示します。Yes、“Yes, and don't ask again this session”、“No, and tell Claude what to do differently”。3 番目は真剣に使う価値があります。ワークフロー全体でいちばん安く方向を直せる瞬間で、「スタイリング節は省略してデータ層に力を入れて」と言えます。Yes を選ぶと、CLAUDE.md は未追跡の新ファイルとしてルートに現れます。

いずれかを選ぶまで、ディスクは何も変わりません。1:52 から視聴
/init が実際に書いた内容
生成ファイルは、Claude が自分の言葉で書いたコードベースの要約です。コマンド、スタック、フォルダ構成、そして推測した慣習まで。
- 4
冒頭は目的、その次にコマンド
1 行目はこのファイルの役目を宣言しています — “This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository”。その直後が実用部分です。Development Commands には package.json から拾ったスクリプトが並びます。Turbopack 付きの npm run dev、build、start、lint、test、test:ui。Claude が存在しないコマンドを発明するのを止めてくれるのがこの節で、/init 直後にまず目を通すべき場所でもあります。

スクリプト名は初回から正しい。3:25 から視聴 - 5
アーキテクチャ、スタック、フォルダツリー
Architecture Overview はプロジェクトを 1 文で捉えます。App Router パターンに従う Next.js 15 のブログアプリ、と。Key Technologies は各採用理由つきで並びます。App Router と Turbopack を使った Next.js 15、TypeScript 付き React 19、CSS 変数でテーマを持つ Tailwind CSS v4、JSDOM 環境の Vitest、サニタイズ用の DOMPurify、ヘッドレス CMS への GraphQL。続く Project Structure は src を ASCII ツリーで描き、ほぼ全行にコメントが付いています。

Claude がいちばん頼りにするのはこのフォルダ図です。2:26 から視聴 - 6
推測を止める節たち
Styling System はテーマ実装を記録し、Testing Setup は Vitest 設定と setup ファイルを名指しし、Development Notes は一歩間違えるとやり直しになる細部を集めます。src インポート用の @/* パスエイリアス、ルート要素の CSS クラスで持つダークモード、CMS コンテンツに必須のサニタイズ。特殊な情報は何もありません。Claude が毎回やり直す — もしくは毎回間違える — 情報を、一度で済ませているだけです。

パスエイリアスとセキュリティ上の注意を、1 回で書き切る。2:48 から視聴
編集すれば、Claude はそれに従う
CLAUDE.md はごく普通の Markdown ファイル。手で打った 1 行も、/init が推測して書いた内容も重みは同じです。
- 7
/init が目撃していないフォルダを足す
生成されたツリーに hooks の項目はないので、Claude には置き場所が見えません。Project Structure までスクロールし、自分で 1 行書きます。hooks/ にコメント “Reusable hooks” を添えて、保存する。これが CLAUDE.md を普通のファイルとして扱う理由そのものです。手で打った行も /init の推測と同じ権威を持ち、まだコードに存在しない慣習をプロジェクトへ教える唯一の手段になります。

追記した 1 行、カーソルはそこに残り、タブには未保存の点。4:38 から視聴 - 8
hook を頼むが、置き場所は言わない
セッションをクリアし、こう頼みます。“Can you create a hook to store the user's theme pref in, when they toggle the theme on the site? Store the value in local storage for next time. Don't use the hook anywhere yet!” 最後の 1 文はそれ自体で真似る価値があります。動画は、Claude Code が作った hook・コンポーネント・ユーティリティをどこかに繋ぎ込みたがる癖に触れています。ファイルだけ欲しければ、そう言うべきです。フォルダのほうこそ、今回のテストの本命です。

プロンプトのどこにもパスは出てきません。5:36 から視聴 - 9
Claude はメモリに書いた場所へしまう
計画は “Now I'll create the useTheme hook in the hooks directory” と返り、ツールコールは Write(src/hooks/useTheme.ts)、その上で承認ダイアログ “Do you want to make this edit to useTheme.ts?” が新規ファイルの diff とともに開きます。承認すると、hooks フォルダと useTheme.ts の両方エクスプローラに現れます。プロンプトは場所を一言も言っていません。仕事をしたのは CLAUDE.md に足した 1 行です。

src/hooks/useTheme.ts。1 時間前には存在しなかったフォルダへ。6:10 から視聴
# ショートカットでルールを保存する
Claude が同じ前提を 2 回繰り返したのに気づいた瞬間、訂正を # から始めればそれがメモリになります。
- 10
ルールを # から打てばメモリになる
セッションの途中で、繰り返し伝えている慣習を井号付きで送ります。“when making new page components, always add a link to that page in the header”。入力と同時に入力欄の下に “# to memorize” の表示が出ます。井号を付けると、その発言は依頼ではなくメモリになります。なぜそのルールが必要か覚えているうちに拾える、最速の方法です。

ヒントは打ち終わる前に出ています。6:44 から視聴 - 11
どのメモリファイルに入れるか選ぶ
Enter を押すと Claude は “Where should this memory be saved?” と 3 択を聞きます。Project memory は ./CLAUDE.md にチェックイン、Project memory (local) は .gitignore 済みの ./CLAUDE.local.md、User memory は ~/.claude/CLAUDE.md。区分はテーマではなく閲覧者です。プロジェクトメモリはバージョン管理されるので、リポジトリに関わる全員に正しいことを書きます。フォルダ構成、命名、フレームワーク、テスト。User メモリは自分のマシンで全プロジェクトに効くファイル。個人用ツールやコードスタイルです。local がいちばん扱いに困るやつで、次の公式テーブルが理由を説明してくれます。

1 つの文に対する行き先は 3 つ。7:20 から視聴 - 12
書き込み後、その旨も知らせてくれる
Project memory を選ぶと、セッションはルールをそのまま返し、下に “Got it.” の 1 語だけ添えます。続けて Claude Code は、初心者へ渡しておきたいヒントを出します。“Want Claude to remember something? Hit # to add preferences, tools, and instructions to Claude's memory.” 文はすでに開いているあの CLAUDE.md の末尾に追記されるので、不安なメモリがあれば /memory 1 回で確認できます。

“Got it.” と、# の役割を教える組み込みリマインダー。9:12 から視聴
3 つのメモリファイルと開き方
書き込み先は、そのメモを誰が読むかを決定します。チームか、このリポジトリだけか、自分のマシン全プロジェクトか。
- 13
次のタスクの計画にメモリが戻る
まったく別の用件を出します。“Can you add a new /about page with only an h2 title and a single line of lorem as content”。すると Claude は “I'll create a new /about page and add a link to it in the header as per your memory instruction.” と返します。To-do には誰も頼っていない 2 項目目が加わっています。Add about page link to header navigation。これがメモリの実働です。コンテキストとして読まれるので、言い直さなくても計画を変えます。

To-do は 2 つ。うち 1 つは CLAUDE.md 由来。9:20 から視聴 - 14
ブラウザで結果を確認する
開発サーバーを起動し、localhost:3000/about を開きます。ページは h2 と lorem 1 行だけ。ヘッダーは Blog、Preview、About の 3 項目で、最後の About がメモリに従って追加されたリンクです。残り 2 つにも注目してください。動画はこれを、依頼範囲を超えて手を出す Claude Code の癖として挙げています。直し方も同じ # ショートカットで、「名指ししたファイル以外は触るな」と書けばいい。こうした形のルールも CLAUDE.md に置くべきものです。

About リンクは付いています。頼っていない 2 つも付いています。10:12 から視聴 - 15
公式ドキュメントが local ファイルについて言うこと
docs.anthropic.com の memory management ページは全体像を表にしています。IT が管理するエンタープライズポリシー、ソース管理で共有されるプロジェクトメモリ ./CLAUDE.md、全プロジェクトで自分だけに向くユーザーメモリ ~/.claude/CLAUDE.md、そして ./CLAUDE.local.md — 最後は “(Deprecated, see below)” 表記です。動画も同じ点を指摘しています。local メモリは廃止方向で、代わりにプロジェクトレベルのメモリから未追跡ファイルをインポートします。録画時点では # メニューにまだ残っているので、推奨ではなく互換項目として扱うのが正確です。

ターミナルのメニューは、この表を要約したものです。10:40 から視聴 - 16
/memory で任意のメモリファイルを開く
/memory と打つと、Claude がアクセスできるものを列挙します。“Memory Files: project: CLAUDE.md”、ドキュメントへのリンク、続いて “Select memory to edit”。先ほどと同じ 3 作用域に、./CLAUDE.md に今何件のメモリがあるかの件数表示が付きます。選べばエディタで開きます。組み込みのエディタが気に入らなければ、ターミナルが $EDITOR か $VISUAL を設定するよう案内します。これが維持の循環です。/memory、溜まったものを読む、古くなったものを消す。

/memory。このプロジェクトのメモリ件数も出ています。11:24 から視聴