今週GitHub Issueで10件以上のパーミッション関連の質問に回答した。同じパターンで困っている人が多い。
罠1: allowがaskを無効化する(17リアクション)
{
"permissions": {
"allow": ["Bash(*)"],
"ask": ["Bash(rm *)"]
}
}
期待: 安全なコマンドは自動許可、rmだけ確認。
実際: 全コマンドが自動許可。askは完全に無視される。 (#6527)
回避策: PreToolUseフックで危険コマンドをexit 2でブロック:
COMMAND=$(cat | jq -r '.tool_input.command // empty' 2>/dev/null)
if echo "$COMMAND" | grep -qE 'rm\s+(-[rf]+\s+)*(\/|~|\.\./)'; then
echo "BLOCKED: rm on sensitive path" >&2
exit 2
fi
罠2: 末尾ワイルドカードが引数なしにマッチしない
{ "permissions": { "allow": ["Bash(ssh * uptime *)"] } }
ssh host uptime -s → 許可。ssh host uptime → 確認ダイアログが出る。 末尾の*は1文字以上を要求し、空文字にマッチしない。(#36873)
罠3: WindowsでEdit/Writeルールが無視される
VS Code拡張でEdit(.claude/**)を設定しても効果なし。Bashルールは動く。Edit/Writeだけ無視される。(#36884)
罠4: bypassPermissionsでも保護ディレクトリは止まる
v2.1.78以降、.git、.claudeへの書き込みは--dangerously-skip-permissionsでもプロンプトが出る。(#35668)
罠5: /modelの変更が/statusに即座に反映されない
モデル切替は次のAPIコール以降に有効。/statusの表示は古いまま。(#36835)
罠6: Claudeが追加するフラグでパターンが合わない
Bash(git status:*)を許可リストに入れた。Claudeはgit -C /path/to/repo statusを実行する。-Cフラグのせいでパターンが合わない。(#36900)
回避策: フックで-Cフラグをオプショナルにマッチ:
if echo "$COMMAND" | grep -qE '^\s*git\s+(-C\s+\S+\s+)?(status|log|diff|branch|show)'; then
# 自動許可
fi
なぜこうなるのか
Claude Codeのパーミッションシステムは完全一致の文字列マッチングで動いている。正規表現ではない。*は「1文字以上の任意の文字列」にマッチするが、空文字にはマッチしない。複合コマンド(cd /path && git status)では最初のトークン(cd)だけが評価される。
この設計は、単純なコマンドには機能するが、Claude Codeが実際に生成するコマンドの多様性には対応しきれない。
根本的な回避策: PreToolUseフック
6つ中5つの罠はPreToolUseフックで回避できる。フックはパーミッションシステムとは独立したレイヤーで動く。
// .claude/settings.json
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": "bash ~/.claude/hooks/my-guard.sh"
}]
}]
}
}
フックスクリプトは標準入力からJSON(tool_input.command)を受け取り、exit 0で許可、exit 2でブロック。自分でパターンを書けるから、パーミッション設定の制限に縛られない。
詳しい書き方は公式ドキュメントのHooksセクションを参照。
📘 パーミッション設定の限界をhookで突破するパターンをもっと知りたい方へ: Claude Codeを本番品質にする — hook設計・運用ガイド(¥800・Ch.1-2 無料公開中)
📖 800時間の自律運用で実際にパーミッション設定で失敗した全記録: AIに仕事を任せてみた(¥800・第2章まで無料)
自分のトークン消費パターンを確認したい方へ
Token Checkupで5つの質問に答えるだけでトークン消費の診断ができる。Hook Selectorで最適なhookセットも分かる。
📖 トークン消費に困っているなら → Claude Codeのトークン消費を半分にする——800時間の運用データから見つけた実践テクニック(¥2,500・はじめに+第1章 無料)
⚠️ Opus 4.7緊急情報(2026年4月17日)
Opus 4.7のauto mode安全分類器がOpus 4.6にハードコードされている問題が発覚。3日間で23件以上のデータ損失。さらにv2.1.100以降、APIコールごとに約20,000トークンが見えない場所で追加課金されている問題も判明(#46917、GitHub上196件のリアクション)(50GB永久消失含む)。4倍のトークン消費も報告されている。対策: npx cc-safe-setup --opus47(Survival Guide / Safety Scanner)