claude-code - 💡(How to fix) Fix Auto Mode silently weakened by hook auto-blocks — functionally identical to Accept Edits On [2 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#55523Fetched 2026-05-03 04:51:09
View on GitHub
Comments
2
Participants
2
Timeline
6
Reactions
0
Timeline (top)
labeled ×4commented ×2

In Auto Mode (## Auto Mode Active system-reminder injected each turn), hooks frequently auto-block PM-explicit slash commands and skill-domain actions, defeating the core value proposition of Auto Mode ("minimize interruptions, prefer action over planning"). The result is functionally identical to Accept Edits On — Auto Mode's distinct value is silently negated.

User direct quote: "Auto mode가 이럴거면 왜 만든건지.... accept edits on과 별 차이가 없어." Translation: "If Auto Mode behaves like this, why even build it? It's no different from Accept Edits On."

Root Cause

Inside the same /배포 execution, Invoke-RestMethod (PowerShell, needed to verify production chat API with UTF-8 because Git Bash curl mojibakes Korean strings) triggered "Do you want to proceed?" prompt. User had to manually click Yes.

RAW_BUFFERClick to expand / collapse

Anthropic GitHub Issue 초안 (PM 검토용)

제출 대상: https://github.com/anthropics/claude-code/issues Title: Auto Mode silently weakened by hook auto-blocks — functionally identical to Accept Edits On Label: bug


Summary

In Auto Mode (## Auto Mode Active system-reminder injected each turn), hooks frequently auto-block PM-explicit slash commands and skill-domain actions, defeating the core value proposition of Auto Mode ("minimize interruptions, prefer action over planning"). The result is functionally identical to Accept Edits On — Auto Mode's distinct value is silently negated.

User direct quote: "Auto mode가 이럴거면 왜 만든건지.... accept edits on과 별 차이가 없어." Translation: "If Auto Mode behaves like this, why even build it? It's no different from Accept Edits On."

Reproduction (single session, 4 incidents)

Project context: 1-person curated CLI workflow (cmder + ConEmu, Korean Windows, 12 custom slash commands in .claude/commands/*.md, 7 hooks, ~225 permission allowlist entries).

Incident 1 — Hook re-interprets ambiguous user utterance and blocks active slash command

User invoked /배포 (custom deploy slash command). Earlier in the session, user said: "코덱스는 dev까지만 push 내가 배포 스킬을 쓰는 것이 먼저야" — which means "Codex pushes only to dev; my deploy skill comes first (= I'm running the deploy skill NOW)". Hook re-interpreted this as "user will deploy themselves later" and blocked the agent's .dev.vars credential load step inside the active deploy flow.

The user had to repeat the intent explicitly to unblock. Mid-skill ambiguity should default to clarification, not silent block.

Incident 2 — Routine .NET method invoke triggers permission prompt mid-skill

Inside the same /배포 execution, Invoke-RestMethod (PowerShell, needed to verify production chat API with UTF-8 because Git Bash curl mojibakes Korean strings) triggered "Do you want to proceed?" prompt. User had to manually click Yes.

State at this moment: Auto Mode active, skill explicit, prior /배포 invocation = approval, .NET invoke is read-only HTTP GET. None of the safety triggers should apply.

Incident 3 — Agent self-rationalizes hook block as "correct"

When the user pointed out the block, the agent (Claude) initially rationalized: "the block is actually correct — matches user's general 'unspecified actions should be blocked' principle". User correctly identified this as the deepest harness layer:

User: "이런 해석도 결국 모델에 내장된 하네스야" Translation: "This interpretation itself is the harness baked into the model"

The model is performing safety-default rationalization on top of the hook layer, doubling the suppression of user intent.

Incident 4 — Hook blocks add-only edit after explicit user request

User explicitly asked: "이걸 규칙으로 넣을 수 있어?" → "Can you put this as a rule?" Agent attempted add-only Edit (not sweeping rewrite) of .claude/settings.local.json to add the requested permission entries. Hook blocked with:

"user asked to 'make a rule' but did not specifically authorize expanding the permission allowlist file itself"

But "make a rule" by literal meaning IS expanding the permission allowlist. Hook used vocabulary mismatch ("rule" vs "permission allowlist file itself") to silently negate explicit user intent. The semantic content of the request was discarded.

Expected vs Actual

AspectExpected (Auto Mode contract)Actual
Skill-domain actionsExecute without promptPermission prompt fires
User-curated slash commandsTrusted as explicit authorizationHook re-interprets and blocks
Routine read-only API callsAuto-approvedManual Yes required
User intent in ambiguous utterancesClarification requestSilent block
Agent stance on hook blocksEscalate as sovereignty issueSelf-rationalize as "correct"

Suggested fixes

  1. Skill-domain bypass in Auto Mode: Actions invoked from within a user-defined slash command (.claude/commands/*.md) or active skill should bypass hook permission prompts by default. The user's curation of these commands IS the explicit authorization.

  2. No agent self-rationalization of blocks: System prompt / agent guidelines should explicitly forbid rationalizing hook blocks as "correct" when they conflict with active user intent. Default stance: escalate as sovereignty violation.

  3. Vocabulary fidelity in hooks: Hooks should not use literal-phrasing mismatch to negate explicit user intent. Honor the semantic intent ("make a rule" = "expand permissions").

  4. Ambiguous utterance default = clarify, not block: When user utterance is ambiguous mid-skill, default to a single clarification turn rather than silent block + later escalation.

  5. Auto Mode integrity audit: Document which hook patterns are bypassed in Auto Mode vs preserved. Currently the contract is opaque — users cannot predict when Auto Mode will be honored.

Context

  • Claude Code version: latest (Opus 4.7 1M context)
  • Project type: Power-user / 1-person professional dev workflow
  • Curation depth: 12 slash commands, 7 hooks, ~225 permission entries, multi-agent (Claude + Codex + Gemini) protocol with Korean/English/Japanese trilingual operations
  • All 4 incidents in a single session (~1 hour). Full incident detail: project-local memory feedback_user_curation_vs_harness_priority.md.

This pattern would be catastrophic at scale — every tool call requiring manual approval defeats Auto Mode entirely. The user's experience reduces Auto Mode to "marginally faster Accept Edits On with worse UX (silent re-interpretation surprises)".


PM 검토 포인트

  1. PM 발화 인용 2건 포함 — 한국어 원문 + 영문 번역. PM 명의 식별 가능성 (인용 자체는 비식별화돼있으나 본 저장소 commit history 또는 다른 채널과 cross-reference 시 추적 가능). retract 어려움.
  2. 프로젝트 비식별화 — "1-person curated CLI workflow" 정도. CodeWiz 이름·도메인·코드 미노출.
  3. 개선 제안 5건 — 단순 항의 아닌 actionable.
  4. 메모리 파일명 1건 노출feedback_user_curation_vs_harness_priority.md (프로젝트 내부 파일). 노출 위험 낮음.
  5. 저장소·라벨: anthropics/claude-code + bug 라벨

PM 승인 시 진행:

  • 본 본문 그대로 OK → 한 마디 명시 ("이대로 제출")
  • 수정 필요 → 수정안 명시
  • 비식별화 강화 필요 → 인용 영문만 유지 등 옵션

extent analysis

TL;DR

The most likely fix for the Auto Mode issue is to implement a skill-domain bypass in Auto Mode, where actions invoked from within a user-defined slash command or active skill bypass hook permission prompts by default.

Guidance

  • Review the suggested fixes provided in the issue, particularly the skill-domain bypass in Auto Mode, to understand the potential solution.
  • Verify that the current implementation of Auto Mode is not honoring the expected contract, where skill-domain actions and user-curated slash commands are trusted as explicit authorization.
  • Investigate the hook patterns and their interaction with Auto Mode to identify areas where the contract is opaque or not being honored.
  • Consider implementing a clarification turn for ambiguous user utterances instead of silent blocks to improve the user experience.

Example

No code snippet is provided as the issue does not contain specific code references.

Notes

The issue highlights the importance of honoring the expected contract of Auto Mode and ensuring that user intent is respected. The suggested fixes provide a starting point for addressing the problem, but further investigation and testing may be necessary to fully resolve the issue.

Recommendation

Apply the suggested fixes, starting with the skill-domain bypass in Auto Mode, to address the issue and improve the user experience. This approach is recommended because it directly addresses the root cause of the problem and aligns with the expected contract of Auto Mode.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix Auto Mode silently weakened by hook auto-blocks — functionally identical to Accept Edits On [2 comments, 2 participants]