Week 2 教室 / 翻訳学習の週 / 対応: D1後半・D3全体

マルチエージェントと Claude Code 設定
— 毎日見ている組織を「試験用語」で読み直す

この週は新しい知識をほぼ学ばない。代わりに、すでに持っているもの(~/.agent/ の組織)を試験の語彙で説明し直す。配点にすると D1(27%)+D3(20%)=ほぼ半分をこの「翻訳作業」でカバーする。

このレッスンの流れ(約4〜6時間 / 週内に分割OK)

STEP 1Agent SDK とは何か

Claude Agent SDK = Claude Code の中身(エージェントループ・ツール群・サブエージェント機構)を、自分のアプリに組み込めるライブラリとして切り出したもの。W1で自作した40行ループの「業務用完成品」と思えばよい。

  • W1の自作ループでは run_tool() を自分で書いた。Agent SDK では Read/Write/Bash/Grep/Glob などの実装が最初から入っている
  • さらに「サブエージェントを生む Task ツール」「hooks(割り込み)」「セッション管理(resume/fork)」が標準装備
  • 試験は「Claude Code のユーザー」ではなく「Agent SDK でサポートエージェントや調査システムを作る設計者」の視点で聞いてくる。だから用語がAPI寄りになる

STEP 2翻訳ノート①:マルチエージェントの用語を実物に当てる

今週のメイン作業。以下の表を実際にファイルを開きながら埋め直す(左の用語を見て、右の実物を自分の言葉で説明できたら合格)。

試験用語開いて確認する実物確認ポイント
coordinator(コーディネーター)rules/lead-worker-orchestration.md「Leadは判定・分解・委譲・統合のみ。自分で実行しない」の一文が coordinator の定義そのもの
hub-and-spoke同上の「Worker間の直接通信は禁止(必ずLeadを介す)」禁止の理由を3つ言う:観測性・エラー処理の一元化・情報統制
AgentDefinitionagents/ の任意の1本(例: verification-agent.md)frontmatter の description / model / tools が「型定義」。descriptionが起動条件を決めている
allowedTools同上の tools:verification-agent が Read/Grep/Glob/Bash だけ=読み取り専用に絞られている理由(役割外ツールの誤用防止)
isolated context(コンテキスト分離)rules/audit-independence.md の盲検原則「他の監査の判定を見せない」が実現できるのは、サブエージェントが親の履歴を継承しない仕様のおかげ
explicit context passing(明示的な文脈渡し)CLAUDE.md の「怠惰な委譲の禁止」「ファイルパス・行番号・変更内容を含めて委譲」=子は白紙で生まれるから
parallel Task calls(並列起動)CLAUDE.md バッチ処理パターン「独立タスクは1メッセージで最大5並列」=1応答に複数Task呼び出しを同梱する試験の正解パターン
structured handoffrules/handoff-memory.md の引き継ぎテンプレ「確証済み/未確証/残り」の3分割=会話ログを読めない相手に渡す構造化サマリー
--resume / fork_sessionAgent tool の subagent_type: "fork"、/checkpoint「ツール結果が古いなら要約→新規」の判断は handoff-memory の運用と同じ
やり方のコツ

表を上から3つずつ、ファイルを実際に開いて「これが◯◯か」と声に出す。1日3行×3日で終わる。終わったらD1ページのチェックリストを更新。

STEP 3翻訳ノート②:hooks を実物で読む

試験で最頻出の対立軸「プロンプト=確率的 / hook=決定論的」を、自分の環境で動いている本物のhookで確認する。

# 実物を読む(15分)
cat ~/.agent/hooks/larc-approval-gate.sh   # 実行前ブロック型(PreToolUse)
cat ~/.agent/hooks/git-identity-guard.sh   # 実行前ブロック型
cat ~/.agent/scripts/hooks/session-budget-breaker.js  # 実行後監視型(PostToolUse)

読みながら確認する3点:

  • exit 2 でブロックしている箇所を見つける——「プロンプトのお願い」と違い、物理的に止まる=決定論的
  • larc-approval-gate が matcher で対象ツール(Lark書込み系)だけに発火している——「全部に割り込む」のではなくポリシー対象だけ
  • 試験の例($500超の返金をブロック→人間へ迂回)と、larc(本番書込みをブロック→承認要求)が同じ構造であることを言葉にする
試験の急所
  • 「絶対守らせたいルールをdescriptionやシステムプロンプトに書く」選択肢は常に誤答。保証はコードで、傾向はプロンプトで
  • PostToolUse の典型用途は「バラバラな日付形式・ステータスコードの正規化」。プロンプトで「読み替えて」と頼むのは誤答

STEP 4翻訳ノート③:CLAUDE.md の階層を自分の環境で確認する

D3の中核。自分のマシンには3階層が実在するので、見て覚える。

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

# いま何が読み込まれているか(試験に出るコマンド)
# Claude Code のセッション内で:
/memory
  • 試験の定番トラブル「新メンバーに指示が効かない」=チーム標準を①ユーザー階層に書いてしまった(git共有されない)が原因。答えは②へ移す
  • rules/ のYAML frontmatter に paths: ["**/*.test.*"] を書くと該当ファイル編集時だけ読み込まれる——うちが2026-05にやった path-scoped 化そのもの
  • @import は「分割整理」のための機能。読み込まれれば消費トークンは同じ(削減の魔法ではない——feedbackメモで実証済みの知見が試験でも正しい)

STEP 5スキルの frontmatter 3点セット

SKILL.md の frontmatter で試験に出るのは3つだけ。

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

置き場所のルールも一緒に:チーム共有=プロジェクトの .claude/commands/.claude/skills/(git配布)、個人=~/.claude/。「スキル vs CLAUDE.md」は「オンデマンドの手順 vs 常時適用の標準」で切る(rules/extension-layer-decision.md の6問フローチャートの質問4がこれ)。

STEP 6plan mode と CI統合(-p)

  • plan mode を選ぶ3条件:大規模(数十ファイル)/複数の正解がありうる/アーキテクチャ判断を含む。→ うちの impact-assessment.md(LOW=直接実装、HIGH=research→plan→implement)の判定表が上位互換なので、そちらで覚えてよい
  • Explore サブエージェント=冗長な探索を隔離して要約だけ返す読み取り専用の子。長丁場のコンテキスト枯渇対策
  • CI統合の3点セットclaude -p "…"(非対話モード。無いとジョブが入力待ちで永久ハング)/--output-format json--json-schema(機械可読な出力の強制)/CLAUDE.md にテスト標準・レビュー基準を書いてCIに文脈を渡す
  • 自己レビューの禁止:コードを生成したセッションに自分の変更をレビューさせない。独立インスタンスを立てる(=audit-independence の盲検と同じ)
試験の急所
  • 「CLAUDE_HEADLESS=true」「--batch フラグ」は存在しない機能。CI非対話化の正解は -p 一択
  • 「複雑さに遭遇したらplan modeに切り替えよう」→ 複雑さが最初から要件に書いてあるなら最初からplan mode

STEP 7演習課題(公式演習2の日本語版・約2時間)

私(Claude)に「W2演習やる」と言えば伴走する。新規の練習用リポジトリを1つ作ってやるのが安全(本物の ~/.agent/ は触らない)。

  1. 3階層を作る:練習リポジトリに CLAUDE.md(プロジェクト標準)を書き、~/.claude/CLAUDE.md(ユーザー)との効き方の違いを1つの指示で確認する
  2. paths付きルール.claude/rules/test-style.mdpaths: ["**/*.test.*"] を付け、テストファイル編集時だけ発動することを確認する
  3. fork スキルcontext: fork + allowed-tools 付きのスキルを1本作り、本会話が汚れないことを確認する
  4. .mcp.json:環境変数展開(${VAR})でMCPサーバーを1つ設定する(Week 3 の予習を兼ねる)
  5. plan mode 判定練習:「1ファイルのバグ修正」「10ファイルのリネーム」「認証方式の変更」の3つを plan mode / 直接実行に仕分けし、理由を言う

理解度チェック(30秒で説明できたらチェック)

終わったら

D1D3のチェックリストを更新 → 模試のD1/D3問題だけ解いてみる → Week 3(MCPを作る側)へ。

← W1 教室 W3 教室:MCPを作る →