第2章 / Domain 3 全6項目+導入レッスン / 配点20%(第2位)

Claude Code の設定と
ワークフロー(配点20%)

配点2位のドメイン。CLAUDE.md の階層、スキルとコマンド、plan mode、CI統合——毎日 Claude Code を使っている人ほど「いつも見ている光景の言語化」で得点できる。この章は「導入レッスン(設定のしくみを地図として理解する)」→「タスクステートメント3.1〜3.6」→「演習」→「章末ミニクイズ」の順で、この1ページだけで Domain 3 の学習が完結する。

この章の流れ(レッスン約60分+演習2時間)

先に第1章を終えておくこと。この章は「エージェントループ」「サブエージェント」「コンテキスト」といった第1章の語彙を前提に書いてある。基礎用語に迷ったら準備章のことば図鑑へ。

導入レッスン 1設定ファイルの地図 — 「誰に効かせたいか」で置き場所が決まる

第1章で「AIとの通信は手紙のやりとり」だと学んだ。Claude Code はその手紙に、毎回自動で「指示書」を同封してくれる仕組みを持っている。それが CLAUDE.md(クロード・エムディー。プロジェクトの約束事を書いておくテキストファイル)だ。ここで大事なのは、指示書の置き場所が3つあり、置き場所によって「誰に効くか」が変わること。

階層場所効く範囲
ユーザー階層~/.claude/CLAUDE.md(自分のホームフォルダ)自分だけ。gitで共有されない=チームメイトには届かない
プロジェクト階層.claude/CLAUDE.md かリポジトリのルート直下チーム全員。clone/pull すれば全員の Claude Code が読む
ディレクトリ階層サブフォルダごとの CLAUDE.mdそのフォルダで作業するときだけ

たとえて言うなら、ユーザー階層は自分の手帳、プロジェクト階層は職場の掲示板、ディレクトリ階層は部屋ごとの注意書き。試験の定番トラブル「新メンバーの Claude Code にチーム標準が効かない」の原因は、掲示板に貼るべき指示を自分の手帳に書いてしまったこと(=ユーザー階層は git 共有されない)。答えは常に「プロジェクト階層へ移す」だ。

あわせて覚える3点:

  • /memory コマンド:セッション内で打つと「いまどのメモリファイルが読み込まれているか」を一覧できる。「設定が効かない」と思ったら、Claudeの不具合を疑う前にどの階層に書いたかをこれで診断する
  • @import 構文:CLAUDE.md から外部ファイルを参照して取り込める。巨大な一枚岩の CLAUDE.md をトピック別に分割整理するための機能。ただし読み込まれた分のトークン(AIが読む文章量の単位)は普通に消費する——圧縮の魔法ではなく、あくまで整理と選択的読み込みの道具
  • .claude/rules/ ディレクトリ:規約をトピック別ファイル(testing.md、api-conventions.md…)に分割して置く場所。さらに各ファイルの先頭に条件を書くと「特定のファイルを編集するときだけ読み込む」ことができる(→ 3.3 で詳しく)

自分のマシンで実物を見ておくと記憶が固まる(10分):

# 自分の環境の3階層を目で見る
ls -la ~/.claude/CLAUDE.md          # ① ユーザー階層(自分専用・git共有されない)
ls -la ~/.agent/CLAUDE.md           # ② プロジェクト階層(リポジトリ内・共有される)
ls -la ~/.agent/rules/              # ③ ルール分割(.claude/rules/ 方式の実物)

# いま何が読み込まれているか(試験に出るコマンド)
# Claude Code のセッション内で:
/memory

導入レッスン 2スキルとコマンド — 呼んだときだけ届く手順書

CLAUDE.md が「毎回同封される指示書」だとすると、スキル/カスタムコマンドは「呼んだときだけ届く手順書」。デプロイ手順・レビュー観点のような定型手順を1ファイルにまとめておき、必要な場面で起動する。置き場所のルールはレッスン1と同じ発想で、チーム共有=プロジェクトの .claude/commands/.claude/skills/(git で全員に配布される)、個人用=~/.claude/だ。

スキルの本体は SKILL.md というファイルで、その先頭の frontmatter(フロントマター。ファイル冒頭に書く設定欄)に試験に出る設定が3つある。

設定意味典型的な出題シーン
context: forkスキルを隔離された子コンテキストで実行する(大量の出力が本会話を汚さない)「コードベース解析のような冗長な出力を出すスキルはどう設定?」
allowed-toolsスキル実行中に使えるツールを制限する「破壊的操作をさせたくないスキルには?」
argument-hint引数なしで起動されたとき、必要なパラメータの入力を促す「引数必須のスキルで入力漏れを防ぐには?」

もう1つの頻出論点が「スキルに書くか、CLAUDE.md に書くか」の選択。切り分けはシンプルで、オンデマンドで呼ぶタスク特化の手順はスキル、常時適用したい普遍的な標準は CLAUDE.md。「毎回の会話で守ってほしいコーディング規約」をスキルにすると起動し忘れるし、「月1回のリリース手順」を CLAUDE.md に書くと毎回のトークンを無駄に食う。チームのスキルを自分好みに変えたいときは、チームのファイルをいじらず ~/.claude/skills/別名の変種を作る(チームに影響させない)。

導入レッスン 3plan mode — 工事の前の現地調査

Claude Code には「いきなり工事を始める」モードと、「先に現地調査をして、見積もりを施主に承認してもらってから工事する」モードがある。後者が plan mode(プランモード):ファイルの読み取りだけを許して探索・設計させ、計画を人間が承認してから実装に移る。

  • plan mode を選ぶ3条件:①大規模(数十ファイルに変更が及ぶ)/②複数の正解がありうる(設計の選択肢がある)/③アーキテクチャ判断を含む(システムの骨組みに関わる)。例:モノリスのマイクロサービス化、45ファイル超のライブラリ移行、インフラ要件が異なる統合方式の選択
  • 直接実行でよい場面:スコープが明確な小修正。例:スタックトレース(エラーの発生箇所リスト)付きの単一ファイルのバグ修正、1関数へのバリデーション追加
  • 組み合わせ技:plan mode で調査・設計 → 承認 → 直接実行で実装、の2段構えが実務の定石
  • Explore サブエージェント:計画のための探索は読む量が膨大になる。冗長な探索出力を隔離コンテキストで処理し、要約だけを本会話に返す読み取り専用の子エージェントを使うと、長丁場でもコンテキスト(会話の記憶容量)が枯渇しない

試験でこのテーマが出るときの急所は1つ:「複雑さが最初から要件に書いてあるのに、直接始めて、複雑になったら plan mode に切り替えよう」という選択肢は誤答。現地調査をせずに基礎を掘り始めてから「配管があった、どうしよう」と言うのでは遅いのと同じで、複雑さが見えているなら最初から調査モードで入る。

導入レッスン 4CI統合 — 誰も画面を見ていない場所で動かす

CI/CD(継続的インテグレーション/デリバリー。push のたびにテストやレビューを自動実行する仕組み)の中で Claude Code を動かすと、「PR(プルリクエスト)に自動でレビューコメントを付ける」のような無人運用ができる。ここで絶対に外せないのが、無人の場所では「質問して答えを待つ」ことができないという制約だ。

  • claude -p "…"--print:プロンプトを処理し、結果を標準出力に出して終了する非対話モード。これを付けないと、Claude が入力待ちになった瞬間に CI ジョブが永久にハングする。CI 統合の第一歩にして鉄則
  • --output-format json--json-schema:出力を機械可読な構造化データ(決めた形の JSON)に強制する。後段のスクリプトが結果をパースして「PR へ自動インラインコメント投稿」のような処理につなげられる
  • CLAUDE.md が CI の文脈供給源になる:テスト標準・fixture 規約・レビュー基準を CLAUDE.md に書いておくと、CI 起動時の Claude がそれを読んでからテスト生成・レビューに入る→低価値な重複テスト提案が減る
  • 再レビュー時の工夫:前回の指摘事項をコンテキストに含め、「新規または未対応の問題だけ報告」させると、同じコメントの重複投稿を防げる
  • 自己レビューの禁止:コードを生成したセッションに、自分の変更をレビューさせない。自分の推論の文脈を引きずって甘くなるので、独立したレビューインスタンス(まっさらな別セッション)を立てる

誤答の作られ方も知っておくと強い。CI 非対話化の問題では「CLAUDE_HEADLESS=true 環境変数」「--batch フラグ」のような実在しない機能がもっともらしく並ぶ。正解は -p 一択。

Task Statement 3.1CLAUDE.md の階層とモジュール化

CLAUDE.md は3階層で重なる:ユーザー(~/.claude/CLAUDE.md・自分専用)→ プロジェクト(.claude/CLAUDE.md かルート直下・チーム共有)→ ディレクトリ(サブフォルダごと)。「チームに効かせたい指示がユーザー階層に書かれている」が典型トラブル。
試験が問うこと
  • 3階層の使い分け。ユーザー階層はgit共有されない=チームメイトには効かない(新メンバーに指示が届かない事故の原因)
  • @import 構文で外部ファイルを参照し、CLAUDE.md をモジュール化する(パッケージごとに関係する規約ファイルだけ読み込む)
  • 一枚岩の巨大CLAUDE.mdの代わりに .claude/rules/ ディレクトリでトピック別ファイル(testing.md, api-conventions.md…)に分割する
  • /memory コマンドで「いまどのメモリファイルが読み込まれているか」を確認し、セッション間の挙動ブレを診断する
うちの組織の実物(任意読み物)

この構成そのものを運用中:~/.claude/CLAUDE.md(ユーザー・グローバル設定)+ ~/.agent/CLAUDE.md(プロジェクト)+ rules/ 26ファイル(トピック別分割)。⚠️実務メモ: feedback-claude-code-import-misconception「@import はcontext削減効果なし(読み込まれれば消費は同じ)」——@importの利点は整理と選択的読み込みであって魔法の圧縮ではない、という理解が正確。

ひっかけ(誤答として出るパターン)
  • 「チーム標準を ~/.claude/CLAUDE.md に書く」→ 自分にしか効かない。プロジェクト階層へ
  • 「設定が効かない→Claudeの不具合」→ まず階層を疑う(どの階層に書いたか、/memoryで確認)

Task Statement 3.2カスタムコマンドとスキルの作成

チームで共有する定型手順は .claude/commands/(プロジェクト・git共有)、個人用は ~/.claude/commands/。スキル(SKILL.md)には frontmatter で fork実行・ツール制限・引数ヒントを設定できる。
試験が問うこと
  • スコープ:project の .claude/commands/(clone/pullで全員に配布)vs user の ~/.claude/commands/(個人)——サンプル問題Q4はこの一択問題
  • SKILL.md frontmatter の3設定:context: fork(隔離された子コンテキストで実行し、冗長な出力が本会話を汚さない)/allowed-tools(スキル実行中のツール制限=破壊的操作の防止)/argument-hint(引数なし起動時に必要パラメータを促す)
  • 個人カスタマイズは ~/.claude/skills/ に別名の変種を作る(チームに影響させない)
  • スキル vs CLAUDE.md の選択:オンデマンドで呼ぶタスク特化手順はスキル、常時適用の普遍的標準はCLAUDE.md
うちの組織の実物(任意読み物)

129本のスキル運用と rules/extension-layer-decision.md の6問フローチャート(「毎セッション必要→CLAUDE.md、オンデマンド手順→Skills」)が、まさに最後の選択基準の実装。rules/skill-tier.md(T0/T1/T2品質保証)は試験範囲外だが、スキル濫造を防ぐ運用として上位互換。

ひっかけ
  • 「チーム共有コマンドを各開発者のホームに置く」「CLAUDE.mdに書く」「config.jsonのcommands配列」→ 正解は .claude/commands/(Q4。config.json方式は存在しない機能)
  • 「冗長な出力を出すスキルを本会話で実行」→ context: fork で隔離が正解

Task Statement 3.3パス限定ルール(.claude/rules/ の paths 指定)

「テストファイルの規約は、テストファイルを編集するときだけ読み込みたい」——.claude/rules/ のYAML frontmatter に paths: ["**/*.test.*"] のようなglobパターンを書くと、該当ファイル編集時だけルールが発動し、無関係なコンテキスト消費を減らせる。

まず glob(グロブ)とは、* のようなワイルドカード(何にでも一致する記号)でファイル名の集合を指す記法のこと。**/*.test.* なら「どのフォルダにあっても、名前に .test. を含むファイル全部」。ルールファイルの先頭にこの条件を書いておくと、Claude Code は一致するファイルを編集するときだけそのルールを読み込む。全ルールを毎回同封する必要がなくなり、トークンの節約になる。

「ディレクトリ別 CLAUDE.md」との使い分けはこう考える:ディレクトリ CLAUDE.md は住所で配る回覧板(その町内にいる人にだけ届く)、paths 付きルールは職種で配る社内報(どの支社にいても営業職なら届く)。テストファイルのようにコードベース全体に散らばっている同種ファイルに規約を当てたいなら、住所ベースでは追いきれない——場所ではなくファイルの種類で判定する glob ルールが正解になる。逆に「このフォルダの中だけの約束事」なら、ディレクトリ CLAUDE.md で足りる。

試験が問うこと
  • paths frontmatter による条件付きルール読み込みの仕組みと、コンテキスト(トークン)節約効果
  • globルール vs ディレクトリ別CLAUDE.md:規約の対象が複数ディレクトリに散らばる場合(テストファイルがコードベース全体に分散等)はglobルールが正解。ディレクトリCLAUDE.mdは場所に縛られる
  • 例:paths: ["src/api/**/*"] でAPI規約、paths: ["**/*.test.*"] でテスト規約——場所でなくファイルの種類で規約を当てる
  • サンプル問題Q6の正解筋:分散した同種ファイルに自動で規約を当てる最保守な方法=paths付きrules。「ルートCLAUDE.mdに全部書いて推論任せ」は不確実、「スキル化」は手動起動が要る、「各ディレクトリにCLAUDE.md」は分散に追従できない
うちの組織の実物(任意読み物)

2026-05の rules-optimization で path-scoped 化を実施済み(232行削減)。「常時ロードすべきか、パスで絞れるか」の判断を実際にやった経験がそのまま答案になる。ただし全rulesをpath化しても大きく減らなかった(3829→3804行)という限界も体験済み——「pathsは万能の圧縮ではなく、対象が明確なルールにだけ効く」という肌感は試験でも正しい。

ひっかけ
  • 「ルートCLAUDE.mdに全規約を書いてClaudeに使い分けさせる」→ 明示的マッチングでなく推論頼み=不確実で誤答
  • 「ディレクトリごとにCLAUDE.mdを置く」→ 対象ファイルが全体に散っている場合は破綻

Task Statement 3.4plan mode vs 直接実行

大規模・多ファイル・複数の正解がありうる設計判断を含む仕事はplan mode(読み取り専用で探索・設計→承認後に実行)。スコープ明確な小修正は直接実行。「複雑さが最初から分かっているのに直接始める」のが誤答。

判断基準は導入レッスン3の3条件——①大規模(数十ファイル)/②複数の正解がありうる/③アーキテクチャ判断を含む——のどれかに当てはまるかどうか。1つでも当てはまるなら、いきなり書き始めず、まず読み取り専用で構造を調査し、計画を人間に承認してもらってから実装する。どれにも当てはまらない明確な小修正(エラー箇所が特定済みのバグ修正など)は、plan mode を挟むだけ時間の無駄なので直接実行でよい。「迷ったら要件文を読み直す」が実戦のコツで、要件に複雑さが書いてある(45ファイル、複数方式の比較、決済モジュール…)のに直接始める選択肢は誤答と機械的に判定できる。

試験が問うこと
  • plan mode の適用場面:アーキテクチャに関わる変更(モノリス→マイクロサービス化、45ファイル超のライブラリ移行、インフラ要件が違う統合方式の選択)
  • 直接実行の適用場面:スタックトレース付きの単一ファイルバグ修正、1関数へのバリデーション追加
  • Explore サブエージェント:冗長な探索出力を隔離し、要約だけ本会話に返す→長丁場のコンテキスト枯渇を防ぐ
  • 組み合わせ技:plan mode で調査・設計→承認→直接実行で実装、の2段構え
  • サンプル問題Q5の正解筋:「複雑さは要件に書いてある。あとで気づいたら切り替えよう(誤答D)ではなく最初からplan mode」
うちの組織の実物(任意読み物)

rules/impact-assessment.md のリスク判定がこの上位互換:LOW→直接実装 / MEDIUM→/plan→/implement / HIGH・CRITICAL→/research→/plan→レビュー→/implement。試験の「complexity assessment」を、依存ファイル数とクリティカルパスで定量化した運用。Explore サブエージェントも日常使用。

ひっかけ
  • 「実装しながら自然な境界を見つける」→ 依存を後から発見して手戻り(Q5誤答B)
  • 「詳細な事前指示を書けば直接実行でよい」→ コードを見ずに正しい構造を知っている前提が誤り(Q5誤答C)
  • 「予想外の複雑さに遭遇したらplan modeに切替」→ 複雑さが最初から明示されている場合は誤答(Q5誤答D)

Task Statement 3.5反復改善のテクニック(イテレーション設計)

文章で説明して伝わらないなら入出力の具体例を2〜3個見せる。実装前にテストを先に書いて失敗を共有しながら直させる。不慣れな領域ではClaudeに先に質問させる(インタビューパターン)。相互作用する問題は一括で、独立した問題は順番に直させる。

このタスクステートメントは「1回で完璧な指示を書く」のをやめ、Claude とのやりとりを設計する技術を問う。4つのテクニックを、それぞれ具体的な場面で理解しておく。

① 具体例駆動。「顧客データの移行スクリプトで、空欄は適切に処理して」と散文で頼むと、実行のたびに解釈が変わる——あるときは空文字を入れ、あるときは行ごと捨てる。こういうとき説明文をさらに書き足すより、入出力の具体例を2〜3個見せる方が効く:「電話番号が空 → "未登録" を入れる」「生年月日が空 → その行はスキップしてログに残す」「メールが空 → エラーで止める」。新人への引き継ぎで、10分の口頭説明より記入済みのサンプル1枚が正確に伝わるのと同じ理屈。散文の仕様が一貫して解釈されないときの第一手は、説明の増量ではなく例示だ。

② テスト駆動の反復。実装を頼む前に、期待する挙動・エッジケース(境界の意地悪な入力)・性能要件をテストコードとして先に書いておき、「このテストが全部通るまで直して」と失敗一覧を共有しながら段階的に改善させる。採点基準を先に配ってから答案を書かせるイメージで、「できました」の自己申告ではなくテストの合否という機械的な物差しで反復が回る(第1章で学んだ「自然言語は信用できない、フラグで判定する」と同じ思想の応用)。

③ インタビューパターン。自分が不慣れな領域(初めてのキャッシュ層導入など)では、そもそも仕様を書き切れない。このときは実装を頼む前に「実装に入る前に、設計上確認すべきことを私に質問して」と Claude 側から質問を出させる。すると「キャッシュの無効化はどのタイミングで?」「キャッシュサーバーが落ちたときは素通しでよい?」のような、自分が想定していなかった論点が先に表面化する。寿司屋で「おまかせ」と言う前に、職人の方から「苦手なネタは?量は?」と聞いてもらう構図。

④ 一括 vs 逐次。複数の問題を直させるとき、出し方は2通りある。問題同士が相互作用する(1つ直すと別の箇所の挙動が変わる)なら、全部の問題と関係性を1つの詳細なメッセージにまとめて渡す——1個ずつ出すと「直すたびに別の場所が壊れる」もぐら叩きになるからだ。逆に問題が互いに独立なら、1件ずつ順番に出して各修正を確認しながら進める方が確実。判断軸は「問題の間に依存関係があるか」の一点。

試験が問うこと
  • 具体例駆動:散文の要求仕様が一貫して解釈されないとき、最も効くのは入出力例2〜3個(例:移行スクリプトのnull処理を、例で示す)
  • テスト駆動の反復:期待挙動・エッジケース・性能要件を先にテストスイートに書き、失敗を共有して段階改善
  • インタビューパターン:実装前にClaudeから設計上の考慮点(キャッシュ無効化戦略・障害モード等)を質問させ、開発者が想定していなかった論点を先に出す
  • 一括 vs 逐次の修正指示:問題同士が相互作用するなら1つの詳細メッセージにまとめて出す、独立していれば順番に
うちの組織の実物(任意読み物)

インタビューパターンは rules/communication.md の「インタビュー形式(曖昧さが多いタスクで一問ずつ、アーキテクチャが変わる質問を優先)」として運用済み。テスト駆動は tdd-workflow スキル。「相互作用する問題は一括で」は、複数バグ修正依頼の日常運用と同じ。

ひっかけ
  • 「もっと詳しい散文の説明を書き足す」→ 解釈ブレの根治には具体例の方が効く
  • 「相互作用するバグ群を1個ずつ順番に直させる」→ 直すたびに別の箇所が壊れる。一括提示が正解
  • 「不慣れな領域でも、まず自分で仕様を完成させてから渡す」→ 想定外の論点は仕様に書けない。インタビューパターンで先に質問させる

Task Statement 3.6CI/CDパイプラインへの統合

自動実行では claude -p "…"--print=非対話モード)が鉄則。対話待ちでジョブが永久にハングするのを防ぐ。構造化した結果が欲しければ --output-format json--json-schema
試験が問うこと
  • -p/--print:プロンプトを処理して結果をstdoutに出して終了する非対話モード(サンプル問題Q10。CLAUDE_HEADLESS環境変数や--batchフラグは存在しない機能として誤答に配置される)
  • --output-format json--json-schema:CIでの機械可読な出力の強制→PRへの自動インラインコメント投稿などに使う
  • CLAUDE.md がCI起動時のプロジェクト文脈供給源になる(テスト標準・fixture規約・レビュー基準を書いておく→テスト生成の質が上がり、低価値な重複テスト提案が減る)
  • 再レビュー時は前回の指摘事項をコンテキストに含め、「新規または未対応の問題だけ報告」させて重複コメントを防ぐ
  • セッションコンテキスト分離:コードを生成した同じセッションは自分の変更のレビューが甘い→独立したレビューインスタンスを立てる方が効果的
うちの組織の実物(任意読み物)

「生成者と検証者を分ける」は rules/audit-independence.md(盲検・独立コンテキスト・Generator-Evaluator分離)の中核思想と完全一致。週次調査ルーチン(GitHub Actions)は headless 運用の実例。CLAUDE.md の「無人実行時は AskUserQuestion 禁止」ルールも同じ問題意識(対話待ちハング)。

ひっかけ
  • 「CLAUDE_HEADLESS=true」「--batch フラグ」「stdinを/dev/nullから」→ 存在しない機能・的外れなUnix回避策。正解は -p(Q10)
  • 「生成したセッションにそのまま自己レビューさせる」→ 自分の推論文脈を引きずって甘くなる。独立インスタンスが正解

公式コースで補強Claude Academy の対応レッスン

Anthropic 公式の無料学習サイト Claude Academy(2026-08-20 公開、/ja/ で日本語版)のうち、第2章(ドメイン3: Claude Code の設定)に対応するレッスン。Claude Code 101 → 実践Claude Code → エージェントスキル入門 の3本が、この章の設定3階層・スキル・plan mode・CI をほぼ同じ順番で扱う。使い方は「この章を読み終えてから、同じテーマを公式がどう説明しているかを確かめる」の一方向。先に公式を読む必要はない。レッスン本文の閲覧には無料アカウントでのサインインが必要。

この章で使うコース: Claude Code 101 / 実践Claude Code / エージェントスキル入門

この章の項目対応する公式レッスン
導入レッスン1 設定ファイルの地図Claude Code 101 › Claude Codeの仕組み
Claude Code 101 › The CLAUDE.md file
3.1 CLAUDE.md の階層とモジュール化Claude Code 101 › The CLAUDE.md file
実践Claude Code › A CLAUDE.md that follows
3.2 カスタムコマンドとスキルの作成エージェントスキル入門 › スキルとは
エージェントスキル入門 › 最初のスキルを作成する
エージェントスキル入門 › スキルと他のClaude Code機能の比較
エージェントスキル入門 › スキルの共有
Claude Code 101 › Skills
3.3 パス限定ルール(paths 指定)エージェントスキル入門 › 設定と複数ファイルスキル
paths 付き rules を直接扱うレッスンは無い。「どの設定がいつ読まれるか」の感覚を補う用途で。
3.4 plan mode vs 直接実行Claude Code 101 › 探索 → 計画 → コード → コミットのワークフロー
実践Claude Code › Permission modes
3.5 反復改善のテクニック実践Claude Code › Verification skills
実践Claude Code › Steering long sessions
Claude Code 101 › コードレビュー
3.6 CI/CD パイプラインへの統合実践Claude Code › Routines and headless
実践Claude Code › GitHub Actions and Code Review
実践Claude Code › Trust it: Verifying unsupervised runs
深掘り(任意・出題範囲の周辺)実践Claude Code › Plugins
エージェントスキル入門 › スキルのトラブルシューティング

対応付けはレッスン題名とコース説明文から行った(2026-08-25 時点)。レッスン本文までは精査していないので、読んでみて「この章の項目とずれている」と感じたら、その節は公式を優先せずこの章の記述で答える(試験ガイドのタスクステートメントに合わせて書いてあるため)。

演習手を動かして確かめる(公式演習2の日本語版・約2時間)

この章の演習はコードを書かない。設定ファイルを置いて、効き方が変わるのを目で見るのが目的だ。Claudeに「c2演習やる」と言えば伴走してもらえる。新規の練習用リポジトリを1つ作ってやるのが安全(本物の ~/.agent/ は触らない)。

  1. 3階層を作る:練習リポジトリに CLAUDE.md(プロジェクト標準)を書き、~/.claude/CLAUDE.md(ユーザー)との効き方の違いを1つの指示で確認する。/memory でどちらが読み込まれているかも見る(→3.1の体験)
  2. paths付きルール.claude/rules/test-style.mdpaths: ["**/*.test.*"] を付け、テストファイル編集時だけ発動する(普通のファイル編集では発動しない)ことを確認する(→3.3の体験)
  3. fork スキルcontext: fork + allowed-tools 付きのスキルを1本作り、大量の出力を出させても本会話が汚れないことを確認する(→3.2の体験)
  4. plan mode 判定練習:「1ファイルのバグ修正」「10ファイルのリネーム」「認証方式の変更」の3つを plan mode / 直接実行に仕分けし、3条件(大規模・複数の正解・アーキテクチャ判断)のどれで判定したか理由を言う(→3.4の体験)

余裕があれば3.5も体験できる:わざと曖昧な散文(「空欄はいい感じに処理して」)で小さなスクリプトを頼み、解釈がブレるのを見てから、入出力例2〜3個を渡して直る様子を観察する。説明を100回読むより、ブレた出力を1回見る方が記憶に残る。

用語ミニ辞書(第2章)

CLAUDE.md 階層(user / project / directory)

ユーザー階層(~/.claude/・個人にだけ効く・git共有されない)→ プロジェクト階層(リポジトリ内・チーム共有)→ ディレクトリ階層(サブフォルダ限定)。「誰に効かせたいか」で置き場所を決める。

@import

CLAUDE.md から外部ファイルを参照して取り込む構文。モジュール化・選択的読み込みのための機能で、読み込んだ分のトークンは普通に消費する(圧縮ではない)。

frontmatter (フロントマター)

Markdownファイルの冒頭に書く設定欄(YAML形式)。ルールファイルなら paths、SKILL.md なら context / allowed-tools / argument-hint をここに書く。「本文の前に付ける荷札」のイメージ。

glob (グロブ)パターン

*(何でも1区間)や **(何階層でも)のワイルドカードでファイル名の集合を指す記法。**/*.test.*=「どこにあっても名前に .test. を含むファイル全部」。paths 指定の中身。

.claude/rules/ + paths frontmatter

トピック別ルールファイルの置き場。YAML frontmatter の paths: ["glob"] を書くと、一致するファイルを編集するときだけルールが読み込まれる(条件付きロード)。

context: fork / allowed-tools / argument-hint

SKILL.md frontmatter の3設定。fork=隔離コンテキストで実行(冗長出力が本会話を汚さない)、allowed-tools=スキル実行中のツール制限、argument-hint=引数なし起動時の入力促し。

plan mode

実行前に読み取り専用で探索・設計し、計画を承認してから実装に移るモード。大規模・多ファイル・アーキテクチャ判断を含むタスク用。小さな明確な修正には過剰。

Explore サブエージェント

冗長なコードベース探索を隔離コンテキストで行い、要約だけを本会話に返す読み取り専用の子エージェント。長時間タスクのコンテキスト枯渇対策。

claude -p(--print)/ --output-format json / --json-schema

CI/CD用のCLIフラグ。-p=非対話モードで処理して終了(ハング防止)、--output-format json + --json-schema=構造化された機械可読出力の強制。

インタビューパターン

実装前にClaudeの側から設計上の質問を出させ、開発者が想定していない考慮点(キャッシュ無効化・障害モード等)を表面化させる手法。

章末ミニクイズ(5問)

本番形式の4択。4問がこの章(D3)、1問が第1章(D1)の復習。総合模試(quiz.html)が3.1・3.3・3.6を出題済みなので、ここでは3.2・3.4・3.5を重点的に出す。間違えても気にしない——間違えた瞬間が一番記憶に残るタイミング。

MQ1 — 3.2 スキルの設定
コードベース全体を解析して数千行のログを出す「依存関係マップ生成」スキルを使うと、実行のたびに本会話のコンテキストが解析ログで埋まり、その後の会話の質が落ちる。最も適切な対処は?
冗長な出力の隔離は context: fork の役割そのもの(子コンテキストで実行し、本会話を汚さない)。要約指示(A)は確率的で漏れる。allowed-tools(C)はツール制限で出力量とは無関係、置き場所の変更(D)はスコープの話で効かない。→ 3.2
MQ2 — 3.4 plan mode
「決済モジュールを含む45ファイルを新しいライブラリへ移行する。互換性のない方式が2つあり、どちらを採るかで構成が変わる」という要件を受けた。最適な進め方は?
大規模(45ファイル)・複数の正解(方式2つ)・アーキテクチャ判断(決済まわりの構成)と3条件すべてが要件に明示されている。複雑さが最初から見えているのに「あとで切り替える」(B)は定番の誤答。A/Dはコードを見ずに正しい構造が分かる前提が誤り。→ 3.4
MQ3 — 第1章の復習(1.3 コンテキスト受け渡し)
調査サブエージェントに「例の認証バグの原因を調べて」とだけ書いて起動したら、無関係なモジュールを延々と探索して戻ってきた。根本原因は?
子エージェントは白紙で生まれる。「例の」が通じるのは親の会話の中だけで、子にはファイルパス・症状・既知の手がかりを明示的に渡す必要がある。モデルサイズ(A)やツール(B)、並列性(D)は「文脈ゼロ」の問題を解決しない。→ 第1章 1.3
MQ4 — 3.5 反復改善(具体例駆動)
顧客データ移行スクリプトの「null値の扱い」を散文で指示しているが、生成のたびに解釈が変わる(空文字を入れたり、行を捨てたり)。最も効果的な改善は?
散文仕様が一貫して解釈されないときの第一手は説明の増量ではなく例示。「電話番号が空→"未登録"」「生年月日が空→行をスキップしてログ」のような例2〜3個が解釈を固定する。A/Dは散文の上塗りで根治しない、Bは仕様の曖昧さ自体を解決しない。→ 3.5
MQ5 — 3.5 反復改善(一括 vs 逐次)
レビューで見つかった3つの問題(バリデーション・エラーハンドリング・状態管理)は互いに絡み合っていて、1つ直すと別の箇所の挙動が変わる。修正指示の出し方として最適なのは?
相互作用する問題群は一括提示が正解。1件ずつ(A)は直すたびに別の箇所が壊れるもぐら叩きになる。C/Dは分断がさらに進み、絡み合った修正の整合を取る主体がいなくなる。逐次が正解になるのは問題が互いに独立なとき。→ 3.5

仕上げチェックリスト(30秒で説明できたらチェック)

← 第1章(エージェント設計) 第3章へ(c3.html)→