
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を使う |