1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code に「緊急停止」と「危険コマンドのブロック」を足すプラグインを作った(標準ライブラリのみ)

1
Last updated at Posted at 2026-10-16

Claude Code に作業を任せていると、「今の、止めたかった」という瞬間があります。私の場合は、予約投稿や商品の公開など外部に書き込む作業を任せているので、止めたいときに確実に止まる仕組みが欲しくなりました。

そこで、Claude Code の フック(PreToolUse / PostToolUse) を使って、書き込み系のツール呼び出しにガードを掛けるプラグインを作りました。Python 標準ライブラリだけ、スクリプト1本です。

この記事の続き(動くコード付き)は、本『AIエージェントに無人で書き込ませる前の実装ガイド ― 二重送信・暴走・夜間停止を防ぐPython』の第9章「Claude Code 自体へのガード:エージェントの危険な操作を止める」に書きました。第1〜2章は無料で読めます。

無料・登録不要:この記事の内容を含む「AIエージェント 本番前チェックリスト」(25項目・1ページPDF・日本語)を、そのままダウンロードできます。
https://github.com/neuralalpha-ai/downloads/blob/main/agent-ops-preflight-checklist-ja-v1.0.pdf

できること

対象は Bash・Write・Edit・MultiEdit・NotebookEdit(何かを変える呼び出し)です。

  1. 緊急停止:プロジェクトに .claude/STOP というファイルを置くと、すべての書き込みが止まります(~/.claude/STOP なら全プロジェクト、環境変数 AGENT_STOP=1 でも可)。
  2. 危険なコマンドのブロック:main への force-push、rm -rf ~、curl ... | sh、DROP DATABASE、git reset --hard origin/main、chmod -R 777 を止めます。
  3. 1日の回数上限:たとえば「投稿スクリプトは1日2回まで」をプロジェクトごとに設定できます。
  4. 記録:実行の前に attempt、後に done を .claude/guardrails/ledger.jsonl に書きます。done のない attempt は「完了したか分からない呼び出し」なので、再実行の前に確認できます。

止めた理由は Claude 側にも表示され、「意図した操作ならユーザーに設定の変更を頼むように」というメッセージも一緒に渡します。

インストール

Claude Code で次の2行です。

/plugin marketplace add neuralalpha-ai/agent-guardrails
/plugin install agent-guardrails@neuralalpha

python3 が PATH にある必要があります(Windows で python しかない場合は、フックが失敗して「止めない」側に倒れます)。

設定(任意)

プロジェクトの .claude/guardrails.json に書きます。

{
  "allow_ids": ["curl-pipe-shell"],
  "deny": [
    { "id": "no-prod-deploy", "pattern": "deploy.*--env\\s+prod", "reason": "本番デプロイはCI経由" }
  ],
  "daily_caps": [
    { "id": "posts", "pattern": "post_once\\.py", "max": 2 }
  ]
}

設計で気をつけたこと

  • 設定ファイルが壊れていたら止める:JSON の書き間違いで、ルールが黙って無効になるのが一番怖いので、読めない設定は「ブロック」にしました。
  • ガード自体の想定外エラーは止めない:逆に、スクリプトのバグでセッション全体が動かなくなるのも困るので、それ以外の内部エラーは通して、記録にだけ残します。
  • 止めるのは人が外す:/agent-guardrails:stop-agent off を頼まれても、Claude は STOP ファイルを消せません(書き込みがブロックされているので)。外すのは人の操作にしています。

限界

これは「Claude Code のツール呼び出し」へのガードです。cron や CI、自分のボットのように Claude Code の外で動くスクリプトは見ていません。そちらは、スクリプト側に同じ仕組み(記録帳・緊急停止・上限)を入れる必要があります。その考え方は前の記事に書きました。

続きを読む

この記事の内容は、本『AIエージェントに無人で書き込ませる前の実装ガイド ― 二重送信・暴走・夜間停止を防ぐPython』の第9章「Claude Code 自体へのガード:エージェントの危険な操作を止める」で、動くコード付きで解説しています。

本の第1章・第2章は無料で読めます。まず無料の章から合うか確かめてください。

Kindle 版(Amazon)もあります。端末で読みたい方はこちらからどうぞ。

無人で書き込みをさせる前のチェック項目(25項目・日本語・PDF)は無料で配布しています。
https://neuralalpha.gumroad.com/l/agent-ops-preflight-ja?utm_source=qiita&utm_medium=article

スクリプト側の記録帳(1ファイル)はこちら。
https://github.com/neuralalpha-ai/agent-write-ledger

手元の仕組みをまず15分で点検したい方には、無料の本も用意しました(実際に起きた5つの失敗と、それぞれ3分で確かめる手順)。
https://zenn.dev/neuralalpha/books/agent-ops-free-checks

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?