Hook制御 · Subagents · Managed Agents · Routines
v2.1.1472つの重要な追加。
/code-review: /simplifyが/code-reviewに改名。effort levelパラメータで軽いレビュー(quick)から深いアーキテクチャ分析(thorough)まで指定可能に。チームレビューの前の自動事前チェックとして最適。
Pinned background sessions: claude agents内でCtrl+Tでセッションをピン留めすると、アイドル時も生き続ける。Claude Codeアップデート時にインプレースで自動再起動し、メモリ逼迫時は非ピンセッションから先に解放される。常駐エージェントや長時間タスクに最適。
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 が追加。チームごとに異なる設定ファイルとモデルを持つエージェントダッシュボードを起動できる。
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から発火できる。
| スコープ | ファイル | 対象範囲 | Git管理 |
|---|---|---|---|
| Managed | MDM/Adminサーバ配信 | 組織全ユーザー | IT部門デプロイ |
| User | ~/.claude/settings.json | 自分・全プロジェクト | No |
| Project | .claude/settings.json | リポジトリ全員 | Yes |
| Local | .claude/settings.local.json | 自分・このリポジトリのみ | No (gitignore) |
優先順位(高い順): Managed → CLIオプション → Local → Project → User
| 機能 | User | Project | Local |
|---|---|---|---|
| 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.md | CLAUDE.md | CLAUDE.local.md |
// .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は「知識を書く場所」ではなく「どこを読むべきかを書く場所(Router)」として設計する。肥大化すると毎セッション全量ロードされコスト増・品質低下。
docs/ 配下に置きリンクする# 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はマージ禁止
Claude Codeは複数のCLAUDE.mdを積み重ねてロードする。
~/.claude/CLAUDE.md # 個人グローバルルール /project/CLAUDE.md # プロジェクト全体 /project/src/CLAUDE.md # src/配下の特殊ルール /project/CLAUDE.local.md # 個人ローカル (gitignore)
深い階層のCLAUDE.mdは親を上書きではなく追記として機能する。サブパッケージごとに異なるコーディング規約を持つモノレポで特に有効。
✦ HooksはモデルのハルシネーションなしにAI動作へ介入できる唯一の決定論的メカニズム。--dangerously-skip-permissions下でも有効。
| イベント | タイミング | 典型的な使い方 |
|---|---|---|
PreToolUse | ツール実行前 | 危険コマンドブロック・承認フロー・変数注入 |
PostToolUse | ツール実行後 | 自動フォーマット・lint・AIへの結果置換 |
Notification | 通知イベント時(コンパクション含む) | Slack/メール転送・コンテキスト再注入 |
Stop | エージェント停止時 | 後処理・バリデーション・次タスク起動 |
SubagentStop | 子エージェント完了時 | 結果集約・検証・Managed Agents連携 |
Skill・CLAUDE.mdフロントマターでもHooksを定義でき、そのコンポーネントのライフサイクルにスコープされる。複数ファイルからマッチしたHooksは全て実行。
// .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完了" }
Stop Hookが連続8回ブロックし続ける場合、警告付きでターンが自動終了する。以前は無限ループになり得た。
CLAUDE_CODE_STOP_HOOK_BLOCK_CAP=NHook JSON出力にterminalSequenceフィールドが追加。コンテナやCI等ターミナルを持たない環境でも、デスクトップ通知・ウィンドウタイトル変更・ベル音をHookから発火できる。
{
"terminalSequence": "]9;Task completed",
"hookSpecificOutput": { "updatedToolOutput": "..." }
}
# .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/isolation: worktreeで独立したgit worktreeで動作、並列エージェントが競合なしに編集可最大の生産性向上は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。独立した作業は並列実行。
claude agents内でCtrl+Tでセッションをピン留めすると、アイドル時も生き続ける。
| 要素 | 実行場所 | いつ使う |
|---|---|---|
| CLAUDE.md | 毎セッション常時ロード | 変わらない静的なプロジェクト情報 |
| Skills | 現在のコンテキスト内(呼び出し時のみ) | 繰り返す手順・ワークフロー |
| Subagents | 独立したコンテキストウィンドウ | コンテキスト汚染を避けたい調査・並列作業 |
CLAUDE.mdが手順書のように膨らんできたら、その手順はSkillに切り出すサイン。Subagentsはコンテキスト分離が目的で「失敗したアプローチの蓄積汚染」を構造的に防ぐ。
.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には必須。
claude.com/form/claude-managed-agents からリクエスト(Research Preview段階)。API利用は managed-agents-2026-04-01 betaヘッダー。
過去セッションを定期レビューしてパターン抽出・記憶ストアを精製するスケジュールプロセス。
成功の評価基準ルーブリックを定義すると、独立したコンテキストの別グレーダーが評価して再実行させるループ。
リードエージェントがタスクを分解し、独自モデル・プロンプト・ツールを持つ最大20人のスペシャリストに委任。
managed-agents-2026-04-01 betaヘッダーで利用可核心的示唆: 3機能(Dreaming / Outcomes / Multiagent)は独立していない。OutcomesはイベントHistoryが必要。Multiagent OrchestraionはSubagentStopフックと組み合わせて使うと最も強力。
// .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": "週次ドキュメント自動更新" } ] }
| ツール | スケジュール機能 | 状況 |
|---|---|---|
| Claude Code | Routines(cron式) | ✔ GA |
| OpenAI Codex | Automations(cron + webhook) | ✔ GA(App限定) |
| Kiro CLI | なし | ✘ 代替: 外部cron |
| Antigravity | 実験的スケジューリング | △ 実験的 |