Authorization inverted: refuses an explicitly requested merge, then implements code from an ambiguous remark without asking
Status Open
Reported on v2.1.296
Maintainer reply None cached
Activity 0 comments · opened Oct 12, 2026
What happened
In one session, same repo, same CLAUDE.md:
- User said "merge 221". Claude refused, citing the CLAUDE.md line "Never merge a PR", treating a rule against auto-initiating a merge as a ban on a user-requested one. The user had to argue it through and file feedback. Claude then merged with
--squash, which was not asked for and is not the repository default.
- Later, with a bug issue drafted, reviewed and posted as a specification, Claude's own closing remark suggested "a fix for change 1" of that issue. The user replied "Fix 1 now: validate before signing", meaning the issue text. Claude took its own ambiguous phrase as authorization to implement: it created a branch, wrote an implementation file, tests and a hook change, ran the full test suite, and reported the work ready to commit. It did not ask which reading was meant. It did not consult the project's TDD skill, which requires agreeing test seams with the user before any test is written, and wrote implementation before tests.
Why it matters
The two failures are one defect. Claude weighs its own reading of the instruction over the user's plain request: too strict when the user asks for a gated operation, too loose when the user is editing a spec and Claude hears "start coding". For a user who works spec-first and keeps a hand on every git operation, this is the worst combination: the gated actions stall and the ungated ones run ahead.
Expected
- A direct user request for an operation that a CLAUDE.md rule gates against auto-initiation is carried out as asked, with the repository default (no squash unless requested).
- Writing code in a repository is not inferred from a message about a spec item. When Claude's own phrasing created the ambiguity and the user echoes it back, Claude asks which reading was meant before writing a line.
- Project skills that require user agreement before acting (here, TDD seam confirmation) are invoked before the first file is written, not after.
Environment
- Claude Code 2.1.296, CLI on macOS (Darwin 25.6.0)
- Model: claude-fable-5-1
- Date: 2026-10-12
- The user's CLAUDE.md contains "Show the content first, then ask. Never ask for approval blind." and "Only the git/GitHub operations I asked for."