要確認の箇所があります
- Windows 用(PowerShell 版)のフックは、作成時に実機(Windows)で動作を確認できていません。Mac・Linux 用(Python 版)は、Claude Code で実際に動かして確認しました
基本情報
- 経理にとっての価値
- 「元データは書き換えていない」「いつ、何をしたか」を、あとから証拠つきで説明できます。監査で、AIを使った作業の信頼性を示す材料になります。
- 難しさの目安
- Claude Code に慣れた方向け。設定ファイルを1つ置くだけで始められます
- 前提
- Lv3(Claude Code)でのレシピを、練習データで試したことがあること
- Mac・Linux は Python 3 が入っていること(Windows は PowerShell を使うため不要)
- input(元データ)と output(結果)のフォルダを分けて作業していること
- 情報の時点
- 2026年10月時点(公式情報の確認日:2026年10月12日)
ひな形
このページで説明している設定やファイルの見本です。自社の環境に合わせて書き換えて使ってください。
- フックのひな形一式(keiri-hooks-sample.zip)zipファイル。設定ファイル(Mac・Linux 用と Windows 用)と、3つのフックのプログラム、説明書(README.txt)が入っています。keiri-hooks-sample.zip をダウンロード
しくみ
フックは、Claude Code の作業の決まったタイミングで、自動的に動くプログラムです。公式ドキュメントでは「特定のことが必ず起きるようにする仕組み」と説明されています。
プロンプトや CLAUDE.md に「元データは書き換えないで」と書いても、それはお願いです。Claude が守らないこともあります。フックは、Claude の判断とは関係なく必ず動くので、守ってほしいルールを確実にできます。
| タイミング(イベント) | いつ動くか | このひな形でしていること |
|---|---|---|
| SessionStart | 新しく作業を始めたとき(ひな形では、再開時などには動かない設定) | 元データ(input)の「指紋」を記録する |
| PreToolUse | ファイルの書き込みやコマンドの実行の直前 | input・logs フォルダへの書き込みなら止め、止めたことを作業記録に残す |
| PostToolUse | ファイルの書き込みやコマンドの実行が成功したあと | 何をしたかを作業記録(CSV)に1行追加する |
| Stop | Claude が返答を終えるとき | 元データの指紋を比べ、変わっていたら報告させる |
指紋とは、ファイルの中身から計算される固有の値(ハッシュ値)です。中身が1文字でも変わると、まったく違う値になります。作業の前後で指紋を比べれば、元データが変わっていないことを確かめられます。
実際に試して分かったこと
このページを作るとき、ひな形を実際の Claude Code で試しました。
- 最初は「ファイルの書き込み(Edit・Write)」だけを止めるフックにしていました。すると Claude は、コマンドを使った別の方法で元データに追記してしまいました。作業記録のフックは、その操作をきちんと記録していました。
- そこで、コマンドの中身も確かめるようにし、さらに元データの指紋の確認を加えました。直したひな形では、Claude は書き込みを止められ、「フックが input フォルダの書き換えを禁止しているため、変更していません」と報告しました。
この経験から言えるのは、1つの仕組みだけに頼らず、「止める」と「確かめる」を組み合わせることの大切さです。経理の内部統制で、予防的な統制と発見的な統制を組み合わせるのと同じ考え方です。
設定のしかた
1. ひな形を置く
ひな形(keiri-hooks-sample.zip)を展開し、中の .claude フォルダを、作業用のフォルダの直下にコピーします。
勘定照合/
├── .claude/
│ ├── settings.json … フックの設定(Windows は settings.windows.json の名前を変えて使う)
│ └── hooks/ … フックのプログラム
├── input/ … 元データ(フックで保護される)
├── output/ … 結果の保存先
└── logs/ … 作業記録(自動で作られ、フックで保護される)
Windows の場合は、settings.windows.json の名前を settings.json に変えます(もとの settings.json は削除します)。Mac では、「.」で始まるフォルダは Finder で隠れています。Command+Shift+.(ピリオド)で表示できます。
2. 設定ファイルの中身
Mac・Linux 用の設定(一部)は次のとおりです。matcher は「どの道具のときに動くか」、${CLAUDE_PROJECT_DIR} は「作業用のフォルダの場所」を表します。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|Write|Bash",
"hooks": [
{
"type": "command",
"command": "python3",
"args": ["${CLAUDE_PROJECT_DIR}/.claude/hooks/guard_input.py"]
}
]
}
]
}
}
フックのプログラムが「終了コード2」で終わると、その操作は止められ、プログラムが出したメッセージが Claude に伝わります(公式ドキュメントより)。ひな形では「input フォルダのファイルは書き換えられません。結果は output フォルダに保存してください」と伝えるようにしています。
3. 動きを確かめる
- Claude Code でフォルダを開きます。フォルダを信頼するか聞かれたら、
.claudeの中身を確認してから信頼します。信頼するまで、フックは動きません(公式ドキュメントより)。 - 入力欄に
/hooksと入力し、4つのフックが表示されることを確かめます。 - 「input/ のCSVに1行追加して」と頼み、止められることを確かめます。
logs/claude_sagyou_kiroku.csvを Excel で開き、記録が残っていることを確かめます。
作業記録の例
logs/claude_sagyou_kiroku.csv には、次のような記録が残ります。
| 日時 | セッションID | 使った道具 | 対象(ファイル・コマンド) |
|---|---|---|---|
| 2026-10-12 10:35:40 | f7ce… | 元データの確認 | 作業開始時の元データの指紋を記録(2ファイル) |
| 2026-10-12 10:36:02 | f7ce… | Bash | python3 output/2026-09/shogo.py |
| 2026-10-12 10:36:05 | f7ce… | Write | …/output/2026-09/sai_ichiran_202609.csv |
| 2026-10-12 10:36:10 | f7ce… | 止めた操作(Bash) | printf ‘1,2’ >> input/a.csv |
| 2026-10-12 10:36:30 | f7ce… | 元データの確認 | 元データの変更なし(2ファイル) |
この記録と、テーマD(中級者の次の一歩)で作る照合の記録を合わせて保管すると、「どのデータを使い、どう処理し、元データは変わっていない」ことを説明できます。
必ず行う
自分で確かめること
仕組みを作ったら、本番で使う前に、次の点を自分で確かめてください。
練習用のフォルダで、ガードが働くことを確かめたか
Claude Code に「input/ のCSVに1行追加して」と頼み、止められることを確かめます。止められたら、logs/claude_sagyou_kiroku.csv に「止めた操作」として記録が残っているかも見ます(止めた操作は実行されないため、ひな形では止めるフックの中で記録しています)。
結果の保存(output への書き込み)は止められていないか
ふだんのレシピ(R1のLv3など)を実行し、結果が output フォルダに保存されることを確かめます。必要な作業まで止めていないかを見ます。
作業記録に、作業の始めと終わりの「元データの確認」が残っているか
記録の中に「作業開始時の元データの指紋を記録」と「元データの変更なし」の行があるかを確かめます。「変更されています」の行があれば、すぐに原因を調べます。
フックの中身を、自分(または詳しい人)が読んで確かめたか
フックはあなたのパソコンの権限で動くプログラムです。ひな形であっても、中身を読んでから使います。入力欄に /hooks と入力すると、設定されたフックの一覧を見られます。
元データのコピーを別の場所に残しているか
フックの判定は完全ではありません。元データは、Claude Code で開くフォルダとは別の場所にも保管しておきます。
注意点
- フックは、あなたのパソコンの権限でプログラムを動かします。中身を確認したものだけを使い、出どころの分からないフックは入れないでください(公式ドキュメントより)。
- コマンドの判定は「書き込みに使われやすい記号・命令」を探す簡易的なものです。Claude が作ったプログラムの中でファイルを書き換える場合などは、止められないことがあります。そのため、元データの指紋で「変わっていないこと」を確かめる仕組みを組み合わせています。
- Windows では、ファイルの場所が「\」(バックスラッシュ)で区切られて届きます。ひな形はこれに対応していますが、自分で書き換えるときは注意してください(公式ドキュメントより)。
- Windows 用(PowerShell 版)のフックは、作成時に実機で動作を確認できていません。練習用のフォルダで動きを確かめてから使ってください。
このページに出てくる用語
確認した公式情報
このページの説明は、次の公式情報で確認しました。Claude の機能や制度は変わることがあるため、使う前に最新の情報を確認してください。
| 記事名 | URL | 確認日 |
|---|---|---|
| フックの使い方(Automate actions with hooks) | https://code.claude.com/docs/en/hooks-guide | 2026年10月12日 |
| フックのリファレンス(Hooks reference) | https://code.claude.com/docs/en/hooks | 2026年10月12日 |
| 設定ファイル(Settings) | https://code.claude.com/docs/en/settings | 2026年10月12日 |
| 権限(Permissions) | https://code.claude.com/docs/en/permissions | 2026年10月12日 |