
【第124回】Claude Codeのhooksで品質チェックを自動化する|止めるフックと止めないフック
原稿を保存するたびに、裏で2つのフックが動いています。
一つは、問題があればAIに差し戻します。もう一つは、何があっても止めません。
Claude Codeのhooksの記事を探すと、コミットの前にテストを走らせる、型をチェックする、といったコードの話が中心です。私が守っているのはコードではなく、noteの原稿です。
私は放射線技師として16年、300床以上の病院で働きながら、院内のAIチームのリーダーをしています。プログラミングは未経験から始めました。この記事は、非エンジニアが文章の品質にhooksを使っている一例です。
最初に作ったのは、止めないフックだった
最初に作ったフックは、表を画像にするものでした。2026年6月のことです。
noteの本文は表に対応していません。原稿に表を書いたら、画像にして差し込む必要があります。それまでは記事ごとに画像を作るスクリプトを書いていましたが、それを汎用にして、原稿を保存したら勝手に動くようにしました。
このフックは、何があっても作業を止めません。画像の生成に失敗しても、記録を残すだけで、原稿の編集はそのまま続きます。
止めるフックは、1か月後に足した
止めるほうのフックは、7月に足しました。
記事で使わない言い回しが26語あります。原稿を保存するたびに、この一覧と文末の形をチェックします。どれかに引っかかると、引っかかった箇所の一覧がAIに返されます。
保存そのものは終わっています。ただ、AIは返ってきた一覧を読んで、自分で直しにいきます。私が「ここ直して」と言う前に、直った原稿が出てきます。
全部を止めるわけではありません。文脈によっては使ってよい言葉は、警告として出すだけで止めません。止める語を絞っておかないと、正しい文まで書き直されてしまうからです。
使わない言い回しをCLAUDE.mdに書かずにこちらへ移した話は、前回に書きました。
・非エンジニアのCLAUDE.mdの書き方|何を書かないかで決まる
止めるか止めないかの分け方
2本を並べると、違いはこうなります。

分けた基準は、「直すのがAIの仕事かどうか」です。
言い回しの問題は、AIが原稿を直せば解決します。だから差し戻します。表の画像化が失敗したときは、AIが原稿をいくら直しても解決しません。差し戻しても、AIが困るだけです。だから止めません。
もう一つ決めたのは、止めるフックでも、チェックの仕組み自体が壊れたときは止めないことです。チェックが動かないせいで原稿が保存できない、という状態がいちばん困ります。チェックの不具合は、あとで自分が直せば済みます。
動かないときに見る2か所
フックが動かないと感じたら、私なら2か所を見ます。
1つ目は、対象を絞っているかどうかです。私のフックは、原稿のファイルにだけ反応するようにしています。画像版の原稿や、ネタ帳を編集しても動きません。動かないのが正常です。
設定ファイルに書いているのは、このくらいです。
"PostToolUse": [
{
"matcher": "Write|Edit|MultiEdit",
"hooks": [
{ "type": "command", "command": "python3 \"$CLAUDE_PROJECT_DIR/scripts/table_render_hook.py\"" },
{ "type": "command", "command": "python3 \"$CLAUDE_PROJECT_DIR/scripts/style_check_hook.py\"" }
]
}
]ファイルを書いた・直したときに、2本を順に呼ぶだけです。どの原稿を対象にするかは、呼ばれたスクリプトの側で判定しています。
2つ目は、使っているAIのほうです。私は同じ作業をCodexにも任せることがありますが、Codexには同じ仕組みがありません。そのため、作業手順を書いたファイルのほうに「保存したらチェックを実行する」と明記しています。フックに任せている部分は、フックがない環境では手順として書き直す必要があります。
非エンジニアが最初に作るなら
最初の1本は、止めないフックをおすすめします。
失敗しても作業が止まらないので、設定を間違えても困りません。動いていることを確かめながら、少しずつ慣れることができます。止めるフックは、何を止めたいかがはっきりしてからで十分です。
今日からできる一歩として、AIに作業させたあと、毎回手でやっていることを1つ書き出してみてください。保存したあとに毎回同じことをしているなら、それが最初のフックの候補です。
フックに寄せていくと、サブエージェントを呼ぶ場面も減りました。その話は次の回に書いています。
・Claude Codeのサブエージェントは、思ったほど出番がない|代わりに何で回しているか
[第125回:Coming Soon!]
まとめ
・原稿を保存するたびに、止めるフックと止めないフックが1本ずつ動いている
・最初に作ったのは、表を画像にする止めないフック。止めるフックは1か月後に足した
・分け方は「直すのがAIの仕事かどうか」。原稿を直せば解決するなら止める
・止めるフックでも、チェック自体が壊れたときは止めない
・最初の1本は止めないフックから。保存のあとに毎回手でやっていることが候補になる
同じように非エンジニアでhooksを使っている方がいたら、何を自動にしているか教えてください。コード以外の使い道はあまり見かけないので、知りたいです。
・Claude Codeの使い方【2026年版】|プログラミング未経験の放射線技師が業務ツールを作る手順
https://note.com/ri_ai_lab/n/n1ca5a293c232
・専門職の言語化力こそAI時代の武器|Vibe Codingの現場実感
https://note.com/ri_ai_lab/n/ne02ea2d05ccc
医療・介護の現場でのAI活用と、専門職が自分でツールを作る話を書いています。よろしければフォローしていただけると、更新をお届けできます。
本記事の内容は筆者個人の見解であり、所属する医療機関の公式見解を代表するものではありません。記載した設定と運用は筆者の環境での一例であり、すべての環境で同じ結果になることを保証するものではありません。Claude Codeのhooksの仕様、終了コードの扱い、設定の書き方は変更されることがあります。利用にあたっては、その時点の公式ドキュメントを確認してください。フックとして実行するスクリプトは、内容を理解したうえで設定してください。生成AIおよび開発ツールへの入力に、患者情報、個人が特定されうる情報、院内固有の非公開情報を含めないでください。本記事を参考にしたことによって生じた損害・不利益について、筆者は一切の責任を負いかねます。