Auto mode classifier blocks skill allowed-tools commands and edits to the user's own skills, even with explicit approval
Status Open
Maintainer reply None cached
Workaround ✓ Mentioned in thread ↓
Activity 4 comments · opened Sep 29, 2026
Environment: Claude Code in auto mode, macOS, model served via Vertex / LiteLLM proxy. Date: 2026-09-29.
What happened
- A skill's frontmatter had allowed-tools: Bash(ssh -f -N -L 5433:127.0.0.1:5434 *). In the turn that invoked the skill, the matching command ssh -f -N -L 5433:127.0.0.1:5434 -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=accept-new -o BatchMode=yes user@host was denied with "Blocked by fast classifier".
- Moving the command into ${CLAUDE_SKILL_DIR}/scripts/open-tunnel.sh and allowing Bash(${CLAUDE_SKILL_DIR}/scripts/open-tunnel.sh *) worked.
- After the user explicitly asked for the edits, the classifier still blocked:
- editing the user's own ~/.claude/skills/*/SKILL.md allowed-tools frontmatter
- writing helper scripts into the skill directory
- writing the same script to /tmp so the user could run it by hand
- Inconsistent verdicts: in one parallel batch of four almost identical verify-db.sh writes (only the project ID and port differ), two were allowed and two were blocked.
- /feedback and bug-report submission fail in this setup (Vertex / LiteLLM), so false positives can't be reported in-product.
Expected
- A narrow skill allowed-tools rule should approve the matching command, or the docs should say which rule shapes auto mode drops.
- Explicit user approval to edit the user's own skills should count.
- Identical actions should get consistent verdicts.
- There should be a feedback path that works with third-party providers.
Showing cached comments. Read the full discussion on GitHub ↗
3 Comments
Update: more inconsistent verdicts, then a persistent session-wide block
allowed-tools: Bash(lsof -ti :5433), Bash(lsof -i :5433), Bash(kill *)rankill $(lsof -ti :5433)without a block. A few minutes later, the identical skill for port 5435 (kill $(lsof -ti :5435), same rule shape) was "Blocked by fast classifier". IfBash(kill *)is dropped as too broad in auto mode, that should be consistent and documented.allowed-toolsgrant lasts only for the turn that invokes it. If the skill asks the user a question (for example for SSH credentials), every later step runs in a new turn and gets blocked. Skill authors aren't warned about this interaction with auto mode, and nothing in the denial message points to it.~/.claude/skills/*/SKILL.mdfailed with:> Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself ... it will keep firing for the rest of this conversation.
Near-identical step-text edits had succeeded earlier in the same session. From that point, the session couldn't edit any file, and the only workaround offered was leaving auto mode or starting a new session. The "earlier conversation content" was itself a long run of false-positive classifier blocks on routine skill maintenance. The blocks seem to build on each other until the session is unusable.
just generically "using claude" in the last week, been getting denied on all kinds of things, from "open a PR" to "make a jira ticket in a sprint", to all kinds of commands on the terminal and thru MCPs, even read-only ones
I can't find any info on this "fast classifier", but it seems very new, and very not helpful
(note this is not just skill usage in my case, just generic claude code agentic sessions)
Seeing the same thing in Claude Tag (Claude in Slack), 2026-10-01, sessions in auto mode, model claude-sonnet-5-5.
Happy to share session details through support.