エージェントに git push をさせようとすると拒否されます。直前にこちらが「いいよ」と言っていても拒否されます。会話の同意は、実行時に参照される承認とは別物だからです。

通るのは AskUserQuestion で選択肢を出し、選ばれた結果に従って実行する形だけです。これを知らないと、拒否がツールの故障のように見えます。

push の話だと思っていた

この手順は最初 push 用に書いてありました。その後、8 GB に載らない ollama のモデルを削除しようとして、同じ形で落ちました。

Permission for this action was denied by the Claude Code auto mode classifier.

curl -X DELETE です。git は関係ありません。拒否されたのは push だからではなく、取り返しがつかないからでした。

AskUserQuestion で対象 8 本とそれぞれのサイズを出して選んでもらうと、同じコマンドがそのまま通り、152 GB 空きました。手順は 1 文字も変えていません。

聞く前に確かめること

承認を求める質問は、何が起きるかを名指ししていないと意味がありません。記憶ではなく、その場でシステムから読み返します。

操作読み返すもの
pushブランチと git log @{u}..HEAD
force push・履歴書き換え変わるコミット数、内容が同一かどうか、他のクローンに reset --hard が要ること
amend / reset --hard / rebase何が捨てられるか、それが push 済みか
revertどのコミットか。revert はコミットを足すだけで何も壊さないので、そう言う
ファイル・モデル・イメージの削除一覧、各サイズ、合計、再取得できるか
サービスやコンテナの停止何が落ちるか、他に誰が使っているか、戻し方

revert の行は逆向きの注意です。無い危険を並べると、次の本物が素通りします。

承認しても通らないとき

承認を取ったうえでなお拒否されることがあります。そのときは止めて、何をしようとしていたかと、実行に何が要るかを伝えて渡します。

別のツールで同じ効果を出しにいってはいけません。拒否は障害ではなく、そこで止まるべきだという合図です。

選択は 1 回ぶん

選ばれた選択肢が覆うのは、その質問が名指しした操作だけです。次の操作にも、同じ操作の範囲を広げた版にも及びません。1 回の承認を根拠に 2 回目を実行すると、承認の記録と実際に起きたことがずれます。

質問文はそのまま記録になります。後からログを読む人が、何が承認されたのかを組み立て直さずに読めるように書きます。