Claude Code Best Practice

Claude Code の設定・スキル・サブエージェントと Command → Agent → Skill オーケストレーションのリファレンス。

1 — 概要

claude-code-best-practice は、Claude Code(claude.ai/code)向けのベストプラクティスとリファレンス実装を集めたリポジトリだ。アプリ本体ではなく「設定・スキル・サブエージェント・フック・コマンド」のパターンを示す参考実装として使う。

Commandsワークフロー入口
Subagents分離コンテキスト
Skills知識・ツール注入
Hooksイベント駆動
2 — 主要概念
機能配置説明
Commands.claude/commands/<name>.mdユーザーが呼ぶスラッシュコマンド。既存コンテキストにプロンプトを注入し、ワークフローの入口になる。
Subagents.claude/agents/<name>.md独立したコンテキストで動くエージェント。ツール・権限・モデル・メモリを個別に設定できる。
Skills.claude/skills/<name>/SKILL.md知識や手順を注入。エージェントにプリロード(agent skill)したり、Skill ツールで直接呼び出したりできる。
Hooks.claude/hooks/PreToolUse / PostToolUse / SessionStart など、イベント発火時にエージェントループ外で実行するスクリプト(例: サウンド通知)。
MCP.claude/settings.json, .mcp.jsonModel Context Protocol で外部ツール・DB・API に接続する。
Settings.claude/settings.json権限・モデル・出力スタイル・サンドボックス・キーバインドなど階層的に上書きされる。

サブエージェント同士の呼び出しは bash ではなく Agent ツールで行う。Agent(subagent_type="agent-name", description="...", prompt="...", model="haiku") のように明示する。

3 — オーケストレーション(Command → Agent → Skill)

リポジトリ内の Weather システムが、Command → Agent → Skill の流れを実演している。

  • Command /weather-orchestrator: 入口。ユーザーに C/F を聞き、Agent ツールで weather-agent を起動し、返ってきた温度で Skill ツールで weather-svg-creator を呼ぶ。
  • Agent weather-agent: プリロードされた weather-fetcher スキルで Open-Meteo から温度を取得。
  • Skill weather-svg-creator: SVG カードと output.md を生成し、orchestration-workflow/ に書き出す。

ここで「エージェントにプリロードされるスキル」と「コマンドから直接呼ぶスキル」の二種類が一つのフローで使われている。

実行例

claude
/weather-orchestrator
4 — 設定階層・ベストプラクティス

上から強い順: Managed(MDM 等)→ コマンドライン引数 → .claude/settings.local.json(gitignore)→ .claude/settings.json~/.claude/settings.json。Hooks は hooks-config.local.jsonhooks-config.json を上書きする。

ワークフロー上のポイント

  • CLAUDE.md は 200 行以内を目安にし、必要なら .claude/rules/ に分割する。
  • ワークフローは「コマンド」を入口にし、サブエージェントは用途ごとにスキルを載せた特化型にする。
  • コンテキスト使用率がおおよそ 50% を超える前に手動で /compact する。
  • 複雑なタスクは plan mode で始め、検証可能な単位でタスクを細かくする。
サブエージェントの起動: サブエージェントから別サブエージェントを「bash で起動」してはいけない。必ず Agent(...) ツールを使う。