Claude 学習
カリキュラム

Lv5 Claude Code マスター

🔮 ウォームアップ — 読む前に予想する

まだ解けなくて正常です(採点されません)。先に予想を立てると本文の読み方が変わり、学習効果が上がります(事前テスト効果 → 設計根拠)。頭の中で答えてから開いてください。同じ概念は本編の自己チェックで再登場します。

Q1. 5ファイルにまたがる機能追加と、単一関数内の再現困難なバグ修正。Plan Mode と thinking のどちらを優先するか。

機能追加は Plan Mode(幅優先: 広い理解と複数ステップの計画)、バグ修正は thinking(深さ優先: 集中推論)。併用可だが追加トークンを消費するため常時オンにしない。

本編で学ぶ → 自己チェック

Q2. 作ったコマンドが / 一覧に出ない。第一容疑は?

まず置き場所とファイル名(.claude/commands/<name>.md のパス・綴り・拡張子)。それでも出なければ再起動を試す(教材収録時点の挙動では反映に再起動が必要とされた。現行はライブ検出されることが多いが、トラブル時の確認項目としては残る)。

本編で学ぶ → 自己チェック

Q2. GitHub Actions 内の Claude Code に Playwright MCP を使わせたら権限エラー。ローカルとの違いは?

Actions 内では許可する権限を個別にすべて列挙する必要があり、ワイルドカード的ショートカットは使えない。MCP のツールも1つずつ列挙。

本編で学ぶ → 自己チェック

前提: L1 修了(L2 推奨)。L2〜L4 と並行受講可(前提グラフ上の分岐)。 対応: CCA(Claude Certified Architect – Foundations の略。同日ローンチの非技術者向け新資格「Claude Certified Associate – Foundations」とは別物)ドメイン③/力量マップ B(Claude Code 運用)。

このレベルのゴール

Claude Code を「チャット付きエディタ」ではなく 設定可能なエージェント基盤 として運用する: (1) ワークフローとコンテキスト管理の日常運用化、(2) CLAUDE.md・permissions・コマンド・Skills・Subagents・Hooks・MCP の使い分け、(3) 危険操作を hooks と権限設定で 決定的に 防ぐこと。

主参照教材

演習の型DESIGN.md 共通): ①ベースライン→②設計・実装→③敵対テスト→④測定→⑤言語化。提出物は最低4点(実装/テスト・evalデータ/実行結果/設計判断メモ)。足場は 5.1〜5.3 が手順付き、5.4〜5.6 が要件のみ、5.7〜5.8 が障害シナリオ。演習は 自分の実リポジトリ(またはキャップストーン)で行う。


5.1 基本操作とワークフロー(Explore→Plan→Code→Commit)

学ぶこと

読む

🔮 まず予想する: いきなり「実装して」と頼むのと、先に計画を立てさせるのとで、途中の軌道修正の回数はどう変わりそう?

頭の中で(または紙に)予想を書いてから、下の「実行」を押して答え合わせをする。

Explore→Plan→Code→Commit を疑似セッションで見る

やる(手順付き)

  1. ベースライン: 中規模の機能追加を 計画なしで 依頼し、軌道修正回数・過剰実装を記録
  2. 設計・実装: 同種タスクを Plan Mode で開始→計画の穴を指摘→承認→実装。成功基準を計画に明記させる
  3. 敵対テスト: 曖昧なプロンプトと大きすぎるタスクを Plan Mode に投げ、計画の破綻箇所を観察
  4. 測定: 両アプローチの軌道修正回数・所要時間・/context 消費を比較
  5. 言語化: 「Plan Mode/thinking/どちらも不使用」の条件判断表を書く

自己チェック

Q1. 5ファイルにまたがる機能追加と、単一関数内の再現困難なバグ修正。Plan Mode と thinking のどちらを優先するか。


5.2 コンテキスト管理

学ぶこと

次の図で、context window に何が積まれ、/compact/clear がそれぞれどこに効くかを掴む。

context window(有限の作業記憶) CLAUDE.md(# で追記) 毎セッション自動読み込み MCP サーバのツール定義 未使用でも載る → 無効化で節約 @ でメンションしたファイル 会話履歴(やり取り・ツール結果) 上限接近で自動 compaction → 細部が失われうる /context 消費内訳 確認する /clear(完全リセット) 無関係な新タスクに 全体をリセット /compact 同じ作業の続きに 要約して続行
context windowにはCLAUDE.md・MCPサーバのツール定義・@メンションしたファイル・会話履歴が積まれ、/compactは会話履歴を要約して続行、/clearは全体を完全リセットする

読む

やる(手順付き)

  1. ベースライン: 長めのセッションで節目ごとに /context のカテゴリ別消費を記録
  2. 設計・実装: テストを1関数ずつ書かせ、(a) 汚れた履歴の Escape×2 巻き戻し、(b) 完了時 /compact、(c) 別機能へ移るとき /clear+CLAUDE.md 追記、を使い分ける
  3. 敵対テスト: compaction が自動発火するまで続け、圧縮後に「さっきの決定事項」を質問して情報喪失を確認
  4. 測定: 巻き戻し・compact・clear 後の消費と遂行品質を記録
  5. 言語化: 「場面 × 打ち手」対応表を書く

自己チェック

Q1. パッケージ不足のデバッグで会話が汚れた後、同じファイルの次のテストに着手。/clear/compact・Escape×2 のどれか。


5.3 CLAUDE.md 設計と権限・設定

学ぶこと

次の図で、ツールの実行要求が deny → ask → allow の順に照合され、deny が最優先で効く流れを掴む。

評価順: deny → ask → allow ツールの実行要求 Tool(specifier) と照合 順に照合する ① deny に一致? 一致する ブロック(実行しない) deny はどの層の allow でも 上書きできない 一致しない ② ask に一致? 一致する ユーザーに確認する 一致しない ③ allow に一致? 一致する 確認なしで実行する 一致しない どれにも一致しない 既定の動作(権限モード・ツール種別に依存) 編集・コマンド実行系は確認を挟む
permissionsはdeny→ask→allowの順に照合され、denyはどの層のallowでも上書きできない

読む

やる(手順付き)

  1. ベースライン: CLAUDE.md の無いリポジトリで数タスクこなし、繰り返した説明・軌道修正を列挙
  2. 設計・実装: /init で生成→スタック・コマンド・規約・@ 参照だけの最小構成に編集
  3. 敵対テスト: わざと無関係な長文を足し、/context 占有と応答品質の劣化を確認してから削る
  4. 測定: 導入前後で同種タスクの軌道修正回数と /context 占有を比較
  5. 言語化: 「CLAUDE.md/skills/settings」の振り分け基準をメモにする

自己チェック

Q1.(安全系)「毎回の許可が面倒だから allow に Bash 全許可を」にどう反論するか。

Q2. チームの規約と自分だけの好みはどこに置くか。


5.4 カスタムコマンド

⚠️ 現行注記(2026-07-11確認): カスタムコマンドは Skills への統合が進んでおり、.claude/commands/ は互換機能として維持されている。新規に作るなら skill(5.5)を推奨。本モジュールは既存コマンドの保守と「明示起動」という型の理解のために学ぶ。

学ぶこと

読む

🔮 まず予想する: `.claude/commands/review-pr.md` の中身に `$ARGUMENTS` が書いてあるとして、`/review-pr 123` はそこにどう展開される?

頭の中で(または紙に)予想を書いてから、下の「実行」を押して答え合わせをする。

/review-pr カスタムコマンドを実行する

やる(要件のみ・5段階)

  1. ベースライン: 繰り返し手打ちしている定型指示を2つ選び、手打ちでの所要やり取り回数と起きたミス(貼り忘れ・表記揺れ)を記録
  2. 設計・実装: そこから引数なし1つ・$ARGUMENTS 付き1つのコマンドを作る
  3. 敵対テスト: 引数なし実行・意図しない引数で破綻を確認し、指示文を頑健化
  4. 測定: 手打ち時(ベースライン)とコマンド化後で、目的達成までのやり取り回数を比較
  5. 言語化: 「skill にしなかった理由」(明示起動で十分/自動発火が不要)をメモに書く

自己チェック

Q1. 「編集のたびに必ずフォーマッタを走らせたい」をカスタムコマンドで実装した。何が問題か。

Q2. 作ったコマンドが / 一覧に出ない。第一容疑は?


5.5 Skills

学ぶこと

読む

やる(要件のみ・5段階)

  1. ベースライン: skill 化する予定の「同じ説明」を手で与えて課題を1件こなし、説明の手間(やり取り回数・貼り付けたテキスト量)を記録
  2. 設計・実装: その事項を skill 化。references/ を持つ複数ファイル構成とし、頻用ツールを allowed-tools事前承認する(ツールの制限が要件なら permissions の deny で実現し、allowed-tools との違いを設計判断メモに書く——上の現行仕様注記)
  3. 敵対テスト: (1) description に無い言い回し5種で発火テスト、(2) 似た description の競合 skill をわざと作って誤発火を再現→書き分けて解消
  4. 測定: 言い回し別の発火率を before/after で記録
  5. 言語化: CLAUDE.md でもコマンドでもなく skill にした根拠(頻度・自動性・コンテキスト税)

自己チェック

Q1. skill が (a) 一覧に載るのに起動しない、(b) そもそも一覧に載らない。それぞれ診断の第一手は?


5.6 Subagents

学ぶこと

次の図で、subagent が独立した context window で作業し、メインにはサマリだけが返る(途中経過は見えない)構図を掴む。

メインの会話(メインスレッド) これまでの会話・作業 受け取ったサマリ(結果) これだけがメインに加わる → メインを汚さない subagent(独立した context window) 探索・試行錯誤・ツール結果 =作業の途中経過 途中経過はメインから見えない (可視性を失う) タスクを委譲する サマリだけ返す
subagentは独立したcontext windowで作業し、メインの会話にはサマリだけが返る(途中経過の可視性を失う)

読む

上の図で見た通り、subagent は独立した context window を持つ。この対話でその意味を掘り下げる。

やる(要件のみ・5段階)

  1. ベースライン: subagent なしの同一スレッドでセルフレビューを1回行い、指摘の質とメインコンテキストの消費を記録
  2. 設計・実装: レビュー用 subagent を作る: read-only+git diff 用 Bash のみ、出力フォーマット(Summary・重大度別 Issues・Recommendations・Obstacles)を本文に定義
  3. 敵対テスト: (1) ベースラインのセルフレビューと同じ diff を subagent に渡して指摘の質を比較、(2) description を曖昧化して親の指示の劣化を観察→「対象ファイルを正確に伝えること」を足して回復
  4. 測定: 指摘数・重大度分布・メインコンテキストの消費差を記録
  5. 言語化: 「subagent に出すタスク/出さないタスク」を判断基準つきでリスト化

自己チェック

Q1. 「バグ再現 → デバッグ → 修正を subagent のパイプラインにしよう」という提案を評価せよ。


5.7 Hooks

学ぶこと

読む

やる(障害シナリオ・5段階: 「秘密情報ファイルがあり、過去に本番設定を書き換えかけた」リポジトリを守る)

  1. ベースライン: hook なしで CLAUDE.md の禁止指示だけを置き、.env 読み取りや危険コマンドをわざと依頼して「プロンプト指示は確率的にしか効かない」ことを記録
  2. 設計・実装: PreToolUse hook を2本実装: (1) 秘密ファイル(.env 等)の読み取りブロック(matcher は Read と Grep の両方)、(2) 危険 Bash コマンド(rm -rf 等)のブロック。いずれも exit 2+stderr で理由を返す
  3. 敵対テスト: 自分で回避経路を攻める — Bash 経由の cat .env、相対パス・別表記、Grep での内容検索 — すり抜けたら matcher と判定を強化
  4. 測定: 攻撃パターンごとのブロック成功率と、正当な操作の誤ブロック率を表にする
  5. 言語化: 「hook で強制すべきもの/CLAUDE.md の指示で足りるもの」の線引きを、ベースラインとの差を根拠に書く

自己チェック

Q1.(安全必須系)rm -rf を含む Bash をブロックする hook の設計を述べよ。exit 1 だと・PostToolUse だとどうなるか。


5.8 MCP 連携と GitHub 連携

学ぶこと

読む

やる(障害シナリオ・5段階: 「MCP サーバを足し続けてセッションが重くなった」チームを立て直す)

  1. ベースライン: MCP サーバ接続前の /context 内訳を記録(比較の基準値)
  2. 設計・実装: キャップストーンで L4 に作った自作 MCP サーバを Claude Code に接続し(L4 未修了なら Playwright 等で代替)、実タスクで使う
  3. 敵対テスト: ツール数の多いサーバを複数有効にして /context で占有を観察 → 各サーバを「無効化/CLI 代替/skill 化/Project スコープ配布」のどれにするか決めて実行
  4. 測定: 整理前後の MCP 定義の占有率と遂行への影響を、ベースラインと合わせて記録
  5. 言語化: 「MCP で足す/CLI で済ます/skill にする」の選択基準(永続的なツール定義のコスト vs 能力)

自己チェック

Q1. 「MCP サーバを5個つないだらセッションが重い。チーム標準のサーバ構成も配りたい」。打ち手は?

Q2. GitHub Actions 内の Claude Code に Playwright MCP を使わせたら権限エラー。ローカルとの違いは?


注: Claude Code SDK(現 Claude Agent SDK)は L6 で扱う

Claude Code in Action 最終盤の「The Claude Code SDK」(プログラムからの起動・デフォルト read-only・options.allowedTools)は L6「エージェント設計と本番運用」の設計パートで扱う。CLI 運用(本レベル)と SDK 開発は別領域のため、workflows / agents の設計論とセットで学ぶ。


キャップストーン増分(第6形態): プロジェクトを Claude Code で保守できる状態にする

ここまでに育てた「ドキュメント調査アシスタント」のリポジトリ(受講時点の最新形態でよい——L5 は L1 の直後から受講できるため、第1形態しか無くても成立する)を、他人(と将来の自分)が Claude Code で安全に保守できる状態 に整備する。

連鎖規則(L5 を早期受講した場合): Claude Code 設定は受講時点の最新形態に適用する。その後 L2〜L4 の増分(eval ハーネス・tool・RAG・MCP 化)をリポジトリに加えたら、そのたびに CLAUDE.md・hook・skill を再適用・再評価する(例: eval 実行コマンドを CLAUDE.md/コマンドへ追記、MCP サーバ追加後に /context 占有を再確認、秘密情報ファイルの増加に合わせて hook の対象を拡張)。差分レビューで足り、L5 ゲートの再受験は不要

次の4点を 各1つ以上:

成果物 要件
CLAUDE.md スタック・コマンド・規約+@ 参照の最小構成(5.3 の成果)
カスタムコマンド or skill 保守の定型(例: eval ハーネス実行)を1つ。選択理由をメモに残す
レビュー用 subagent read-only+git diff 用 Bash、出力フォーマットと Obstacles 欄つき(5.6 の流用可)
安全のための hook 秘密ファイル読み取り or 危険コマンドのブロック(5.7 の成果)。回避テストの記録つき

提出物は共通4点: 実装(.claude/ 一式)/テスト・evalデータ(hook の攻撃パターン表・skill の発火テスト)/実行結果(新セッションで第三者想定タスクを完遂したログ)/設計判断メモ(振り分け根拠)。


修了ゲート

共通構成(README.md 参照): 知識確認 20%/実技成果物 60%/設計判断の説明 20%、総合 80% 以上。実技は第6形態を5観点ルーブリック(機能/堅牢性/安全性/評価/説明 × 0〜3)で採点。知識確認は類題2〜3種、修了1〜2週間後に遅延チェック(不合格モジュールは復習キューへ)。

実技ルーブリック(5観点 × 0〜3点)

観点 0 1 2 3
機能 成果物なし 4成果物のうち1〜2 CLAUDE.md・コマンド/skill・subagent・hook の4点が揃う 左+新セッションで第三者想定タスクを完遂
堅牢性 hook が動かない 正常系のみ skill 発火テストと hook 回避テストを実施 左+すり抜けの発見と強化まで記録
安全性 全許可 allow 等の過剰権限 権限設計の根拠なし 秘密ファイル・危険コマンドのブロックが機能 左+permissions 最小化(deny→ask→allow)まで説明
評価 記録なし 動作ログのみ ブロック成功率・誤ブロック率 or skill 発火率を測定 左+導入前後の軌道修正回数・context 占有を比較
説明 メモなし 実装の羅列 CLAUDE.md/コマンド/skill/hook の振り分け根拠を記述 左+棄却案とトレードオフまで記述

安全必須問題(配点と独立に全問正解が必要・詳細は safety-security.md):

  1. hooks による危険コマンドのブロック: PreToolUse+exit 2+stderr の設計と、PostToolUse や exit 1 では防げない理由。Read だけでなく Grep・Bash 経由の読み取り経路まで塞げること
  2. permissions の最小化: allow 全許可の危険性と、「個別 allow+hook の決定的ブロック+settings の共有/個人の層別」による最小権限の構成。allowaskdeny の評価順(deny → ask → allow、deny は上書き不能)を含めて説明できること
  3. 秘密情報ファイル(.env 等)を読み取りから保護する複数経路の対策

部分合格方式: 不合格項目のみ補習して再受験する(合格済み項目は保持。共通運用は README.md 参照)。


Claude 学習サイト — 完全ローカル静的サイト(build.py で生成)。進捗はこのブラウザの localStorage に保存されます。