マキモノ
AIのしつけ無料✅ 公式検証済みv1.0.0 / 更新

ルール強制 hook が本番で壊れる3つの型と検証方法

AIに運用ルールを守らせる hook を作った後に必ず起きる壊れ方(部分一致の誤爆・読む範囲のバグ・同期で消える)と、契約テスト5ケース+配布確認の型

出品者: seisaku-team@orgiast.jp📖 読込 約1,536トークン (約2円)💰 コスパ 26
トークン節約メーター94%節約
ゼロからAIに作らせた場合4.2万トークン
このMDを読ませた場合2,400トークン

4万トークンの節約 (API料金換算で約59円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。

この巻物について

ルール強制 hook が本番で壊れる3つの型と検証方法」は、AIのしつけカテゴリのAI指示書(MDファイル)です。AIに運用ルールを守らせる hook を作った後に必ず起きる壊れ方(部分一致の誤爆・読む範囲のバグ・同期で消える)と、契約テスト5ケース+配布確認の型この巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約4万トークン(API料金換算で約59円)・94%のトークンを節約できます。

カテゴリ
AIのしつけ
対応AI
claude-code、cursor、codex-cli
ライセンス
商用利用可 (再販不可)
価格
無料
ゼロから開発時
約4.2万トークン
この巻物使用時
約2,400トークン
節約量
約4万トークン (約59円)
更新日
2026-09-03

使い方 (AIに渡す3つの方法)

いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。

⬇ .md をダウンロード
claude "https://makimono-md.vercel.app/api/v1/files/hook-3/raw を読み込んで、この指示書どおりに実装して"
claude-codecursorcodex-cliライセンス: 商用利用可 (再販不可)

中身

運用ルール強制 hook が本番で壊れる3つの型と、その検証方法

前提: 「ルール文を足しても守られない。守らせたいなら実行を機械的に止める(Stop hook)」という設計は既知。この記事は「作った後に必ず起きる壊れ方」を扱う。


型1: 部分一致による誤爆(言及と実行を区別できない)

症状

禁止語・トリガー語を本文に部分一致でgrepすると、「その語について説明している文」まで検知して止まる。

実例: 手作業依頼を検出する hook が、自分の完了報告——「手作業を頼む前に検証する、と記録した」——で発火し、応答が出せなくなった。

さらに悪化するパターンは、表・引用・コードブロックの中に手順例を貼っただけで発火するケース。ユーザーが「例えばこの禁止行為をやったらどうなる?」と質問しただけでも止まる。

直し方

  • (a) トリガーは「依頼の言い回し」だけに絞る。判定語を許可する。単語単位ではなく、命令形+人称のパターンで検知する(例:「〜してください」「押してください」)。
  • (b) 判定対象からコードフェンス・引用・表を除去してから評価する。
  • (c) 過去の話法(「〜と記録した」「〜だった」「〜と書いた」)を除外する。
# 擬似コード: トリガー判定の絞り込み
def should_block(text):
    cleaned = strip_code_blocks_and_quotes(text)
    if is_past_tense_report(cleaned):  # 「〜と記録した」等
        return False
    return contains_command_pattern(cleaned, ["ください", "して", "依頼する"])

型2: 読む範囲の間違い(スコープバグ)

症状

transcript を末尾から遡って集めると「1つ前のユーザーターン」まで拾ってしまう。今のターンでは何も悪いことをしていないのに、前のターンの不備で止まる。

逆に範囲を狭めすぎると、会話の流れを無視して全部すり抜ける。

重要

この不具合は判定関数(judge)の単体テストでは絶対に出ない。入力を人が作るから。判定関数は「渡された文字列」に対してだけ正しく動き、「どの文字列を渡すか」の範囲選択ロジックのバグは、統合テストまで表面化しない。

直し方

「最後のユーザー発言より後ろ」だけを対象にする、と明文化しコードに落とす。

# 擬似コード: スコープの明文化
def get_relevant_text(transcript):
    last_user_idx = max(i for i, m in enumerate(transcript) if m.role == "user")
    # 最後のユーザー発言の直後から現在まで
    return transcript[last_user_idx + 1:]

型3: 配布が消える(ローカルに置いた≠効いている)

症状

共通ルール置き場が git clone ではなく zip 展開等で丸ごと置き換わる運用だと、ローカルに置いた hook 本体が次回同期で消える。

その結果、設定ファイル側の登録だけが残り、存在しないファイルを呼ぶ状態になる。hook は fail-open 設計が定石のため、エラーにならず誰も気付かない。

直し方

正本リポジトリに入るまで「完了」と言わない。 保護ブランチなら PR とマージが要る。ローカルで chmod +x やパス設定をしても、それは一時的な効力に過ぎない。


検証: 契約テストを書く(単体テストでは足りない)

hook の契約は:「stdin に JSON → stdout に1行 JSON、例外は握って exit 0」。テストもこの契約単位で書く。

最低5ケース

  1. 不備のある依頼 → block
  2. 完全な手順 → pass
  3. ループ防止フラグが立っていたら → 常に pass(hook 自身が再起動しないため)
  4. 壊れた入力 → exit 0(fail-open の確認)
  5. 実際に誤爆した本物の応答を固定データにした回帰テスト

テスト種別とカバレッジ

テスト種別捕まえられる型捕まえられない型
judge 関数の単体テスト型1(判定ロジックの誤り)型2(スコープバグ)、型3(配布消滅)
契約テスト(stdin→stdout)型1、型2(入力の作り方次第)型3
実データ回帰テスト型1(特に誤爆の再発)型2、型3
配布確認テスト型3のみ型1、型2

回帰テストは「実際に止まった応答の全文」をそのまま固定データにするのが最も効く。「止まった理由」を考えて短く整形したデータでは、誤爆の微妙な文脈が失われる。

# 契約テストの例(fail-open 確認も含む)
echo '{"invalid json"' | ./check_hook
# 期待: exit code 0、処理継続

配布後の確認手順(3行)

  1. 正本に入ったか: コミット/PR番号で確認する。
  2. ローカルの当該ファイルをわざと削除 → 同期を実行 → 復活するか。 復活すれば正本に入っている証拠。消えたままなら、ローカル直置きでしか存在していない。
  3. 誤爆の回帰と、不備の検知の両方を再実行する。 片方だけ通しても意味がない。

まとめ

fail-open は正しい設計だが、「静かに無効化される」ことと表裏一体。ファイルが存在し、実行権限があり、最新版であることを確認する死活監視は、hook 本体とは別の仕組みで測る必要がある。

また、hook の動作確認だけに時間をかけず、「入力をどう切り出すか」と「デプロイで消えないか」を常に検証対象に含めること。この2つは判定ロジックのバグではなく、テストで「書くべきものが抜けている」ために検出されない。

作った直後に一度だけ「消して・同期して・戻るか」を確かめておけば、静かな無効化は防げる。

よくある質問

「ルール強制 hook が本番で壊れる3つの型と検証方法」とは何ですか?

AIに運用ルールを守らせる hook を作った後に必ず起きる壊れ方(部分一致の誤爆・読む範囲のバグ・同期で消える)と、契約テスト5ケース+配布確認の型

どれくらいトークン(費用)を節約できますか?

ゼロから開発すると約4.2万トークンかかりますが、この巻物を使えば約2,400トークンで済みます。差し引き約4万トークン(API料金換算で約59円)・94%の節約です。

どうやって使いますか?

無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。

どのAIツールに対応していますか?

claude-code、cursor、codex-cli に対応しています。

商用利用できますか?

ライセンスは「商用利用可 (再販不可)」です。

🤝 自分でAIを動かすのは、まだ不安…という方へ

この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。

AI代行堂を見る →

関連する巻物

AIのしつけ無料✅ 公式

AI運用ルールを機械的に守らせる hook 設計 — ルール文が守られない本当の理由

チームでAIエージェントを使うと運用ルールが必ず守られなくなる。真因は「読んでいない」ではなく hook がそのマシンで登録されていない/委譲先が沈黙して壊れていること。禁止=実行前拒否・誘導=依頼時の具体コマンド注入・担保=セッション開始時の自己修復の3層、明示例外の短命トークン、warn→blockの段階昇格、BOM/サンドボックス/timeout など失敗が沈黙する罠と、環境依存で落ちないテストの作り方までを実測ベースでまとめた導入手順。

95%節約
24.6万トークン (料金換算 約370円)
新着
AIのしつけ無料✅ 公式

マキモノ検索スキル — AIが自分で巻物を探して使えるようになるMD

あなたのAIエージェント (Claude Code等) にこのMDを読ませると、開発タスクを受けたとき自動でマキモノAPIを検索し、最適な指示書を取得してから作業するようになります。導入は貼るだけ。

97%節約
11.6万トークン (料金換算 約170円)
新着
AIのしつけ無料✅ 公式

無人AIセッションのバックグラウンド委譲が静かに殺される事故を潰す

ヘッドレスで起動したAIエージェントがバックグラウンド委譲した子プロセスは、ターン終了で kill されるのに親は exit 0 を返す。機械的に deny するフック、通知の作り方、対応中フラグの戻し忘れ、Windows製worktreeがLinux側から解決できない罠までを含む恒久対策。

97%節約
11.6万トークン (料金換算 約170円)
新着

この巻物、誰かのトークンも救えます

𝕏 で節約レシートをシェア