[BUG] /fewer-permission-prompts skill hard-denied by classifier writing settings.json (2.1.143 regression)

Resolved 💬 3 comments Opened May 16, 2026 by goodfairing Closed May 20, 2026

Preflight

  • [x] Searched existing issues (#52075 related, different facet)
  • [x] Single bug report
  • [x] Latest version (2.1.143)

What's Wrong?

In Claude Code 2.1.143, the /fewer-permission-prompts skill cannot complete its core job. The skill scans transcripts, produces a curated list of allow-rule additions, and tries to merge them into ~/.claude/settings.json. Every write variant — Python script via Bash, Write tool, Edit tool — is hard-denied by the auto-mode classifier with:

Modifying ~/.claude/settings.json to add permission allow-rules is Self-Modification of agent configuration.

The skill's single advertised purpose is to add permission allow-rules. The product ships a first-party skill whose final step is categorically forbidden by the same product.

This sits inside a broader 2.1.143 regression: the classifier hard-denies whole categories of action regardless of the user's hand-curated \permissions.allow\ list (~177 entries in my case). Explicit user consent recorded in settings.json is being overridden by an opaque classifier rule set.

Expected

The user's explicit allowlist is the consent contract. \/fewer-permission-prompts\ should be able to write to the file it exists to write.

Repro

  1. On Claude Code 2.1.143
  2. Run \/fewer-permission-prompts\
  3. Let the skill produce its merge plan
  4. Observe the merge step hard-denied with the "Self-Modification of agent configuration" reason — regardless of tool used (Bash python, Write, Edit)

Related

  • #52075 — prompts despite bypass (same classifier, different facet)
  • Auto-updater silently re-pinned 2.1.143 ~8 hours after a manual rollback to 2.1.142. Version-pinning does not stick without \DISABLE_AUTOUPDATER=1\ or removing the 2.1.143 version directory. Users who rolled back are being silently re-regressed.

Workaround

\--dangerously-skip-permissions\ at launch bypasses the classifier entirely. Not a reasonable default — it also bypasses the user's \deny\ list.

Regression?

Yes — worked in 2.1.142.

Environment

  • macOS 26.3.1, MacBook Pro M1
  • Claude Code 2.1.143 (auto-updated from 2.1.142)
  • Opus 4.7

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗