◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/Claude Code
⟐ Claude Code/2026-07-15上級

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

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

claude-code132automation55mcp20permissionunattended3

✦ プレミアム記事

深夜 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-03-24
Claude Code × unity-mcp でゲーム開発を自動化する方法 — 企画から公開までの完全ワークフロー
Claude Code と unity-mcp を組み合わせて Unity ゲーム開発を自動化する方法を解説。hcg-workflows スキルによる8フェーズワークフローで企画から公開まで効率化できます。
⟐ Claude Code2026-04-30
Claude Code Skills を組み合わせる設計術 — 単一スキルでは届かない自動化を作る
Claude Code の Skills を1つずつ作るところから一歩進み、複数スキルを連携させて自動化を組む設計手法をお伝えします。Pipeline・条件分岐・メタスキルの3パターンとよくある落とし穴を実装例付きで詳述します。
⟐ Claude Code2026-03-28
Claude Code × Playwright で E2E テストを本番運用に乗せる — 落とし穴と導入の判断基準
Claude Code と Playwright を組み合わせて E2E テストを本番運用するための実装パターンと、導入効果の測り方。Cloudflare Workers/Pages preview deployment 下での落とし穴と、個人開発者がテストを導入する判断基準まで踏み込んで解説します。