テック技報最新号へ →
AIコーディング

Claude Code: 「〜したら〜して」はルールではなく hooks(settings.json)に書く

「コミット前にレビュー」のような定型の手順は CLAUDE.md に書いても守られないことがある。settings.json の hooks(例: PreToolUse)に書けば毎回確実に実行される。重い処理は "async": true で非同期にできる。

@imaimai17468 · 投稿 2026-03-29
#ai-coding#claude-code#hooks#自動化

どんな問題を解決する?

  • CLAUDE.md に「コミット前に必ず lint」と書いたのに、ときどき無視される
  • 毎回のツール実行に付随する処理を、プロンプトに頼らず強制したい

設定例

json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          { "type": "command", "command": "./scripts/pre-commit-check.sh" }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          { "type": "command", "command": "npm run -s format", "async": true }
        ]
      }
    ]
  }
}
  • 例: PreToolUse で git commit を検知したら、コーディング規約の skill でレビューさせる(@imaimai17468 の運用)。
  • "async": true を付けると、フックの完了を待たずに作業が進む(結果を使わない後処理向け)。

注意点

出典

X の元の投稿を開く