Session 02 — 2026-05-07

Claudeを信頼できるパートナーにする

対象: BS本部プロパ(BSG・ISG・BPM-SG)| 47名

Claudeが「何を見ているか」を理解した上で、CLAUDE.md と Skills を自分のプロジェクトに設定できる。

今日の時間割

時刻
パート
内容
主役
18:00–18:10
0
アイスブレイク&前回トラブルの対処法共有
みなさん / 講師
18:10–18:20
Part 1
Claudeは何を見ているのか
講師
18:20–19:00
Part 2
コンテキストを与える方法 — CLAUDE.md と Skills
講師→みなさん
19:00–19:20
Part 3
その他の機能(sub-agent / hooks / rules)+ハンズオン③
講師→みなさん
19:20–19:30
クロージング+アンケート記入
全員
INTRO0

アイスブレイク

5分

2週間ぶりです。前回作ったサイトをグループ内で見せ合ってください。

  • どんなサイトを作りましたか?
  • どんな指示を出しましたか?うまくいった/詰まった場面は?

前回のトラブルと対処法

5分

前回、「Claudeに質問を投げた後に回答が返ってこない」というトラブルが何件か発生しました。原因と対処法をお伝えします。

§0.1原因① コンテキストの肥大化

Claude Code は会話が長くなるにつれて、セッション内に蓄積される情報(コンテキスト)が増えていきます。これが限界に近づくと、回答が極端に遅くなったり、止まったりします

対処法
Claude Code のプロンプト入力欄に以下のスラッシュコマンドを入力して Enter
/compact

会話履歴をその場で要約・圧縮します(セッションは継続されます)。
現在のコンテキスト使用状況は /context で確認できます。使用率がおおむね 70〜80% を超えてきたら /compact をかけるタイミングの目安です。

コマンドセッションへの影響
/clear セッションを終了し、新しいセッションを開始する(履歴はリセット)
/compact 同一セッションを継続しながら、会話履歴をサマリーに圧縮する

/compact はセッションを終わらせるわけではありません。重くなったコンテキストを軽くする操作です。

§0.2原因② VS Code 拡張機能の負荷

VS Code に多くの拡張機能を入れていると、バックグラウンド処理が重くなり Claude Code の動作に影響することがあります。

対処法:ターミナルから Claude Code を直接起動する
VS Code 拡張経由ではなく、ターミナルから起動すると拡張機能の影響を受けません。
# プロジェクトのディレクトリに移動して
cd your-project

# Claude Code を起動
claude

VS Code 内蔵のターミナル(メニューバー: 表示 → ターミナル)でも、PowerShell / コマンドプロンプト単体からでも使えます。

PART1

Claudeは何を見ているのか

10分

このパートのゴール:「コンテキスト」という概念を理解し、Claude Code のコンテキストには何が入っているのかを把握する。 具体的な道具(CLAUDE.md・Skills 等)の話は Part 2 以降で扱います。

§1.1セッションとは

セッション = claude を起動してから、/clear するか終了するまでの一続きの会話の単位です。セッションをまたぐと、会話の履歴は引き継がれません。代わりに、CLAUDE.md と auto memory が毎セッション自動で読み込まれることで、前回の文脈を再現します。

出典: Explore the context window | Commands

§1.2コンテキストとは

Claude Code は そのセッションで「見えている情報」だけを頼りに動きます。この「見えている範囲」を コンテキスト と呼びます。コンテキストの中身を理解することが、Claude を思い通りに動かすための第一歩です。

出典: Explore the context window | How Claude remembers your project

§1.3Claudeがセッション開始時に読んでいるもの

最初のプロンプトを送信する前に自動で読み込まれるもの
(公式の Context window 図に準拠)
システムプロンプト ← Claude Code 自体のルール
auto memory(MEMORY.md) ← Claudeが前回セッションで自分でメモしたもの
環境情報 ← OS・シェル・作業ディレクトリ・Gitリポジトリの状態
MCP ツール名 ← 接続中の外部ツールの一覧
Skills の説明文 ← 使えるスキルの一覧
CLAUDE.md ← あなたが書いたプロジェクトのルール・文脈・制約

公式ドキュメントの表現では "Before you type anything"(何かを入力する前)。Claude Code のプロセスを起動しただけではまだ読み込まれておらず、最初のリクエストを処理する直前にまとめて読み込まれます。2回目以降のプロンプトでは再読み込みされません(セッション中は固定)。

これらはすべてユーザーには非表示でバックグラウンドで読み込まれます。

公式の Context window 可視化(Explore the context window)で実際の読み込み順序を確認できます。各項目がそれぞれどういう道具なのかは Part 2・Part 3 で扱います。今は「こういうものが起動時に読まれているんだな」と把握できれば OK。

§1.4セッション中に増えていくもの

  • あなたが送った プロンプト(会話の履歴)
  • Claude が 読んだファイル の中身(Read ツール経由)
  • Claude が 実行したコマンド とその出力
  • パスにマッチして遅延読み込みされた .claude/rules/ のルール
  • 発火した hooks の出力
  • 呼び出された Skill の中身

§1.5見えて「いない」もの

  • Claude が明示的に読んでいないファイル(PCの中身を「全部知っている」わけではない)
  • 社内ポータル・チケット・Slack などの外部情報(MCP連携がない限り)
  • 過去の別セッションの会話(auto memory に書き残した分を除く)
ポイント:見せたものしか知らない — これがコンテキスト設計の出発点です。このコンテキストに「必要なものを過不足なく」渡すための道具を、Part 2 から見ていきます。
PART2

コンテキストを与える方法 — CLAUDE.md と Skills

40分
イメージで掴むと
Claude Code の概念チーム運営に例えると
セッション チームメンバー(その都度、別人)
セッションを起動する 新人のチームメンバーを雇う
CLAUDE.md 新人に渡すプロジェクトの引継書(参画時に読んでもらう)
Skill 必要なときだけ参照するマニュアル(書庫に置いてある)

今日のテーマは、この引継書マニュアルをどう書くか、です。

§2.1CLAUDE.md とは

セッション開始時に毎回自動で読み込まれるファイル。新人がプロジェクト参画時に読む引継書に当たります。プロジェクトの文脈・ルール・制約をここに書いておけば、セッションが切り替わっても同じ前提で仕事を始められます。

心を持ったAIのイラスト
引継書を渡して、信頼できるパートナーに育てる

§2.2CLAUDE.md に何を書くか

出典: What to put in CLAUDE.md | Best practices

書くべきもの(公式推奨)
  • Bash コマンド — ビルド・テスト・起動コマンド
  • コードスタイル — インデント幅、命名規則など
  • テスト方法 — テストランナーと実行方法
  • リポジトリ作法 — ブランチ命名規則、PR の慣習
  • アーキテクチャ上の決定
  • 環境設定の癖 — 環境変数、特殊な前提条件
  • よくある落とし穴
  • (+実用的に)プロジェクト概要・技術スタック
書かなくていいもの(公式が明示)
  • Claude がコードを読めば分かること
  • その言語の標準的な慣習
  • 詳細な API ドキュメント(URLリンクで十分)
  • 頻繁に変わる情報
  • 「きれいなコードを書く」のような自明な指示
  • ファイルごとの詳細な説明

§2.3実例:このワークショップで実際に使っている設定

このワークショップ自体の運営を、Claude Code を使って AI 駆動で回しています。その設定を実例として見てもらいます。

CLAUDE.md(プロジェクト直下)に書いている内容
  • プロジェクト概要・チーム構成・ディレクトリ構成を記載
  • 個人情報の取り扱いルール(コミット可/不可の基準)
  • 対外文章のスタイルガイド(「AIっぽい文章を避ける」という指針)

§2.4ハンズオン用プロジェクトの準備

ハンズオン用に、タスク管理アプリ(純粋な HTML / CSS / JavaScript、ビルド不要)の小さなプロジェクトを公開リポジトリで配布しています。

配布リポジトリ
https://github.com/Tsubasa-Kikuchi98/claude-code-workshop-handson

このリポジトリには ハンズオンごとの出発点となるブランチ が用意されています。各ハンズオン冒頭で git checkout するだけで資材一式が揃った状態になります。ブランチを使うため、ZIP ダウンロードではなく git clone での取得を推奨します。

ブランチ用途
main 初期状態(CLAUDE.md・Skill・hook なし)
handson-01-claudemd ハンズオン①の出発点(CLAUDE.md.sample 同梱)
handson-02-skill ハンズオン②の出発点(CLAUDE.md + PR説明文 Skill 一式)
handson-03-hook ハンズオン③の出発点(CLAUDE.md + hook 設定済み .claude/settings.json
VS Code で開く手順
1
クローン
任意のフォルダー(例:Documents 配下)でターミナルを開き、git clone https://github.com/Tsubasa-Kikuchi98/claude-code-workshop-handson.git を実行。VS Code 内ターミナル(Ctrl+@)でも構いません。
2
フォルダーを開く
VS Code で ファイル → フォルダーを開く から claude-code-workshop-handson フォルダーを開きます。
3
動作確認
index.html をエクスプローラーで右クリック → Reveal in File Explorer → エクスプローラー上でダブルクリックするとブラウザで動作確認できます(ビルド不要)。
4
Claude Code を起動
プロジェクトのフォルダーで Claude Code 拡張機能を起動します(コマンドパレット Ctrl+Shift+P → 「Claude」で検索)。

以後 「ハンズオンプロジェクトの直下」 と書いたら、index.html と同じ階層を指します。既に ZIP でダウンロードしてしまった方は、今からでも git clone し直してください。ハンズオン②③でブランチが必要になります。

§2.5ハンズオン①:CLAUDE.md を書いてみる(12分)

題材
「タスクに『お気に入り(ピン留め)』ボタンを追加する」
このプロジェクトには .btn-icon というアイコンボタンのスタイル、js/ 配下に機能ごとに分かれた JS ファイル、storage.js 経由の localStorage 永続化など、いくつかの暗黙ルールがあります。CLAUDE.md があるとないとで、Claude がそのルールに沿うかどうかが変わります。

Step 1:CLAUDE.md なしで試す(main ブランチ)

まず、CLAUDE.md を作らずに Claude Code に指示を出してみます。VS Code 内ターミナル(Ctrl+@)で、main ブランチにいることを確認してください。

git branch

* main と表示されていれば OK です。別のブランチにいる場合は以下を実行してください。

git checkout main

直前にこのプロジェクトで何か Claude Code を触っていた場合、そのコンテキストが残ったままだと Step 3 との比較が揺れてしまいます。まずプロンプト入力欄に以下を入力して Enter してください。

/clear

新しいセッションが立ち上がったら、以下の指示を出します。

タスク一覧の各タスクに、「お気に入り(ピン留め)」ボタンを追加してください

Claude は何の前提も知らない状態で実装します。どこに JS を書いたか/どの CSS クラスを使ったか/永続化の方法は? — 観察してみてください。

Step 2:ハンズオン①用ブランチに切り替える

git restore .
git clean -fd        # Step 1 で Claude が入れた変更を全部破棄
git checkout handson-01-claudemd      # ハンズオン①用ブランチへ切替

git clean -fd は untracked なファイルやフォルダー(Claude が新しく作った js/favorite.js など)も含めて消します。Step 3 で同じ依頼を出すので、ここで全部リセットして問題ありません。

切り替えると、プロジェクト直下に CLAUDE.md というファイルが現れます。これは事前に用意した「正解の CLAUDE.md」です。中身に書かれているのは以下のような項目です:

  • ディレクトリ構成と各ファイルの役割
  • アイコンボタンは .btn-icon を使う
  • 新しい機能は js/<feature>.js として独立ファイルにする
  • 状態の永続化は storage.js 経由(localStorage を直接呼ばない)
  • 色は CSS 変数を使う/コメントは日本語/関数は function 宣言
  • 外部ライブラリ・ビルドツールを追加しない

今日は完成版を配りますが、実務では /init で雛形を作って加筆するのが基本フローです(Step 4 で体験します)。

Step 3:同じ指示を出してみる

CLAUDE.md は セッション開始時にだけ自動で読み込まれます。Step 1 のセッションを継続したまま指示を出しても、せっかく置いた CLAUDE.md は読まれません。新しいセッションを立ち上げてから指示を出します。

/clear

新しいセッションが立ち上がったら、Step 1 と同じ指示を出します。

タスク一覧の各タスクに、「お気に入り(ピン留め)」ボタンを追加してください

何が変わりましたか?

  • 既存の .btn-icon クラスに揃ったか?
  • js/ 配下に新しいファイル(例:js/favorite.js)を切り出したか、既存ファイルに混ぜ込んだか?
  • localStorage への保存は storage.js 経由になっているか?
  • 余計なライブラリを入れずに済んだか?

Step 4:/init で自動生成も試してみる

出典: Commands - /init

実務では「最初から完成版の CLAUDE.md がある」ことは稀です。普段は /init で雛形を作って、自分で加筆していくのが基本フロー。最後にこれも体験しておきます。

Step 2 で作った CLAUDE.md を、いったんよけておきます。VS Code エクスプローラーで CLAUDE.md を右クリック → 名前の変更CLAUDE.md.sample に変更してください(あるいは Claude Code に「CLAUDE.md を CLAUDE.md.sample にリネームして」と依頼しても OK)。その上で Claude Code に /init を実行:

/init

Claude がプロジェクトのコードを解析して、CLAUDE.md の雛形を自動生成します。

観察・比較ポイント
  • 自動生成された CLAUDE.md には、何が書かれていましたか?
  • Step 2 で配置した CLAUDE.md.sample と比べて、書かれていない項目は?
  • → 自動生成はあくまで出発点。「コードから読み取れない方針」は人間が書き足す必要がある ことが見えれば成功です。

§2.6CLAUDE.md だけでは足りなくなる理由

引継書(CLAUDE.md)にあらゆる手順まで詰め込むと、新人は参画初日にその分厚い引継書を読むだけで時間を使ってしまう。具体的には:

  • セッションが始まった瞬間からコンテキストの一部を消費し続ける
  • 200行を超えると Claude の遵守率が下がる(公式が明示)
  • 「今は使わない手順」まで毎回ロードされる
例:「コミットメッセージはこの規約で書いて」「PR の説明はこのテンプレで」「デプロイはこの手順で」…これらを全部 CLAUDE.md に詰めると、毎セッション全部読まれる。でもその大半は そのセッションで使わない。→ 解決策:「必要なときだけ取り出せる場所」=書庫に置いたマニュアルが欲しい。それが Skills

§2.7Skills とは

出典: Skills

Skills は「呼ばれたときだけ取り出されるマニュアル」。公式の定義は「指示書とサポートファイルをバンドルした、再利用可能なワークフローテンプレート」です。

最大の特徴は Progressive Disclosure(段階的開示)

出典: Equipping agents for the real world with Agent Skills(Anthropic Engineering Blog) — "Progressive disclosure is the core design principle that makes Agent Skills flexible and scalable."

ロード段階何が読まれる
セッション開始時 Skill の description(1〜2行のメタ情報)だけ
Claude が判断 or /skill-name 呼び出し SKILL.md の本体が展開される
必要に応じて 添付ファイル(reference.md など)も読み込まれる
つまり、「どんな手順が使えるか」の見出しだけ常にあって、中身は呼ばれたときだけ展開される。毎回ロードのコストを払わずに、再利用可能な手順を増やせる。

§2.8CLAUDE.md と Skills の使い分け

CLAUDE.mdSkills
内容 事実 — このプロジェクトとは何か、どう動かすか 手順 — 〇〇するときはこう進める
ロード セッション開始時、常時 呼び出されたときだけ
プロジェクト概要、コーディング規約、ビルドコマンド コミットメッセージ生成、PRレビュー、デプロイ手順
公式の指針(Skills):「CLAUDE.md の一節が 事実ではなく手順 に育ってきたら、Skill に切り出せ」

§2.9Skills の構造

.claude/
└── skills/
    └── commit-message/
        └── SKILL.md   ← /commit-message でも、Claude の自動判定でも呼べる

SKILL.md の最小例:

---
description: 統一フォーマットでコミットメッセージを生成する
---

# コミットメッセージ生成

以下のフォーマットで生成してください:
- 1行目:50文字以内、動詞で始める
- 本文:何を、なぜ変更したか

description が Claude にとっての「目次」。これを読んで「使うべきか」自動判定します。

§2.10ハンズオン②:複数ファイルの Skill を使う — PR説明文ジェネレーター(10分)

題材
「変更差分から PR の説明文を生成するスキル」
単一ファイルの SKILL.md ではなく、SKILL.md + 種別ごとのテンプレ + セルフレビューチェックリスト という複数ファイル構成のスキルを動かしてみます。Progressive Disclosure(必要なファイルだけ読まれる)の効果を体感するのが狙いです。

Step 1:ハンズオン②用ブランチに切り替える

git restore .
git clean -fd        # ハンズオン①の作業状態をリセット
git checkout handson-02-skill         # ハンズオン②用ブランチへ切替

切り替えると、プロジェクト直下に CLAUDE.md と、.claude/skills/pr-description/ 配下に Skill 一式が現れます。

.claude/skills/pr-description/
├── SKILL.md
├── templates/
│   ├── feat.md          ← 新機能向けテンプレ
│   ├── fix.md           ← バグ修正向けテンプレ
│   └── refactor.md      ← リファクタ向けテンプレ
└── reference/
    └── self-review-checklist.md   ← PR提出前のセルフチェック

Step 2:5 つのファイルを目で追う(3分)

VS Code でそれぞれを開いて、何が書かれているか読んでください。

  • SKILL.md — Skill の入口。description で Claude が「使うべきか」を判断し、本文で進め方を指示している
  • templates/feat.md fix.md refactor.md — 種別ごとの PR 説明文テンプレ。SKILL.md は判定して 1 つだけ を読む設計
  • reference/self-review-checklist.md — 説明文を書き終えたあとのセルフチェック項目
「テンプレが3つ用意されているけど Claude は1つしか読まない」というのが Progressive Disclosure の本質です。Step 5 で実際に1つしか読まれないことを確認します。

Step 3:何か小さな変更を加える(1分)

index.html の <footer> に「v1.0」と表示するように変更してください

Claude が index.html を編集します(許可ダイアログが出たら承認)。

Step 4:/pr-description を実行する

/pr-description いまの変更に対する PR 説明文を作ってください

description が良ければ自然文でも拾われます:

今の変更を main にマージするための PR 説明文をドラフトしてください

プロンプト入力欄で / を 1 文字だけ打つと /pr-description が候補に出るはずです。出てこない場合は .claude/skills/pr-description/SKILL.md の frontmatter(--- で囲まれた description: の行)が壊れていないか確認してください。

Step 5:観察ポイント

実行ログを上にスクロールして、以下を確認してください。

  • どのテンプレが読まれたか:今回は新機能の追加なので templates/feat.md だけが展開されているはず。fix.mdrefactor.md は読まれていません。これが Progressive Disclosure です。
  • [要記入] がそのまま残っているか:背景・動機など差分から読めないところは Claude が勝手に埋めない設計です。
  • セルフレビュー項目が出力されたかreference/self-review-checklist.md が最後に読まれて、PR 提出前のチェックが提示されているはず。
  • /context を実行:未使用のテンプレ(fix.md / refactor.md)はコンテキストにロードされていないことを確認できます。
なぜこれを Skill にしたか
  • ファクトではなく手順 だから(CLAUDE.md より Skill 向き)
  • 種別で分岐するテンプレ があるから、「全部毎回読ませる」のを避けたい → Progressive Disclosure
  • 使う場面が限定的(PR を作るときだけ)→ 常時ロードはムダ
PART3

その他の機能

20分

CLAUDE.md と Skills 以外にも、Claude Code を制御する道具がいくつかあります。ここでは概要だけ紹介します。詳しくは公式ドキュメントを参照してください。

§3.1サブエージェント

出典: Sub-agents

サブエージェント は「独立したタスクを、別のコンテキストで切り離して実行させる仕組み」です。メインの会話のコンテキストを汚さずに、調査・分析・生成などの重い処理を切り出せます。.claude/agents/ に定義ファイルを置くことで、特定の役割に特化したエージェントを作れます。

  • code-reviewer — レビュー観点に特化
  • researcher — 調査・要約に特化(メインの会話に結果だけ返す)
Skills が「手順を渡す」のに対し、サブエージェントは「コンテキストごと隔離する」のが本質的な違い。

§3.2hooks

出典: Hooks guide

hooks は「Claude Code がツールを実行する前後に、自動でコマンドを走らせる仕組み」です。

入力
あなたの指示
判断
Claude がツール実行を決定
Pre
【PreToolUse hook】
← ここで自動コマンドを差し込める
実行
ツール実行(Bash / Edit / Write...)
Post
【PostToolUse hook】
← ここにも差し込める
結果
Claude が結果を受け取る

実用例:

タイミング使い道の例
Bash 実行前 危険なコマンド(フォルダ削除など)をブロックする ← ハンズオン③で実演
ファイル編集後 フォーマッター(Prettier など)を自動実行
Bash 実行前 実行コマンドをログファイルに残す
セッション終了時 作業サマリーを自動生成
hook の標準出力(stdout)はそのままではチャットに表示されません(デバッグログ行き)。hook から Claude に「このツール実行はブロックする」と伝える最も簡単な方法は exit 2 でプロセスを終了し、stderr に理由を書く ことです。Claude Code は exit 2 を「ブロック信号」として扱い、stderr を Claude のコンテキストに差し込みます。

設定例(.claude/settings.json):

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "shell": "powershell",
            "command": "$c = ([Console]::In.ReadToEnd() | ConvertFrom-Json).tool_input.command; if ($c -match 'rm\\s+-[rR]|Remove-Item.*-Recurse') { [Console]::Error.WriteLine('Blocked by hook: folder deletion detected. Command: ' + $c); exit 2 }"
          }
        ]
      }
    ]
  }
}

このフックは「Claude が Bash ツールを呼ぶ直前」に発火し、コマンド文字列に rm -rfRemove-Item ... -Recurse といったフォルダ削除らしきパターンが含まれていたら exit 2 で止めます。shell: "powershell" は Windows で PowerShell 経由で実行する指定です。

§3.3ハンズオン③:hook を設定して発火させてみる(7分)

題材
「Claude がフォルダ削除コマンドを実行しようとしたら、PreToolUse hook で止める」
「うっかり破壊」を防ぐ典型的な hook の使い方です。Claude が rm -rf のようなコマンドを Bash ツールで投げる直前に hook が割り込み、exit 2 で止めます。
1
ハンズオン③用ブランチに切り替える
git restore .
git clean -fd        # ハンズオン②の作業状態をリセット
git checkout handson-03-hook          # ハンズオン③用ブランチへ切替
切り替えると、プロジェクト直下に .claude/settings.json が現れます。
2
.claude/settings.json を開いて中身を確認する
VS Code で .claude/settings.json を開いてください。ざっくり読み解くと:
  • "PreToolUse" … ツール実行に発火するフック種別
  • "matcher": "Bash" … 対象ツールは Bash(Edit/Write など他のツールは無視)
  • command の中身(PowerShell)が stdin から JSON を読み、rm -rfまたは Remove-Item ... -Recurse が含まれていたら exit 2 で止める
3
設定を反映させる(新しいセッションを開始)
/clear
を入力して Enter(既存セッションを終了して新セッションを開始)。
hook 設定はセッション開始時に読み込まれます。
4
hook を発火させる(フォルダ削除を依頼してみる)
このプロジェクトの js/ フォルダを丸ごと削除してください
Claude は Bash ツールで rm -rf js 相当のコマンドを実行しようとしますが、hook が exit 2 で止めます
万一 hook をすり抜けて削除されてしまっても、git restore . && git clean -fd で元に戻せます(ハンズオン用ブランチなので何度でもやり直せます)。
5
観察
  • js/ フォルダは消えていない(VS Code エクスプローラーで残っているはず)
  • Claude のチャット応答に 「hook によってブロックされた」といった趣旨のメッセージ が出ているか
  • Bash 許可ダイアログが出る前または出た後に hook で止まったかをログで確認
期待通り動かない場合の確認ポイント:.claude/settings.json の JSON 構文が壊れていないか(VS Code の赤い波線が出ていないか)、Step 3 の /clear を忘れていないか。Claude が想定外のコマンド(例:Remove-Item -Force-Recurse なし)を投げていて正規表現に引っかからなかった可能性 — その場合は「もう一度同じことを試してください」と依頼すると別パターンを試すことがあります。

§3.4rules(.claude/rules/

出典: Organize rules with .claude/rules/

.claude/rules/ は「CLAUDE.md が長くなってきたときに、ルールをファイル分割する仕組み」です。paths: frontmatter を使うと、特定のファイルを触ったときだけ そのルールが読み込まれます。

.claude/
└── rules/
    ├── code-style.md    ← 常時読み込み(paths なし)
    └── react.md         ← React ファイル編集時だけ読み込み(paths あり)

§3.5CLAUDE.md / Skills / rules の違い

CLAUDE.mdSkillsrules
何を書く プロジェクトの事実 再利用したい手順 パス連動のルール
ロードのきっかけ 常時 Claude の判断 or /手動 該当パスを触ったとき
典型例 概要・規約・コマンド コミット作成・レビュー手順 「Reactを編集するときは…」
サイズの目安 200行以内 中身は呼び出し時のみ展開 1ファイル数十行
「いつでも必要」→ CLAUDE.md/「呼ばれたら必要」→ Skills/「特定ファイル触ったら必要」→ rules
CLOSE4

クロージング

10分

§4.1今日の持ち帰りポイント

1
Claude は「見えているものしか知らない」 — コンテキストを意識して使う
2
CLAUDE.md は引継書(事実) — 新人がプロジェクト参画時に読む。/init で雛形を作って加筆していく
3
Skills はマニュアル(手順) — 書庫に置いておき、呼ばれたときだけ取り出す(Progressive Disclosure)
4
その他の道具:サブエージェント(文脈分離)/ hooks(自動化)/ rules(パス連動)

次回(第3回)予告

ドキュメント生成・編集の実践 を扱います。設計書・マニュアル・報告書といった日常業務のドキュメントを Claude Code でどう作るか・直すかがテーマです。「AI Readyな作業環境=Markdown中心」を軸に据えつつ、Excel・Word・PowerPoint・PDFのように どうしても所定フォーマットで出す必要がある資料 にどう向き合うか、までを射程に入れます。

アンケート

第2回のふりかえりシートに記入してください。所要時間:3〜5分

リファレンス

§R.1CLAUDE.md の4種類

出典: Choose where to put CLAUDE.md files

CLAUDE.md は どこに置くかで効く範囲が変わります

種類置き場所効く範囲Git管理
組織ポリシー システム領域(IT管理) 全員・全プロジェクト 除外不可
ユーザー ~/.claude/CLAUDE.md 自分の全プロジェクト共通 個人端末のみ
プロジェクト プロジェクト直下/CLAUDE.md チーム全員・そのプロジェクト 管理対象
ローカル プロジェクト直下/CLAUDE.local.md 自分・そのプロジェクトのみ .gitignore 推奨

複数が存在する場合は すべて読み込まれ、結合されます(上書きではありません)。

実用的な使い分け
  • チームで共通にしたいルール → CLAUDE.md(プロジェクト、Git管理)
  • 自分だけの好み・ローカルパス → CLAUDE.local.md(Git管理外)
  • 全プロジェクト共通の癖 → ~/.claude/CLAUDE.md(ユーザー)

§R.2CLAUDE.md を書くときのチェックリスト

  • プロジェクトの目的・概要(一言で)
  • 技術スタック(言語・フレームワーク・主要ライブラリ)
  • よく使うコマンド(ビルド・テスト・起動方法)
  • コーディング規約・命名規則
  • やってはいけないこと
  • 外部サービス・APIの扱い(機密情報の注意事項)

§R.3Skills の置き場所と仕様

項目仕様
配置場所(プロジェクト) .claude/skills/<skill-name>/SKILL.md
配置場所(ユーザー) ~/.claude/skills/<skill-name>/SKILL.md
必須ファイル SKILL.md のみ
必須 frontmatter description(自動判定の精度に直結する)
手動呼び出し /<skill-name>
自動呼び出し description を見て Claude が判断(無効化は disable-model-invocation: true
添付ファイル 同フォルダ内に reference.md などを置き、SKILL.md から参照

§R.4hooks の主なトリガーと matcher

トリガータイミングよく使う matcher
PreToolUse ツール実行前 Bash Edit Write
PostToolUse ツール実行後 Edit Write Bash
Stop Claude の返答が終わったとき (matcherなし)
Notification Claude から通知があったとき (matcherなし)

§R.5auto memory(MEMORY.md)の仕様

出典: Auto memory

Claude Code v2.1.59 以降、デフォルトで有効になっている機能です。

項目仕様
保存場所 ~/.claude/projects/<プロジェクト名>/memory/MEMORY.md
読み込み上限 先頭 200行 または 25KB のどちらか先に達した方まで
書き込みタイミング Claude が「記憶する価値がある」と判断したとき(毎セッション末ではない)
読み込みタイミング セッション開始時(自動・バックグラウンド)
共有範囲 同じマシン・同じリポジトリ内のみ。他の端末には同期されない

/memory コマンドで現在の内容を確認・編集できます。