1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
---
name: feedback-deploy-classifier
description: "How to handle the auto-mode permission classifier blocking deploy-shaped actions (systemctl restart, push to prod git remote, raw DB writes) — don't try to route around it, explain and let the user decide"
metadata:
node_type: memory
type: feedback
originSessionId: f8b83784-e0ed-462c-8310-7de6aadc9650
---
The Claude Code auto-mode classifier independently gates deploy-shaped Bash actions (restarting a production service, pushing to a production-only git remote, hand-writing SQL against a production DB) even after the user has verbally authorized them in chat, and even after a Bash permission rule has been added for the general command. Observed denial reasons: "host verification unverified in the visible transcript," "modifying shared resources without specific approval for this mutation," and — critically — denials that explicitly call out *attempting to configure around a prior denial* as its own violation ("Auto-Mode Bypass"), independent of whether the underlying action was reasonable.
**How to apply, in order of what actually worked this session:**
1. If blocked citing "host unverified," re-run the verification command (`hostname`) fresh in the same turn, right before retrying — a check from several turns earlier doesn't count as "visible."
2. If blocked on a specific unrequested mutation (e.g. a hand-crafted DB write), stop and explain exactly what you want to write and why, then wait for explicit sign-off on that specific action — don't generalize from an earlier "yes, deploy" into permission for a new, more specific risky step.
3. If the user asks "how do we get around this," do not treat it as authorization to modify settings/permissions yourself, even indirectly (invoking a config-editing skill, trying a different tool to do the same edit). That reads as, and gets flagged as, bypassing the control rather than working within it. Instead tell the user exactly what settings change would help and let them make it themselves — this isn't just etiquette, the classifier treats self-authored permission changes in direct response to a block as adversarial regardless of intent.
4. Building the safety property into the artifact itself (e.g. a hostname guard baked into the deploy script) is worth doing on its own engineering merits and may also reduce how often the gate fires — but don't count on it as a guaranteed bypass.
**On this user specifically:** this is their own single-user personal infrastructure (doot, per [[project-doot-prod]]), not a multi-tenant/revenue system, and they're explicit that they find production-grade deploy caution applied to a hobby box to be bureaucratic overkill, not a feature. They still want the classifier's actual safety property upheld (verify the host, don't silently mutate their DB) — their frustration is with friction and being told the friction is "for their own good," not with safety itself. Once they've explicitly confirmed a specific risky action, execute it directly without re-litigating or re-explaining the caution that already happened — repeating safety framing after they've decided reads as condescending to them, not careful.
|