✦ Claude Code ✦ 5種Hook ✦ Subagents & Worktrees ✦ Managed Agents ✦ Routines GA ✦ Skills ✦ CLAUDE.md ✦ settings.json ✦ PreToolUse / PostToolUse / Stop / Notification / SubagentStop ✦ Claude Code ✦
Anthropic · Claude

Claude Code
Best Practices

Hook制御 · Subagents · Managed Agents · Routines

5種 Hook Managed Agents Routines GA worktree隔離

★ 直近3アップデート — Claude Code
2026-05-22 /code-review 追加(旧/simplify)· Pinned background sessions

v2.1.1472つの重要な追加。

/code-review: /simplify/code-reviewに改名。effort levelパラメータで軽いレビュー(quick)から深いアーキテクチャ分析(thorough)まで指定可能に。チームレビューの前の自動事前チェックとして最適。

Pinned background sessions: claude agents内でCtrl+Tでセッションをピン留めすると、アイドル時も生き続ける。Claude Codeアップデート時にインプレースで自動再起動し、メモリ逼迫時は非ピンセッションから先に解放される。常駐エージェントや長時間タスクに最適。

2026-05-17 Stop Hook 無限ループ防止 · /ultrareview · claude agents フラグ拡張

v2.1.142-143

Stop Hook 無限ループ防止: Stop Hookが連続8回ブロックし続ける場合、警告付きでターンが自動終了するようになった。CLAUDE_CODE_STOP_HOOK_BLOCK_CAP=Nで上限変更可能。

/ultrareview: クラウドベースのコードレビューがリサーチプレビューで利用可能。ローカルとは異なるモデルが独立したコンテキストで深いレビューを実行する。

claude agents フラグ大幅拡張: --add-dir, --settings, --mcp-config, --plugin-dir, --model, --effort, --dangerously-skip-permissions が追加。チームごとに異なる設定ファイルとモデルを持つエージェントダッシュボードを起動できる。

2026-05-15 PostToolUse 全ツール展開 · Routines GA · Fast Mode Opus 4.7 デフォルト

v2.1.141

PostToolUse 全ツール展開: hookSpecificOutput.updatedToolOutputがMCPだけでなく全ツールに展開。PostToolUse HookでAIに渡す結果を完全に置き換えられるようになった。

Routines GA: 定期実行(cron式対応)が正式GA。settings.jsonのroutines配列で定義。毎週月曜のサマリー生成やデイリーコードレビューなど。

Fast Mode デフォルト変更: /fastで切り替えるFast ModeのデフォルトモデルがOpus 4.7(claude-opus-4-7)に変更。より高品質な出力を高速で取得可能。

terminalSequence フィールド追加: Hook JSON出力にterminalSequenceフィールドが追加。コンテナやCI等でもデスクトップ通知・ベル音をHookから発火できる。

★ 概要
  • Anthropic製 · CLI + IDE拡張
  • 5種類のHookで決定論的制御
  • git worktreeで並列隔離実行
  • SubagentStop Hook + Managed Agents
  • Routines(cron)でスケジュール自動化
  • Skills で繰り返しワークフローを再利用
  • CLAUDE.md → 80% の品質を決定
  • settings.json → 4スコープ (Managed/User/Project/Local)
  • VS Code / JetBrains 統合
★ ベストプラクティス Top10
  • 計画と実装を分離("don't implement yet")
  • CLAUDE.mdをRouter化して200行以内に収める
  • PreToolUse HookでCI同等チェックを強制
  • SubagentStop Hookで並列エージェントを集約
  • 1サブエージェント1専門領域の原則
  • Skillsで繰り返し手順を外部化
  • Managed Agentsは独立コンテキストで評価させる
  • RoutinesはSkill化してから自動化する
  • terminalSequenceでCI環境の通知を確保する
  • PostToolUseでlint/formatを自動適用する
設定システム — settings.json
01 4スコープ構造と優先順位
スコープファイル対象範囲Git管理
ManagedMDM/Adminサーバ配信組織全ユーザーIT部門デプロイ
User~/.claude/settings.json自分・全プロジェクトNo
Project.claude/settings.jsonリポジトリ全員Yes
Local.claude/settings.local.json自分・このリポジトリのみNo (gitignore)

優先順位(高い順): Managed → CLIオプション → Local → Project → User

02 スコープ別ファイルマップ
機能UserProjectLocal
Settings~/.claude/settings.json.claude/settings.json.claude/settings.local.json
Subagents~/.claude/agents/.claude/agents/
MCP servers~/.claude.json.mcp.json
CLAUDE.md~/.claude/CLAUDE.mdCLAUDE.mdCLAUDE.local.md
03 完全な settings.json 例(Hook + Routines)
// .claude/settings.json
{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{ "type": "command", "command": "./.claude/hooks/block-rm.sh" }]
    }],
    "PostToolUse": [{
      "matcher": "Write",
      "hooks": [{ "type": "command", "command": "npm run lint --fix $CLAUDE_FILE_PATH" }]
    }],
    "Notification": [{
      "hooks": [{ "type": "command", "command": "notify-send '$CLAUDE_MESSAGE'" }]
    }],
    "Stop": [{
      "hooks": [{ "type": "command", "command": "./scripts/post-session.sh" }]
    }],
    "SubagentStop": [{
      "hooks": [{ "type": "command", "command": "./scripts/aggregate-subagent.sh" }]
    }]
  },
  "routines": [
    { "schedule": "0 9 * * 1", "task": "毎週月曜朝: PRサマリーを作成しSlackへ通知" },
    { "schedule": "0 8 * * *", "task": "毎朝: 未マージPRのコードレビューを自動実行" }
  ],
  "model": "claude-sonnet-4-6",
  "permissionMode": "default"
}
CLAUDE.md — コンテキスト管理ファイル
01 Routerとして設計する(200行以内)

CLAUDE.mdは「知識を書く場所」ではなく「どこを読むべきかを書く場所(Router)」として設計する。肥大化すると毎セッション全量ロードされコスト増・品質低下。

  • コマンド(build/test/lint)とアーキテクチャのサマリーのみ記載
  • 詳細な手順はSkillsへ切り出す
  • プロジェクト固有のルールは docs/ 配下に置きリンクする
  • 完了タスクは即削除してCurrent Statusを更新する
# CLAUDE.md (Router例)
## Commands
build: npm run build
test:  npm test
lint:  npx eslint .

## Architecture
- API層: /src/api/ (Express + Zod validation)
- DB: Prisma ORM (PostgreSQL)
→ 詳細: docs/architecture.md

## Knowledge Index
- docs/api-spec.md — API仕様
- .claude/skills/ — 繰り返しワークフロー
- tasks/current.md — 現在のタスク

## Constraints
- TypeScript strict mode必須
- テストなしのPRはマージ禁止
02 多段階継承: グローバル → プロジェクト → サブディレクトリ

Claude Codeは複数のCLAUDE.mdを積み重ねてロードする。

~/.claude/CLAUDE.md      # 個人グローバルルール
/project/CLAUDE.md        # プロジェクト全体
/project/src/CLAUDE.md    # src/配下の特殊ルール
/project/CLAUDE.local.md  # 個人ローカル (gitignore)

深い階層のCLAUDE.mdは親を上書きではなく追記として機能する。サブパッケージごとに異なるコーディング規約を持つモノレポで特に有効。

Hooks — 決定論的実行制御(GA)

✦ HooksはモデルのハルシネーションなしにAI動作へ介入できる唯一の決定論的メカニズム。--dangerously-skip-permissions下でも有効。

01 5種類のイベントと典型的な用途
イベントタイミング典型的な使い方
PreToolUseツール実行前危険コマンドブロック・承認フロー・変数注入
PostToolUseツール実行後自動フォーマット・lint・AIへの結果置換
Notification通知イベント時(コンパクション含む)Slack/メール転送・コンテキスト再注入
Stopエージェント停止時後処理・バリデーション・次タスク起動
SubagentStop子エージェント完了時結果集約・検証・Managed Agents連携

Skill・CLAUDE.mdフロントマターでもHooksを定義でき、そのコンポーネントのライフサイクルにスコープされる。複数ファイルからマッチしたHooksは全て実行。

02 実装例: PreToolUse + PostToolUse
// .claude/hooks/block-rm.sh (PreToolUse)
#!/bin/bash
CMD="$CLAUDE_TOOL_INPUT"
if echo "$CMD" | grep -qE 'rm\s+-rf|DROP TABLE|DELETE FROM'; then
  echo '{"decision":"block","reason":"危険なコマンドをブロックしました"}'
  exit 0
fi
echo '{"decision":"approve"}'
// PostToolUse: updatedToolOutput で結果を置換 (v2.1.141+)
{
  "hookSpecificOutput": {
    "updatedToolOutput": "[lint済み出力をここに]"
  },
  "terminalSequence": "]9;PostToolUse完了"
}
03 Stop Hook 無限ループ防止 v2.1.143

Stop Hookが連続8回ブロックし続ける場合、警告付きでターンが自動終了する。以前は無限ループになり得た。

  • 上限変更: CLAUDE_CODE_STOP_HOOK_BLOCK_CAP=N
  • Stop Hookで強制ブロックするパターンを使っている場合は挙動変化に注意
04 terminalSequence — ターミナル外からの通知 v2.1.141

Hook JSON出力にterminalSequenceフィールドが追加。コンテナやCI等ターミナルを持たない環境でも、デスクトップ通知・ウィンドウタイトル変更・ベル音をHookから発火できる。

{
  "terminalSequence": "]9;Task completed",
  "hookSpecificOutput": { "updatedToolOutput": "..." }
}
Subagents & Worktrees — 並列隔離実行
01 カスタムサブエージェント定義
# .claude/agents/security-reviewer.md
---
name: security-reviewer
description: Reviews code for security issues. Use after code changes.
model: opus
tools: Read, Glob, Grep
isolation: worktree
color: red
---
You are a senior security reviewer.
Focus on: injection attacks, auth bypasses, secrets exposure.
Provide specific, actionable findings only.
  • 個人用: ~/.claude/agents/ / プロジェクト共有: .claude/agents/
  • 組み込み: Explore(Haiku・高速・読み取り専用)/ Plan(アーキテクチャ分析)/ General-purpose(フルツールアクセス)
  • isolation: worktreeで独立したgit worktreeで動作、並列エージェントが競合なしに編集可
02 Worktrees 並列開発パターン

最大の生産性向上は3〜5セッションを並列でそれぞれのgit worktreeで動かすこと。

# worktreeの作成
git worktree add ../project-feature-a feature-a
git worktree add ../project-feature-b feature-b

# 大規模バッチ変更のプロンプト例
"Migrate all sync IO to async.
Launch 10 parallel agents with worktree isolation.
Each agent tests its changes end-to-end, then opens a PR."

ベストプラクティス: 1サブエージェント1専門領域。単純タスクにはHaiku、複雑な分析にはSonnet。独立した作業は並列実行。

03 Pinned background sessions v2.1.147

claude agents内でCtrl+Tでセッションをピン留めすると、アイドル時も生き続ける。

  • ピン留めセッションはClaude Codeアップデート時にインプレースで自動再起動
  • メモリ逼迫時は非ピンのセッションから先に解放される
  • 長時間タスクや常駐エージェントに最適
04 CLAUDE.md vs Skills vs Subagents の使い分け
要素実行場所いつ使う
CLAUDE.md毎セッション常時ロード変わらない静的なプロジェクト情報
Skills現在のコンテキスト内(呼び出し時のみ)繰り返す手順・ワークフロー
Subagents独立したコンテキストウィンドウコンテキスト汚染を避けたい調査・並列作業

CLAUDE.mdが手順書のように膨らんできたら、その手順はSkillに切り出すサイン。Subagentsはコンテキスト分離が目的で「失敗したアプローチの蓄積汚染」を構造的に防ぐ。

Skills — 再利用可能ワークフロー
01 SKILL.md 構造とフロントマター
.claude/skills/
  api-conventions/
    SKILL.md          # 必須
    examples.md       # オプション
--- SKILL.md フロントマター ---
name: api-conventions
description: API design conventions. Applies in API/endpoint/REST contexts.
disable-model-invocation: true   # 副作用あるSkillに必須
context: fork                    # サブエージェントとして実行
allowed-tools: Bash(git add *) Bash(git commit *)
hooks:
  PreToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "./scripts/security-check.sh"
---

disable-model-invocation: trueがない場合、Claudeが状況を判断して自動発火する。デプロイや外部送信などの副作用があるSkillには必須。

Managed Agents — エージェントOS Research Preview
★ アクセス方法

claude.com/form/claude-managed-agents からリクエスト(Research Preview段階)。API利用は managed-agents-2026-04-01 betaヘッダー。

01 Dreaming — セッション間の記憶精製

過去セッションを定期レビューしてパターン抽出・記憶ストアを精製するスケジュールプロセス。

  • 一つのエージェントが単独では見えない繰り返しミス・収束ワークフロー・チーム共通の好みを発見
  • メモリを自動更新 or レビュー後に反映(制御レベルを選択可)
  • 高頻度・高ステークスな反復ワークフロー(文書レビュー・コードレビュー等)で最も効果的
  • Memory(セッション中の学習)+ Dreaming(セッション間の精製)が完全な記憶システムを形成
02 Outcomes — 成功基準ループ Public Beta

成功の評価基準ルーブリックを定義すると、独立したコンテキストの別グレーダーが評価して再実行させるループ。

  • グレーダーはエージェントの推論から独立した別コンテキストウィンドウで評価(バイアスなし)
  • 不合格部分を特定してエージェントが再実行、基準を満たすかイテレーション予算切れまで繰り返す
  • Webhookで完了通知を受け取れる
03 Multiagent Orchestration — 最大20エージェント Public Beta

リードエージェントがタスクを分解し、独自モデル・プロンプト・ツールを持つ最大20人のスペシャリストに委任。

  • Claude Consoleで各サブエージェントの動作・出力を詳細確認可
  • Netflix等のエンタープライズで既に採用
  • API: managed-agents-2026-04-01 betaヘッダーで利用可

核心的示唆: 3機能(Dreaming / Outcomes / Multiagent)は独立していない。OutcomesはイベントHistoryが必要。Multiagent OrchestraionはSubagentStopフックと組み合わせて使うと最も強力。

Routines — スケジュール自動化 GA
01 設定方法(settings.jsonのroutines配列)
// .claude/settings.json
{
  "routines": [
    {
      "schedule": "0 9 * * 1",  // 毎週月曜 9:00
      "task": "PRサマリーを作成してSlackに通知"
    },
    {
      "schedule": "0 8 * * *",  // 毎朝 8:00
      "task": "未マージPRのコードレビューを実行"
    },
    {
      "schedule": "0 18 * * 5", // 毎週金曜 18:00
      "task": "週次ドキュメント自動更新"
    }
  ]
}
  • cron式対応(秒・分・時・日・月・曜日)
  • Skillと組み合わせる場合は先にSkill化してから自動化すること
  • RoutinesはStop Hookと連携させると完了後処理が確実になる
02 他ツールとの比較
ツールスケジュール機能状況
Claude CodeRoutines(cron式)✔ GA
OpenAI CodexAutomations(cron + webhook)✔ GA(App限定)
Kiro CLIなし✘ 代替: 外部cron
Antigravity実験的スケジューリング△ 実験的
★ 更新ログ
2026-05-22 Claude Code/code-review追加(旧/simplify)、effort level制御。Pinned background sessions(Ctrl+T)追加。
2026-05-17 Claude CodeStop Hook無限ループ防止(8回上限)。/ultrareviewリサーチプレビュー。claude agentsフラグ大幅拡張。
2026-05-15 Claude CodePostToolUse全ツール展開・terminalSequence追加。Routines正式GA。Fast Mode Opus 4.7デフォルト。
2026-05-10 Claude Code初版リリース。5種Hook・worktree隔離・Managed Agents・Skillsシステム搭載。
◀ ホームへ   ★ 技術比較ページへ