Problem
scripts/sync-plugin-options-docs.py:93 generates route 2 as "Headless, at install time", and 18 setup skills carry a stronger, load-bearing form of the same premise:
Headless: --config only applies on a fresh install (ignored once installed), so reconfigure via claude plugin uninstall <p> -s <scope> then claude plugin install <p>@<mkt> -s <scope> --config KEY=VALUE
That premise does not hold on Claude Code 2.1.240. Verified by writing an arbitrary non-default value to an already-installed plugin and restoring it:
BEFORE {"options":{"settings_write_ask_enabled":true}}
$ claude plugin install context-budget@melodic-software -s user --config settings_write_ask_enabled=false
✔ Plugin "context-budget@melodic-software" is already installed (scope: user)
{"options":{"settings_write_ask_enabled":false}}
$ claude plugin install context-budget@melodic-software -s user --config settings_write_ask_enabled=true
AFTER {"options":{"settings_write_ask_enabled":true}}
This rules out both "it only worked because the value equalled the manifest default" and "it only worked because the key was absent".
Why it matters
The prescribed uninstall drops the entire pluginConfigs entry. Following that guidance resets 34 options on source-control, 20 on guardrails, 14 on claude-ops. The claude-ops setup skill documents that hazard at length — a hazard the working route makes unnecessary.
Framing
The claim landed 2026-07-18 in fe28ffa70 ("adopt the uniform setup contract across 17 shape-B plugins", #360) via template sweep, carrying no version stamp. CC 2.1.221 changed install-activation behaviour in this area, so "always false" and "true when written, fixed since" are not distinguishable from available evidence — and need not be.
The defect is: an unversioned harness claim, propagated by template to 18 skills, prescribing a destructive path for a case where the safe route demonstrably works. Remediation is to correct and stamp, matching the house style already used in plugins/claude-ops/skills/plugins/context/scope-semantics.md ("Empirically verified on Claude Code 2.1.228").
Also in scope
- Coverage rule — declares
userConfig ⇒ ships a setup skill. Three violations: context-budget, repo-hygiene, visualization.
- Verify-it-landed — the setup contract's
apply should read back the effective value after routing a reconfiguration rather than claiming an unobserved change. 34 setup skills reference pluginConfigs already, but none asserts post-write.
Motivating incident: three consecutive /plugin configure context-budget@melodic-software attempts on 2.1.240 returned No configuration changes., (no content), Configuration cancelled. and persisted nothing, with no error surfaced. Related upstream issues (anthropics/claude-code#51538, #52724, #46477) are all closed, and #52724's one named user-side cause — a custom ~/.claude/keybindings.json — did not apply.
Related
No linked issue.
Problem
scripts/sync-plugin-options-docs.py:93generates route 2 as "Headless, at install time", and 18 setup skills carry a stronger, load-bearing form of the same premise:That premise does not hold on Claude Code 2.1.240. Verified by writing an arbitrary non-default value to an already-installed plugin and restoring it:
This rules out both "it only worked because the value equalled the manifest default" and "it only worked because the key was absent".
Why it matters
The prescribed
uninstalldrops the entirepluginConfigsentry. Following that guidance resets 34 options onsource-control, 20 onguardrails, 14 onclaude-ops. The claude-ops setup skill documents that hazard at length — a hazard the working route makes unnecessary.Framing
The claim landed 2026-07-18 in
fe28ffa70("adopt the uniform setup contract across 17 shape-B plugins", #360) via template sweep, carrying no version stamp. CC 2.1.221 changed install-activation behaviour in this area, so "always false" and "true when written, fixed since" are not distinguishable from available evidence — and need not be.The defect is: an unversioned harness claim, propagated by template to 18 skills, prescribing a destructive path for a case where the safe route demonstrably works. Remediation is to correct and stamp, matching the house style already used in
plugins/claude-ops/skills/plugins/context/scope-semantics.md("Empirically verified on Claude Code 2.1.228").Also in scope
userConfig⇒ ships a setup skill. Three violations:context-budget,repo-hygiene,visualization.applyshould read back the effective value after routing a reconfiguration rather than claiming an unobserved change. 34 setup skills referencepluginConfigsalready, but none asserts post-write.Motivating incident: three consecutive
/plugin configure context-budget@melodic-softwareattempts on 2.1.240 returnedNo configuration changes.,(no content),Configuration cancelled.and persisted nothing, with no error surfaced. Related upstream issues (anthropics/claude-code#51538, #52724, #46477) are all closed, and #52724's one named user-side cause — a custom~/.claude/keybindings.json— did not apply.Related
No linked issue.