
Claude Nudge とは|Claude Code の規約自動ガードツールを解説
Claude Code に対してどれだけ丁寧なルールを伝えても、セッションが長くなると遵守率が落ちる——開発者ならこの現象に心当たりがあるはずです。Nudge は、その問題に正面から向き合ったオープンソースツールです。Claude Code の Hooks API に直結し、コードが生成される瞬間にルール違反を検出・修正することで、コーディング規約を「常時施行」する仕組みを提供します。
目次 (9)
Nudge とは — Claude Code 向けの「即時ガードレール」OSS
Nudge(ナッジ)は、attunehq が GitHub 上で公開しているオープンソースプロジェクトです(Apache-2.0 ライセンス)。一言で言うと、Claude Code が規約に違反したコードを書こうとした瞬間に割り込み、正しい書き方に誘導するガードレールシステムです。
従来、コーディング規約の伝達手段は CLAUDE.md やシステムプロンプトへの記載でした。しかしどれだけ丁寧に書いても、セッションのターン数が増えるにつれて指示の重みが薄れていく問題があります。Nudge はこの問題を、プロンプトではなく Hooks(フック) を使った仕組みで解決します。
対応ツールは Claude Code と Codex CLI で、どちらも nudge setup コマンド 1 つでフック設定が完了します。
なぜ長いセッションでルールが守られなくなるのか
Claude Code に「use 文はファイル先頭に置くこと」「型アノテーションは省略しないこと」と伝えても、複雑なリファクタリングを進めるうちにその指示が後回しになっていきます。
これは「instruction compliance drift(指示遵守の劣化)」と呼ばれる現象です。Attune のブログ記事(Just-in-Time Guardrails for Agents)では、長いコンテキスト内ではモデルの注意がスタイルガイドより「動作するコードを出す」方向へシフトしていくと説明しています。
システムプロンプトや CLAUDE.md にルールを書くことは重要ですが、書いてあっても長期セッションでは見失われるという現実的な限界があります。Nudge はその限界を補完するレイヤーとして設計されています。
4 つの動作モード — Hooks API との連携
Nudge は Claude Code の Hooks API を活用し、ツール呼び出しの直前・直後でルールを評価します。動作は 4 つのモードに分かれます。
Interrupt(割り込み)
PreToolUse フックでファイル書き込みを止め、違反内容の説明とともに修正を促します。Claude Code がコードを書こうとした瞬間に「この書き方はルール違反です。代わりに〇〇を使ってください」とフィードバックを返します。
Substitute(差し替え) Bash コマンドのような決定論的な操作は、自動的に代替コマンドに書き換えます。開発者が意図した処理を維持しながら、規約に沿った形に変換します。
Continue(インジェクト)
UserPromptSubmit フックでユーザープロンプトの送信時にコンテキスト情報を追加注入します。「このプロジェクトでは〇〇パターンを使う」という補足を毎ターン自動で加える仕組みです。
Passthrough(スルー) どのルールにも合致しない操作はそのまま通します。すべての操作を止めるのではなく、定義されたパターンにのみ反応する設計です。
ルールの書き方 — 3 種類のマッチャー
Nudge のルールは設定ファイルに記述します。「引っかかるかどうか」を判定するマッチャーは 3 種類あります。
- 正規表現マッチャー — テキストパターンで違反を検出します。シンプルな文字列ルールに適しています。
- 構文木クエリ(Syntax Tree Query) — コードの AST(抽象構文木)を解析して構造的な違反を検出します。import の位置や型アノテーションの書き方など、コンテキスト依存のルールに向いています。
- 外部コマンドバリデーター — カスタムスクリプトをバリデーターとして呼び出せます。既存の Lint ツールや独自チェッカーと組み合わせることができます。
また、Markdown コードブロックを対象とした指定もできるため、ドキュメント内のサンプルコードにもルールを適用できます。
設定ファイルは Claude Code 自身に書かせることもできます。GitHub リポジトリには「既存のコーディングスタイルドキュメントを渡して Nudge の設定ファイルを生成させる」という使い方が紹介されています。
実践例 — Rust プロジェクトでの活用
Attune のブログで紹介されている具体例を見ると、ユースケースがつかみやすくなります。
import の先頭配置(Rust)
Rust では use 文をファイル先頭に置く慣習があります。Claude Code がファイル途中に use を挿入しようとした場合、Nudge の構文木マッチャーがこれを検出し、Interrupt モードで差し戻します。
型アノテーションの統一 「変数宣言に型アノテーションを必ず付ける」「特定の型エイリアスを使う」といった規約も、正規表現または構文木クエリで定義できます。長いセッションで Claude Code がアノテーションを省略し始めたとき、Nudge が即座に指摘します。
文字列作成メソッドの統一
String::from("...") と "...".to_string() のどちらかに統一するといったルールも、正規表現マッチャーで対応可能です。
CI との統合 — nudge check コマンド
Nudge はリアルタイムの Hooks 連携だけでなく、スタンドアロンの nudge check コマンドも提供しています。
nudge check
このコマンドを pre-commit フックや CI パイプラインに組み込むことで、コードベース全体をルールに照らして一括チェックできます。Claude Code を使わない手書きコードや、他の開発者が書いたコードにも規約チェックを適用できるため、チーム全体のコード品質管理ツールとしても機能します。
Nudge Security との違い — 名前が似た別サービスに注意
「claude nudge」で検索すると、Nudge Security という別サービスも上位に登場します。Nudge Security は組織内の Claude Managed Agents を一元管理・ガバナンスするエンタープライズ向けセキュリティプラットフォームです。
公開された Claude Managed Agents の発見、ハードコードされた認証情報の検出、未認証接続のリスク検知、承認ワークフローの管理などを担います。
attunehq の Nudge(コーディング規約ガード)と Nudge Security(組織ガバナンス)は名前が似ているだけで、対象も機能もまったく異なります。検索結果で混同しないよう注意が必要です。
セットアップ手順
インストールは macOS・Linux・Windows のパッケージインストーラーから行えます。ソースコードからビルドする場合は Rust の Cargo を使います。
- GitHub の README に従って Nudge をインストールする
- プロジェクトルートで
nudge claude setupを実行する - 生成された設定ファイルにルールを記述する
- Claude Code を起動すると自動的に Hooks が有効化される
Codex CLI を使う場合は手順 2 を nudge codex setup に替えます。
現状の成熟度と注意点
GitHub リポジトリでは「not yet production-grade software」と明記されています。2026 年 6 月時点でのスター数は 24 と初期フェーズにあるプロジェクトです。
本番プロジェクトへ導入する際は、まず限定的なルールセットから始め、Interrupt が意図しない場面で発火しないか検証しながら段階的に拡張することをおすすめします。Claude Code の Hooks API 自体も今後進化が予想されるインターフェースのため、メジャーアップデート時には Nudge 側の対応状況を GitHub の Releases ページで確認してください。
コーディング規約の「書いたけど守られない」問題は、多くのチームが抱える共通の悩みです。Nudge は軽量で導入障壁が低く、まず小規模なプロジェクトで試してみる価値のあるツールです。