ankuro.dev
← ブログ一覧に戻る
D3直前対策チートシート——Claude Code開発ワークフロー(試験比率20%)【CCA Foundations対策】
2026-04-04#Claude Code#AI#Claude Certified Architect

D3直前対策チートシート——Claude Code開発ワークフロー(試験比率20%)【CCA Foundations対策】

試験比率20%。CLAUDE.md設定階層・.claude/以下のディレクトリ構成・Hooks・MCP連携・CLIフラグが主な出題範囲。


CLAUDE.md の設定階層

~/.claude/CLAUDE.md          ← ユーザーレベル(全プロジェクト共通)
.claude/CLAUDE.md             ← プロジェクトレベル(リポジトリ内)
src/components/CLAUDE.md      ← ディレクトリレベル(そのディレクトリ配下のみ)
  • 下位が上位を上書きするのではなく補完する(すべて読み込まれる)
  • チームで共有すべき指示はプロジェクトレベルに置く
  • 「新しいメンバーだけ指示が効かない」→ ユーザーレベルに書かれている可能性が高い

→ 詳細: Claude Codeとは


.claude/ ディレクトリの構成と役割

ディレクトリ 役割 チーム共有
.claude/commands/ カスタムスラッシュコマンド ✅ リポジトリに含める
~/.claude/commands/ 個人用スラッシュコマンド ❌ 個人のみ
.claude/rules/ ファイルパス別ルール(glob)
.claude/skills/ コンテキスト分離スキル
~/.claude/skills/ 個人用スキル ❌ 個人のみ
  • カスタムコマンドをチーム全員が使えるようにするには .claude/commands/ に置く
  • 個人がカスタマイズしたい場合は ~/.claude/skills/別名で作成(同名だとプロジェクト版が優先)

→ 詳細: カスタムコマンド・スキル・MCP・GitHub連携


.claude/rules/:ファイルパス別ルール

  • YAMLフロントマターでglobパターンを指定する
  • ファイルパスに応じて条件付きでルールを適用できる
  • ワークフロー(PR review・deployなど)のタスクベース適用には使えない(ファイルパスベースのみ)
  • 全ファイルに常時適用したいルールはCLAUDE.mdに書く
---
glob: "**/*.test.tsx"
---
テストファイルの規約:...

.claude/skills/:フロントマターの3つのキー

キー 解決する問題 仕組み
context: fork 探索の推論がメイン会話を汚染する 独立したサブエージェントで実行
argument-hint 引数なしで呼び出される オートコンプリート時にヒント表示
allowed-tools 不要なツールへの誤アクセス ツール定義レベルで制限(プロンプト指示より確実)
  • context: fork は「量の問題」だけでなく「放棄した推論が後続実装に影響する問題」も解決する

→ 詳細: Skillsフロントマター設計パターン


Hooks:自動化と制御

Hook種別 タイミング exit codeの意味
PreToolUse ツール実行前 0=許可、2=ブロック(エラーメッセージを返す)
PostToolUse ツール実行後 結果を変換・記録できる
  • .env ファイルへのアクセスをブロックするにはPreToolUseで制御
  • TypeScript型チェックをHooksで実行 → エラーをClaudeにフィードバックするパターン

→ 詳細: HooksでClaude Codeを自動化する


CLIフラグと非対話モード

フラグ 用途
-p / --print 非対話モード(CI/CDで必須)。処理して結果をstdoutに出力して終了
--output-format json 構造化出力を強制。GitHub API連携などに使う
--resume 前回セッションを継続
  • CI/CDパイプラインでClaude Codeを使うには -p フラグが必須
  • CLAUDE_HEADLESS=true は存在しない(誤答の定番)

→ 詳細: Claude Code SDK


MCP:.mcp.json プロジェクトスコープ

  • claude mcp add(ユーザースコープ)→ 個人設定、チームに引き継がれない
  • .mcp.json(プロジェクトスコープ)→ バージョン管理対象、クローンした全員が受け取る
  • ${GITHUB_TOKEN} 形式で環境変数を展開 → シークレットをコミットせずに共有
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-github"],
      "env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" }
    }
  }
}

→ 詳細: .mcp.jsonでMCPをチーム共有する


よくある誤解まとめ

誤解 実際
CLAUDE.md は下位が上位を上書きする 補完する(全レベルが読み込まれる)
context: fork は大量出力のときだけ使う 推論汚染防止にも使う
allowed-tools の代わりにプロンプトで「〜しないで」と書けばよい プロンプトは確率的。allowed-toolsはツール定義レベルで制限
チームで使うコマンドは ~/.claude/commands/ に置く .claude/commands/(リポジトリ内)に置く
CI/CDでは CLAUDE_HEADLESS=true を設定する -p フラグを使う
.claude/rules/ でPRレビュー時だけルールを適用できる ファイルパスベースのみ。タスクベースの切り替えはSkillsを使う