-
Notifications
You must be signed in to change notification settings - Fork 2
refactor: own the plugin-reconfiguration paragraph in one convention spoke #3585
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
kyle-sexton
wants to merge
11
commits into
chore/tracked-file-verification-depth
Choose a base branch
from
chore/setup-prose-ssot
base: chore/tracked-file-verification-depth
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
c2a927d
fix: drop the no-op apply action from the five check-only setups
kyle-sexton c8259bc
Merge branch 'chore/drop-noop-apply' into chore/setup-prose-ssot
kyle-sexton a6282f7
refactor: own the plugin-reconfiguration paragraph in one convention …
kyle-sexton db47ed8
chore: bump the five plugins Phase 1b touched and record the change
kyle-sexton 0c13edf
Merge branch 'chore/tracked-file-verification-depth' into chore/setup…
kyle-sexton e567168
Merge branch 'chore/drop-noop-apply' into chore/setup-prose-ssot
kyle-sexton 77936e8
chore: bump the 28 plugins Phase 1d touched and record the change
kyle-sexton 343ff85
fix: restore typos-format manifest final newline
kyle-sexton 1e46a5e
chore: ignore the two resolver false-positive gitleaks fingerprints
kyle-sexton a8ee467
Merge branch 'chore/tracked-file-verification-depth' into chore/setup…
kyle-sexton ec2b225
Merge branch 'chore/drop-noop-apply' into chore/setup-prose-ssot
kyle-sexton File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,59 @@ | ||
| # Plugin Reconfiguration Convention | ||
|
|
||
| The single owned source for how a consumer changes a plugin's native `userConfig` options after | ||
| install — the guidance every setup skill used to restate (with drift) and now cites. Setup skills | ||
| print the short form and cite this doc; the version-verification record below lives ONLY here, so | ||
| a re-verification against a newer Claude Code release is a one-file edit. | ||
|
|
||
| ## Boundary | ||
|
|
||
| This doc owns the **reconfiguration routes and their caveats** for options stored in Claude Code's | ||
| native plugin-configuration surface (`pluginConfigs`). Which options a plugin has, and what they | ||
| mean, belong to that plugin's own README Options reference. The rule that no setup skill ever | ||
| writes `pluginConfigs`, user settings, or the plugin cache is PLUGIN-PHILOSOPHY's (Setup is | ||
| explicit and repeatable); this doc restates it only as the reason both routes below are | ||
| consumer-run. | ||
|
|
||
| ## The two routes | ||
|
|
||
| - **Interactive, any time:** `/plugin configure <plugin>@<marketplace>`. | ||
| - **Headless:** rerun the install with the new value: | ||
|
|
||
| ```shell | ||
| claude plugin install <plugin>@<marketplace> -s <scope> --config KEY=VALUE | ||
| ``` | ||
|
|
||
| (`--config` repeatable per key.) Against an already-installed plugin it prints | ||
| `already installed` **and still writes the value** — the short-circuit is about the install, not | ||
| the config write. | ||
|
|
||
| ## Verified-version record | ||
|
|
||
| The `already installed`-still-writes claim was verified on **Claude Code 2.1.240**: a | ||
| non-sensitive option at `user` scope — a non-default value written to an installed plugin, then | ||
| restored. Not covered: a `sensitive` option, and `project`/`local` scope. Re-verify before relying | ||
| on the claim outside the covered conditions, and update this section (only here) when a newer | ||
| release is verified. | ||
|
|
||
| ## Caveats every setup skill's short form carries | ||
|
|
||
| 1. **Never uninstall to reconfigure.** Uninstalling drops the plugin's entire stored | ||
| `pluginConfigs` entry, resetting every option in its README Options reference to its manifest | ||
| default — customized values are simply gone, with nothing left to read the old values from. | ||
| 2. **Scope.** `-s` defaults to `user`; pass the scope `claude plugin list` reports for the plugin, | ||
| and run from that project's directory for a `project`/`local` scope, or the write lands at a | ||
| scope that does not load. | ||
| 3. **Observation is next-session.** The rendered `${user_config.*}` is injected at skill load and | ||
| each hook receives its `CLAUDE_PLUGIN_OPTION_*` from an environment fixed at session start, so | ||
| a same-session `check` still reports the OLD value — that is not a failed write. Verify the | ||
| effective value by rerunning the plugin's setup `check` in a **fresh session**, and never claim | ||
| an unobserved change. | ||
|
|
||
| ## The short form setups print | ||
|
|
||
| A setup skill states, in its own words but without restating the verified-version record: the two | ||
| routes, the three caveats above, and a citation of this doc as the owner of the verification | ||
| record. Canonical citation (installed plugins cannot read this repository's working tree, so cite | ||
| the published URL): | ||
|
|
||
| <https://github.com/melodic-software/claude-code-plugins/blob/main/docs/conventions/plugin-reconfiguration/README.md> | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add this owner document to the convention registry in
docs/PLUGIN-PHILOSOPHY.md. This change makes the convention authoritative for 28 setup skills, but the registry explicitly says it names each shared concern so fleet audits can check conformance per row; without an entry, those audits and maintainers consulting the registry cannot discover or validate this new owner.Useful? React with 👍 / 👎.