CLAUDE LABEN
SUNSET — 旧 Workbench と実験的プロンプトツール API の廃止は明日8月17日です。残り1日となりましたLATEST — 最新は8月15日の v2.1.233 です。GitLab のマージリクエスト URL が --worktree と claude agents で扱えるようになり、MR は !N 形式で表示されますSECURITY — Windows で NT の \??\ デバイスプレフィックスを含むパスが UNC 検証をすり抜ける問題が直りました。NTLM 資格情報が漏れる経路が塞がれていますTODO — Opus 4.8・Sonnet 5・Fable 5・Mythos 5 以降では TodoWrite と Task 系ツールが既定で無効になりました。CLAUDE_CODE_ENABLE_TODO_TOOLS=1 で戻せますFORK — 8月14日の v2.1.232 で subagent_type: 'fork' が既定になり、会話全体とプロンプトキャッシュをそのまま引き継げるようになっていますMENTION — プロンプトで @ を打つと別のセッションを名前で呼び出せます。SendMessage がそのセッションへ直接届きますSUNSET — 旧 Workbench と実験的プロンプトツール API の廃止は明日8月17日です。残り1日となりましたLATEST — 最新は8月15日の v2.1.233 です。GitLab のマージリクエスト URL が --worktree と claude agents で扱えるようになり、MR は !N 形式で表示されますSECURITY — Windows で NT の \??\ デバイスプレフィックスを含むパスが UNC 検証をすり抜ける問題が直りました。NTLM 資格情報が漏れる経路が塞がれていますTODO — Opus 4.8・Sonnet 5・Fable 5・Mythos 5 以降では TodoWrite と Task 系ツールが既定で無効になりました。CLAUDE_CODE_ENABLE_TODO_TOOLS=1 で戻せますFORK — 8月14日の v2.1.232 で subagent_type: 'fork' が既定になり、会話全体とプロンプトキャッシュをそのまま引き継げるようになっていますMENTION — プロンプトで @ を打つと別のセッションを名前で呼び出せます。SendMessage がそのセッションへ直接届きます
記事一覧/Claude Code
Claude Code/2026-07-15上級

無人実行で auto モードの確認要求を止めずに捌く — permission-prompt-tool で deny-by-default に応える

auto モードの事前確認は、手元で作業しているときは頼もしい味方ですが、深夜の無人実行では「確認待ち」で朝まで止まる原因になります。permission-prompt-tool で確認要求を受け止め、deny-by-default で自動判定して台帳に残す構成を、動くコードつきでまとめました。

claude-code129automation54mcp19permission2unattended3

プレミアム記事

深夜 2 時に走らせているはずの片付けジョブが、朝になっても終わっていませんでした。ログの最後の行は「実行中」のまま。原因は単純で、auto モードがあるコマンドの実行前に確認を求め、無人のプロセスには答える相手がいなかったのです。エラーで落ちてくれれば再実行できます。けれど「止まったまま生きている」のが一番たちが悪い、と身にしみた夜でした。

個人開発で複数のサイトを運営していて、その更新は夜間にまとめて処理しています。ひとりで回している以上、止まったジョブに朝まで気づけない構造こそ避けたいのです。手元にいるときの auto モードは、危うい削除の前に一呼吸置いてくれる頼もしい存在です。ところが同じ挙動が、無人実行では「返事を待って固まる」に変わります。そこで要るのが、その確認要求を握りつぶさずに受け止め、自分のルールで自動判定する仕組みです。以下では permission-prompt-tool の組み方を、実際に動くコードで残しておきます。

なぜ auto モードの事前確認は無人実行と相性が悪いのか

auto モードは、文脈から解決できない変数を含む破壊的なコマンドや、判断の分かれる操作の前に確認を挟みます。対話セッションなら、そこで人がキーを押せば進みます。ところが claude -p(headless / print モード)で走らせている無人ジョブには、押す人がいません。

このとき起きるのは、次の 3 つのどれかです。第一に、権限が渡っていないツールを呼ぼうとして即座に拒否され、ターンが error で終わる。第二に、確認を求める仕組みが用意されていないまま「許可されていない操作」として静かにスキップされ、あなたが期待した副作用が起きない。第三に、確認の受け皿だけはあるのに応答が返らず、プロセスがぶら下がる。どれも「成功でも失敗でもない灰色」で、cron のログには残りにくいのが厄介です。

対話の許可ダイアログを無人実行で消す発想そのものは、Claude Code Skill を無人で動かす設計で扱いました。そちらは「そもそも確認を発生させない」方向です。この記事はもう一歩踏み込んで、「確認は発生してよい。ただし人ではなくコードが、記録を残しながら答える」構成をつくります。

permission-prompt-tool が「確認の受け皿」になる

Claude Code には、権限判断を外部のツールに委ねる仕組みがあります。起動時に --permission-prompt-tool を指定すると、Claude がツールを実行してよいか迷ったときに、そのツールへ判断を問い合わせます。問い合わせを受け取るのは、あなたが用意した MCP サーバー上のツールです。

問い合わせには、これから実行しようとしているツール名(tool_name)と、その入力(input)が渡ってきます。あなたのツールは、次のどちらかの形の JSON を返します。

返す判断意味
許可{ "behavior": "allow", "updatedInput": { ... } }実行を許可します。必要なら入力を書き換えて渡せます
拒否{ "behavior": "deny", "message": "理由" }実行を止めます。message は判断の記録に残します

つまり、確認ダイアログの「はい / いいえ」を、あなたのコードが返せるようになります。無人実行で沈黙していた部分に、機械的な意思決定を差し込めるということです。返り値の細かな形はバージョンで動くことがあるため、導入時にお使いの Claude Code で一度実際の問い合わせ内容を出力して確かめておくと安心です。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
無人実行が確認要求で沈黙する仕組みを理解し、どこで止まるのかを切り分けられるようになります
permission-prompt-tool を MCP サーバーとして実装し、許可・拒否・入力の書き換えを自分のルールで返せるようになります
決定を台帳に残し、stream-json の result で終了コードと通知を分けて、失敗を握りつぶさない運用に落とし込めます
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

Claude Code2026-07-17
テーブルが「… 2,847 more rows」で切れていた朝 — 描画上限とトークン計上を切り離して、ツール出力を設計し直す
Claude Code 2.1.209 で 200 行超の markdown テーブルは先頭 200 行+残り件数の表示になりました。省略されるのは描画だけで、モデルは全行を受け取ります。この差を測り、ツール出力を集約型へ組み替える設計をまとめます。
Claude Code2026-06-18
無人で動くエージェントに渡すMCPツールを絞り込む — ポリシー強制で権限を deny-by-default にする
無人実行のClaude Codeエージェントは、許可ダイアログに頼れないぶんツールの届く範囲がそのまま事故の範囲になります。MCPサーバーとツールを deny-by-default で締め、必要なものだけを許可リストで渡す構成を実例つきでまとめました。
Claude Code2026-03-24
Claude Code × unity-mcp でゲーム開発を自動化する方法 — 企画から公開までの完全ワークフロー
Claude Code と unity-mcp を組み合わせて Unity ゲーム開発を自動化する方法を解説。hcg-workflows スキルによる8フェーズワークフローで企画から公開まで効率化できます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →