fix: clarify userConfig option copy shown at install - #19
Conversation
The two options presented during `/plugin install` described internals rather than behavior, and neither stated its default. - `disable`: retitled to name it as a kill switch. The old title said "Disable blocking", but the flag no-ops every hook — including the SessionStart prereq check and PostToolUse auto-record, not just the PreToolUse block. Now leads with the default and notes that a VS_DISABLE shell variable overrides the setting in both directions. - `window_hours`: says what actually happens when the window lapses (the dependency blocks again until re-verified) and gives the trade-off for tuning it up or down. Now leads with the default and spells out the 1-168h bounds. Copy only — no schema, key, default, or bound changed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0118eLJLbPbqYXiPc8R9AAiJ
📝 WalkthroughWalkthroughThe plugin configuration descriptions now document the disable switch and version-check freshness window. The descriptions include defaults, overrides, bounds, expiration behavior, and operational tradeoffs. ChangesConfiguration Documentation
Estimated code review effort: 1 (Trivial) | ~2 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.claude-plugin/plugin.json:
- Line 31: Update the description value for the disable setting to state that
only a non-empty VS_DISABLE value set in the shell overrides disable, replacing
the broader wording while preserving the rest of the description.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 24e3d77e-c7ba-48da-96fa-0cf6516d10ba
📒 Files selected for processing (1)
.claude-plugin/plugin.json
| "title": "Disable blocking", | ||
| "description": "If true, all version-sentinel hooks no-op (PreToolUse block, SessionStart prereq warning, PostToolUse auto-record). Equivalent to VS_DISABLE=1.", | ||
| "title": "Turn off Version Sentinel (kill switch)", | ||
| "description": "Default: false — the guardrail is active. Set true and every hook becomes a no-op: dependency edits and install commands are no longer blocked, the startup check for jq/curl/python3 is skipped, and successful installs stop being auto-recorded. Use it as a temporary escape hatch when a hook misfires or you are working offline, then switch it back. A VS_DISABLE variable set in your shell overrides this setting in both directions.", |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Clarify that only a non-empty VS_DISABLE value overrides disable.
scripts/lib/options.sh:6-12 treats an empty VS_DISABLE value as unset. Replace “A VS_DISABLE variable set in your shell” with “A non-empty VS_DISABLE value set in your shell” to match the actual precedence behavior.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.claude-plugin/plugin.json at line 31, Update the description value for the
disable setting to state that only a non-empty VS_DISABLE value set in the shell
overrides disable, replacing the broader wording while preserving the rest of
the description.
What
Rewrites the
titleanddescriptionfor bothuserConfigoptions in.claude-plugin/plugin.json— the two prompts a user sees during/plugin install version-sentinel.Each description now leads with its default, states what flipping it actually does, and gives a reason to change it.
Why
The old copy described internals rather than behavior, and neither option stated its default in the text:
disablewas titled "Disable blocking" and described as "all version-sentinel hooks no-op (PreToolUse block, SessionStart prereq warning, PostToolUse auto-record)". That's a parenthetical list of hook names — it reads as if it only relaxes blocking, when it in fact disables the whole plugin, auto-recording included. It also omitted that aVS_DISABLEshell variable takes precedence (scripts/lib/options.sh:6-12only maps the plugin option whenVS_DISABLEis unset, soVS_DISABLE=0in the environment pins the guardrail on and makes the toggle a no-op).window_hourssaid only "How long a /vs-record entry stays fresh before the hook re-blocks" — it never said what re-blocking costs you (re-verifying against the registry) or how to choose a value.Scope
Copy only. No schema key,
type,default,min, ormaxchanged — verified in the diff.Typed as
fix:rather thandocs:so release-please cuts a patch release; otherwise the improved copy never reaches installed users, since the manifest only ships via a tagged release.Verification
No test asserts on these strings, so none needed updating.
Follow-up, not in this PR
Root
plugin.jsonand.claude-plugin/plugin.jsonhave drifted: differentdescription, root carries an extrasupply-chain-securitykeyword, and root has nouserConfigblock at all. Claude Code reads.claude-plugin/, so the options work today, but any consumer reading the root manifest sees a different plugin.🤖 Generated with Claude Code
https://claude.ai/code/session_0118eLJLbPbqYXiPc8R9AAiJ
Summary by CodeRabbit