
第9章 人がいなくても仕事が進む。Hooksと自動化の仕組み
Hooksは「特定のタイミングで、必ず決まった処理を実行する仕組み」です。CLAUDE.mdのルールはClaudeが「守ろうとする」ものですが、Hooksはシステムが「必ず実行する」ものです。絶対に外したくない処理はHooksに任せましょう。
9-1 主な発動タイミング
PreToolUse(ツールを使う直前):危険なコマンドをブロックする
PostToolUse(ツールを使った直後):編集したファイルを自動整形する
UserPromptSubmit(あなたが指示を送信したとき):日付や注意事項を自動で添える
Notification(Claudeが確認を待っているとき):デスクトップ通知を出す
Stop(Claudeが応答を終えたとき):完了音を鳴らす、テストを実行する
SessionStart(会話を始めたとき):最新の作業状況を読み込ませる
9-2 設定の書き方
Hooksは第5章と同じ settings.json に書きます。matcher で対象のツールを絞り、command に実行するコマンドを書きます。自分で書くのが不安なら、「ファイルを編集したら自動で整形するHookを設定して」とClaudeに頼めば書いてくれます。
実用例1:編集後に自動整形
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{ "type": "command", "command": "npx prettier --write ." }
]
}
]
}
}Claudeがファイルを書き換えるたびに整形ツールが走り、見た目が常にそろいます。
実用例2:危険な操作を止める
PreToolUse のHookが終了コード 2 で終わると、そのツール実行はブロックされ、エラー出力の内容がClaudeに伝えられます。「本番用フォルダへの書き込みは禁止」といったルールを、Claudeの判断に頼らず確実に強制できます。Hookには実行しようとしたツール名や引数がJSONで渡されるので、スクリプトでそれを調べて判定します。
実用例3:作業完了を通知する
長い作業を任せて別のことをしているとき、Stop と Notification に通知音やデスクトップ通知を設定しておくと、「終わった」「確認待ち」にすぐ気づけます。
9-3 ヘッドレスモード:人がいなくても動かす
claude -p を使うと、対話画面を開かずに1回分の仕事を実行できます。スクリプトや定期実行に組み込めるのが特徴です。
# ログファイルを要約してファイルに保存
cat error.log | claude -p "このログから多いエラー上位5つと原因の予想を箇条書きで" > report.md
# 結果をJSONで受け取る
claude -p "package.jsonの依存パッケージを一覧にして" --output-format json無人で動かすときは確認画面に答える人がいないため、--allowedTools で使ってよいツールを最小限に絞って渡します。
9-4 GitHubとの連携
Claude Code内で /install-github-app を実行すると、GitHub Actionsとの連携を設定できます。設定後は、Issueやプルリクエストのコメントで @claude と呼びかけるだけで、クラウド上のClaudeが修正やレビューを行います。
9-5 実用例:毎朝のレポートを自動化
WindowsのタスクスケジューラやMacのcronで、毎朝次のコマンドを動かすように登録します。
claude -p "data/ の昨日分のCSVを集計し、前日比を含む日報を reports/ に日付付きで保存して" --allowedTools "Read,Write,Glob"出社したら日報ができている、という状態が作れます。最初の数日は必ず出力を目で確かめ、指示文を調整してから任せきりにしましょう。
次章予告:使いこなす人の型。実践ワークフローと失敗しない運用術
紹介すること:ここまでの機能を組み合わせた「探る → 計画 → 実行 → 確認」の型、3つの実践例、よくある失敗と対策
得られること:バラバラに覚えた機能が、ひとつの仕事の流れとしてつながります。どんな作業にも応用できる「自分の勝ちパターン」が手に入ります