diff --git a/plugins/actionlint/.claude-plugin/plugin.json b/plugins/actionlint/.claude-plugin/plugin.json index 2ed1588cb..a52503bad 100644 --- a/plugins/actionlint/.claude-plugin/plugin.json +++ b/plugins/actionlint/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "actionlint", - "version": "0.7.0", + "version": "0.7.1", "description": "Lint GitHub Actions workflow files on edit via actionlint, surfacing findings as advisory context.", "author": { "name": "Melodic Software", diff --git a/plugins/actionlint/CHANGELOG.md b/plugins/actionlint/CHANGELOG.md index daaa4c83a..eb6a7a966 100644 --- a/plugins/actionlint/CHANGELOG.md +++ b/plugins/actionlint/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to the `actionlint` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.7.1] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + The recipe also now requires the reinstall to re-supply **every** key whose value should + stay non-default, not only the key being changed: uninstalling drops the stored + `pluginConfigs` entry, so an omitted key silently falls back to its manifest default. + Record the current values before uninstalling. + ## [0.7.0] ### Added diff --git a/plugins/actionlint/skills/setup/SKILL.md b/plugins/actionlint/skills/setup/SKILL.md index fe28789e1..762d974e0 100644 --- a/plugins/actionlint/skills/setup/SKILL.md +++ b/plugins/actionlint/skills/setup/SKILL.md @@ -62,9 +62,17 @@ Run `check`, then for each FAIL point at the resolution — this skill installs time). Headless: current official docs document `--config` only as a `claude plugin install` flag that sets manifest-declared options; its behavior against an already-installed plugin is undocumented, and in - practice the reliable headless path is `claude plugin uninstall actionlint` - then `claude plugin install actionlint@ --config actionlint_enabled=true`; - this skill never writes user settings or `pluginConfigs`. + practice the reliable headless path is `claude plugin uninstall actionlint -s ` + then `claude plugin install actionlint@ -s --config actionlint_enabled=true`; + this skill never writes user settings or `pluginConfigs`. Both commands default to + `-s user` — pass the scope `claude plugin list` reports for this plugin (`user`, `project`, + or `local`), and run from that project's directory for a `project`/`local` scope. Defaulting + instead uninstalls a separate user-scope record while the effective install stays in place, + so the reinstall lands at a scope that does not load. Uninstalling also drops the stored + `pluginConfigs` entry, so the reinstall must re-supply **every** key whose value should stay + non-default — both `actionlint_enabled` and `stdin_read_timeout`, not only the key being + changed. Record the current values before uninstalling; afterwards there is nothing left to + read them from. After pointing at a remediation, re-run the relevant `check` probe and report its actual result — never claim resolved on the reader's report that they installed something. diff --git a/plugins/ai-briefing/.claude-plugin/plugin.json b/plugins/ai-briefing/.claude-plugin/plugin.json index ea7599f5d..9f1f3e186 100644 --- a/plugins/ai-briefing/.claude-plugin/plugin.json +++ b/plugins/ai-briefing/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "ai-briefing", - "version": "0.6.1", + "version": "0.6.2", "description": "Build source-backed AI-industry briefings from official vendor publications, configured RSS/Atom feeds, GitHub releases, reputable secondary reporting, and user-supplied URLs. Deduplicate, rank, and present results as markdown or optional HTML/PPTX decks, with repository-owned profile, audience, and brand configuration. Automated X/Twitter collection is disabled; Playwright is used only for deterministic local rendering.", "author": { "name": "Melodic Software", diff --git a/plugins/ai-briefing/CHANGELOG.md b/plugins/ai-briefing/CHANGELOG.md index d5a1f0166..e64c19e1e 100644 --- a/plugins/ai-briefing/CHANGELOG.md +++ b/plugins/ai-briefing/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to the `ai-briefing` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.6.2] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + applied to the other affected plugins in this release wave. + ## [0.6.1] ### Changed diff --git a/plugins/ai-briefing/skills/setup/SKILL.md b/plugins/ai-briefing/skills/setup/SKILL.md index e9788b0ee..83577823b 100644 --- a/plugins/ai-briefing/skills/setup/SKILL.md +++ b/plugins/ai-briefing/skills/setup/SKILL.md @@ -56,8 +56,13 @@ anything. changes the stored value; this skill never writes `pluginConfigs`. - **Headless:** `claude plugin install ... --config active_profile=` seeds the value on a *fresh install only* and is ignored once the plugin is installed, so reconfiguring headlessly - means `claude plugin uninstall ai-briefing` then `claude plugin install - ai-briefing@ --config active_profile=`. + means `claude plugin uninstall ai-briefing -s ` then `claude plugin install + ai-briefing@ -s --config active_profile=`. Both commands default + to `-s user` — pass the scope `claude plugin list` reports for this plugin, and run from that + project's directory for a `project`/`local` scope. Defaulting instead uninstalls a separate + user-scope record while the effective install stays in place, so the reinstall lands at a + scope that does not load. `active_profile` is this plugin's only `userConfig` key, so the + reinstall has nothing else to re-supply. - **Neither, for a one-off:** a per-run `--profile ` selects a different profile without touching stored config. 2. **`sources.md`** — FAIL if the resolved profile has no `sources.md`: `/ai-briefing:generate` diff --git a/plugins/bash-format/.claude-plugin/plugin.json b/plugins/bash-format/.claude-plugin/plugin.json index b4c9b57e4..d55a73d02 100644 --- a/plugins/bash-format/.claude-plugin/plugin.json +++ b/plugins/bash-format/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "bash-format", - "version": "0.6.2", + "version": "0.6.3", "description": "Auto-format and lint shell scripts on edit via shfmt + ShellCheck, using the consuming repo's own .editorconfig and .shellcheckrc.", "author": { "name": "Melodic Software", diff --git a/plugins/bash-format/CHANGELOG.md b/plugins/bash-format/CHANGELOG.md index 03c4e3c57..39f76f5c3 100644 --- a/plugins/bash-format/CHANGELOG.md +++ b/plugins/bash-format/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to the `bash-format` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.6.3] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + ## [0.6.2] ### Changed diff --git a/plugins/bash-format/skills/setup/SKILL.md b/plugins/bash-format/skills/setup/SKILL.md index f711136a9..ca98fd819 100644 --- a/plugins/bash-format/skills/setup/SKILL.md +++ b/plugins/bash-format/skills/setup/SKILL.md @@ -90,9 +90,14 @@ Run `check`, then for each FAIL point at the resolution — this skill installs the repo in — but this skill does not write it. `.editorconfig` is cross-cutting (it governs every editor and tool in the repo), so the choice and the edit belong to the consumer. - toggle off: direct to `/plugin configure bash-format` (interactive, any - time). Headless: `--config` only applies on a fresh install (ignored once installed), so reconfigure via `claude plugin uninstall bash-format` then - `claude plugin install bash-format@ --config bash_format_enabled=true`; - this skill never writes user settings or `pluginConfigs`. + time). Headless: `--config` only applies on a fresh install (ignored once installed), so + reconfigure via `claude plugin uninstall bash-format -s ` then + `claude plugin install bash-format@ -s --config bash_format_enabled=true`; + this skill never writes user settings or `pluginConfigs`. Both commands default to `-s user` — + pass the scope `claude plugin list` reports for this plugin, and run from that project's + directory for a `project`/`local` scope. Defaulting instead uninstalls a separate user-scope + record while the effective install stays in place, so the reinstall lands at a scope that + does not load. After pointing at a remediation, re-run the relevant `check` probe and report its actual result — never claim resolved on the reader's report that they installed something. diff --git a/plugins/biome-format/.claude-plugin/plugin.json b/plugins/biome-format/.claude-plugin/plugin.json index 5944a25fa..a7d24f54c 100644 --- a/plugins/biome-format/.claude-plugin/plugin.json +++ b/plugins/biome-format/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "biome-format", - "version": "0.5.1", + "version": "0.5.2", "description": "Auto-format and lint JS/TS/JSX/JSON on edit via Biome, only when a biome.json governs the repo — using the consuming repo's own Biome config.", "author": { "name": "Melodic Software", diff --git a/plugins/biome-format/CHANGELOG.md b/plugins/biome-format/CHANGELOG.md index 3304b1d4f..d3c88f9aa 100644 --- a/plugins/biome-format/CHANGELOG.md +++ b/plugins/biome-format/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to the `biome-format` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.5.2] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + ## [0.5.1] ### Changed diff --git a/plugins/biome-format/skills/setup/SKILL.md b/plugins/biome-format/skills/setup/SKILL.md index 1b2855f3a..044e6c5cf 100644 --- a/plugins/biome-format/skills/setup/SKILL.md +++ b/plugins/biome-format/skills/setup/SKILL.md @@ -77,9 +77,14 @@ command's exit code alone. For everything else `apply` only points: - missing `jq` / Bash: platform install instructions from the README Requirements section; this skill never installs system packages. - toggle off: direct to `/plugin configure biome-format` (interactive, any - time). Headless: `--config` only applies on a fresh install (ignored once installed), so reconfigure via `claude plugin uninstall biome-format` then - `claude plugin install biome-format@ --config biome_format_enabled=true`; - this skill never writes user settings or `pluginConfigs`. + time). Headless: `--config` only applies on a fresh install (ignored once installed), so + reconfigure via `claude plugin uninstall biome-format -s ` then + `claude plugin install biome-format@ -s --config biome_format_enabled=true`; + this skill never writes user settings or `pluginConfigs`. Both commands default to `-s user` — + pass the scope `claude plugin list` reports for this plugin, and run from that project's + directory for a `project`/`local` scope. Defaulting instead uninstalls a separate user-scope + record while the effective install stays in place, so the reinstall lands at a scope that + does not load. - no Biome config: offer to create a minimal `biome.json` in the repository root only when explicitly asked — the plugin imposes no rules of its own. diff --git a/plugins/claude-ops/.claude-plugin/plugin.json b/plugins/claude-ops/.claude-plugin/plugin.json index 1370ab9ea..6faccd826 100644 --- a/plugins/claude-ops/.claude-plugin/plugin.json +++ b/plugins/claude-ops/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "claude-ops", - "version": "0.21.0", + "version": "0.21.1", "description": "Claude Code operations toolkit. Seven skills: observability (read locally captured telemetry — OTEL store, collector, hook-event JSONL, ccusage — with trend reports and store pruning), known-issues (search known Claude product GitHub bugs, check service health, maintain a persistent tracked-issue registry), changelog (ingest Claude Code changelog entries and integrate them into the current repo), plugins (bring a machine's plugin fleet current on demand — marketplace refresh, effective-scope updates including in-repo project/local installs, new-plugin install per policy, scope-divergence detection and explicit convergence), morning-brief (read-only gh-based operator morning view — queue-label counts, merge-ready PRs, parked decisions with their RECOMMENDED lines, and loop-lane telemetry freshness), lanes (start/restart/stop/status loop lanes as named background Claude Code sessions seeded from canonical prompt files, with per-lane model/effort and a repo-pull + marketplace-refresh launch step), and a re-runnable setup action that settles where the known-issues registry lives. Plus a family of seven advisory *-audit telemetry-emitter hooks (API errors, config changes, instruction loads, permission denials, pre-compaction, skill usage, tool failures) that emit the shared hook-telemetry envelope, and a reference sink that maps envelopes into the hook-events.jsonl the observability skill reads.", "author": { "name": "Melodic Software", diff --git a/plugins/claude-ops/CHANGELOG.md b/plugins/claude-ops/CHANGELOG.md index 625f7f033..b876e200a 100644 --- a/plugins/claude-ops/CHANGELOG.md +++ b/plugins/claude-ops/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to the `claude-ops` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.21.1] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + The recipe also now requires the reinstall to re-supply **every** key whose value should + stay non-default, not only the key being changed: uninstalling drops the stored + `pluginConfigs` entry, so an omitted key silently falls back to its manifest default. + Record the current values before uninstalling. + ## [0.21.0] ### Added diff --git a/plugins/claude-ops/skills/setup/SKILL.md b/plugins/claude-ops/skills/setup/SKILL.md index 5500720da..0ede274e4 100644 --- a/plugins/claude-ops/skills/setup/SKILL.md +++ b/plugins/claude-ops/skills/setup/SKILL.md @@ -67,9 +67,19 @@ verify-and-route: `.claude/observability`). State the tradeoff and let the reader pick — do not prompt. - **Reconfiguring a personal option:** `/plugin configure claude-ops` (interactive, any time). Headless: `--config` only applies on a fresh install (ignored once installed), so reconfigure via - `claude plugin uninstall claude-ops` then - `claude plugin install claude-ops@ --config registry_dir=`; this skill never - writes user settings or `pluginConfigs`. + `claude plugin uninstall claude-ops -s ` then + `claude plugin install claude-ops@ -s --config registry_dir=`; this + skill never writes user settings or `pluginConfigs`. Both commands default to `-s user` — pass + the scope `claude plugin list` reports for this plugin, and run from that project's directory + for a `project`/`local` scope. Defaulting instead uninstalls a separate user-scope record while + the effective install stays in place, so the reinstall lands at a scope that does not load. + Uninstalling also drops the stored `pluginConfigs` entry, so the reinstall must re-supply + **every** key whose value should stay non-default — this plugin declares fourteen, and a + reinstall that passes only `registry_dir` silently resets the other thirteen (the seven + `*_audit_enabled` toggles, `instructions_loaded_audit_log_session_start`, `install_new`, + `skill_usage_dir`, `skill_usage_git_exclude`, `skill_usage_scope`, `stdin_read_timeout`) to + their manifest defaults. Record the current values before uninstalling; afterwards there is + nothing left to read them from. After any reconfiguration, rerun `check` and report both observed effective destinations — never claim an unobserved change. Re-running `apply` when both destinations are contained (or defaulted) changes diff --git a/plugins/desktop-notification/.claude-plugin/plugin.json b/plugins/desktop-notification/.claude-plugin/plugin.json index cc08d7ced..4b6ff36cf 100644 --- a/plugins/desktop-notification/.claude-plugin/plugin.json +++ b/plugins/desktop-notification/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "desktop-notification", - "version": "0.5.1", + "version": "0.5.2", "description": "Alert you when Claude Code needs input — an audible terminal bell, an OSC 9 terminal notification, and an OS-native toast (macOS/Linux) on permission and idle prompts.", "author": { "name": "Melodic Software", diff --git a/plugins/desktop-notification/CHANGELOG.md b/plugins/desktop-notification/CHANGELOG.md index 3b817c119..b81c5ad3e 100644 --- a/plugins/desktop-notification/CHANGELOG.md +++ b/plugins/desktop-notification/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to the `desktop-notification` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.5.2] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + The recipe also now requires the reinstall to re-supply **every** key whose value should + stay non-default, not only the key being changed: uninstalling drops the stored + `pluginConfigs` entry, so an omitted key silently falls back to its manifest default. + Record the current values before uninstalling. + ## [0.5.1] ### Changed diff --git a/plugins/desktop-notification/skills/setup/SKILL.md b/plugins/desktop-notification/skills/setup/SKILL.md index 13b4c2822..c8af646d9 100644 --- a/plugins/desktop-notification/skills/setup/SKILL.md +++ b/plugins/desktop-notification/skills/setup/SKILL.md @@ -71,9 +71,16 @@ nothing and writes nothing, so every remediation is a pointer the user acts on: Guidance only — the user runs it. - **a toggle is off** — direct to `/plugin configure desktop-notification` (interactive, any time). Headless: `--config` only applies on a fresh install (ignored once - installed), so reconfigure via `claude plugin uninstall desktop-notification` then - `claude plugin install desktop-notification@ --config =true`; these - options are user-scoped, so this skill never writes user settings or `pluginConfigs`. + installed), so reconfigure via `claude plugin uninstall desktop-notification -s ` then + `claude plugin install desktop-notification@ -s --config =true`. + Both commands default to `-s user` — pass the install scope `claude plugin list` reports for + this plugin, and run from that project's directory for a `project`/`local` scope. Defaulting + instead uninstalls a separate user-scope record while the effective install stays in place, so + the reinstall lands at a scope that does not load. Uninstalling also drops the stored + `pluginConfigs` entry, so the reinstall must re-supply **every** one of the four toggles whose + value should stay non-default, not only the one being flipped; record the current values before + uninstalling, because afterwards there is nothing left to read them from. These options are + personal `userConfig` values, so this skill never writes user settings or `pluginConfigs`. After the user reports acting on any system-tool remediation, re-run the relevant `check` probe and report its actual result — never claim resolved on the user's say-so alone. diff --git a/plugins/disk-hygiene/.claude-plugin/plugin.json b/plugins/disk-hygiene/.claude-plugin/plugin.json index afb0a7379..98da8eeab 100644 --- a/plugins/disk-hygiene/.claude-plugin/plugin.json +++ b/plugins/disk-hygiene/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "disk-hygiene", - "version": "0.9.3", + "version": "0.9.4", "description": "Context-aware disk hygiene for arbitrary directory trees: inventories orphaned and temporary artifacts, classifies evidence into review tiers, and offers exact-path cleanup only after a fresh safety preview and explicit per-tier approval. The target is read-only by default; OS-managed paths, links and mount points, VCS-tracked content, changed entries, and live-handle uncertainty fail closed.", "author": { "name": "Melodic Software", diff --git a/plugins/disk-hygiene/CHANGELOG.md b/plugins/disk-hygiene/CHANGELOG.md index 03da8e066..80eb3d750 100644 --- a/plugins/disk-hygiene/CHANGELOG.md +++ b/plugins/disk-hygiene/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to the `disk-hygiene` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.9.4] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + ## [0.9.3] ### Fixed diff --git a/plugins/disk-hygiene/skills/setup/SKILL.md b/plugins/disk-hygiene/skills/setup/SKILL.md index f8b4a8785..b4dfc5451 100644 --- a/plugins/disk-hygiene/skills/setup/SKILL.md +++ b/plugins/disk-hygiene/skills/setup/SKILL.md @@ -119,9 +119,13 @@ tool or an OS capability, so `apply` installs nothing and writes nothing — it - missing git (worktree targets): platform install instructions. - toggle off: direct to `/plugin configure disk-hygiene` (interactive, any time). Headless: `--config` only applies on a fresh install (ignored once installed), so - reconfigure via `claude plugin uninstall disk-hygiene` then - `claude plugin install disk-hygiene@ --config disk_hygiene_enabled=true`; - this skill never writes user settings or `pluginConfigs`. + reconfigure via `claude plugin uninstall disk-hygiene -s ` then + `claude plugin install disk-hygiene@ -s --config disk_hygiene_enabled=true`; + this skill never writes user settings or `pluginConfigs`. Both commands default to `-s user` — + pass the scope `claude plugin list` reports for this plugin, and run from that project's + directory for a `project`/`local` scope. Defaulting instead uninstalls a separate user-scope + record while the effective install stays in place, so the reinstall lands at a scope that + does not load. Re-running `apply` after everything passes changes nothing and reports "already configured". diff --git a/plugins/eol-normalizer/.claude-plugin/plugin.json b/plugins/eol-normalizer/.claude-plugin/plugin.json index 188b90b89..919af5848 100644 --- a/plugins/eol-normalizer/.claude-plugin/plugin.json +++ b/plugins/eol-normalizer/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "eol-normalizer", - "version": "0.5.1", + "version": "0.5.2", "description": "Normalize a written file's working-tree line endings to its .gitattributes eol value on edit — symmetric CRLF/LF driven by git check-attr, advisory and never blocking.", "author": { "name": "Melodic Software", diff --git a/plugins/eol-normalizer/CHANGELOG.md b/plugins/eol-normalizer/CHANGELOG.md index 03634a6c8..a82284a91 100644 --- a/plugins/eol-normalizer/CHANGELOG.md +++ b/plugins/eol-normalizer/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to the `eol-normalizer` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.5.2] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + ## [0.5.1] ### Changed diff --git a/plugins/eol-normalizer/skills/setup/SKILL.md b/plugins/eol-normalizer/skills/setup/SKILL.md index 4a9aaedd3..c1ca5247a 100644 --- a/plugins/eol-normalizer/skills/setup/SKILL.md +++ b/plugins/eol-normalizer/skills/setup/SKILL.md @@ -65,9 +65,14 @@ tool, so `apply` installs nothing and writes nothing — it only points: - missing `jq` / Bash / git: platform install instructions from the README Requirements section; this skill never installs system packages. - toggle off: direct to `/plugin configure eol-normalizer` (interactive, any - time). Headless: `--config` only applies on a fresh install (ignored once installed), so reconfigure via `claude plugin uninstall eol-normalizer` then - `claude plugin install eol-normalizer@ --config eol_normalizer_enabled=true`; - this skill never writes user settings or `pluginConfigs`. + time). Headless: `--config` only applies on a fresh install (ignored once installed), so + reconfigure via `claude plugin uninstall eol-normalizer -s ` then + `claude plugin install eol-normalizer@ -s --config eol_normalizer_enabled=true`; + this skill never writes user settings or `pluginConfigs`. Both commands default to `-s user` — + pass the scope `claude plugin list` reports for this plugin, and run from that project's + directory for a `project`/`local` scope. Defaulting instead uninstalls a separate user-scope + record while the effective install stays in place, so the reinstall lands at a scope that + does not load. - no `eol=` policy: this is the opt-out, not a defect. Point at the repository's own `.gitattributes` as the place to declare policy; this skill never writes `.gitattributes`, because that would impose a repo-wide line-ending policy the plugin has no mandate to diff --git a/plugins/go-format/.claude-plugin/plugin.json b/plugins/go-format/.claude-plugin/plugin.json index 78cd5a57e..48d32886e 100644 --- a/plugins/go-format/.claude-plugin/plugin.json +++ b/plugins/go-format/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "go-format", - "version": "0.2.1", + "version": "0.2.2", "description": "Auto-fix Go formatting and import management on edit via goimports — runs unconditionally (no consumer-config gate), skipping generated files.", "author": { "name": "Melodic Software", diff --git a/plugins/go-format/CHANGELOG.md b/plugins/go-format/CHANGELOG.md index 240ec9dd9..a2e41dae8 100644 --- a/plugins/go-format/CHANGELOG.md +++ b/plugins/go-format/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to the `go-format` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.2.2] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + ## [0.2.1] ### Changed diff --git a/plugins/go-format/skills/setup/SKILL.md b/plugins/go-format/skills/setup/SKILL.md index 511e98511..406d3195c 100644 --- a/plugins/go-format/skills/setup/SKILL.md +++ b/plugins/go-format/skills/setup/SKILL.md @@ -66,9 +66,13 @@ result — never claim resolved without re-verifying. For everything else `apply this skill never installs system packages. - toggle off: direct to `/plugin configure go-format` (interactive, any time). Headless: `--config` only applies on a fresh install (ignored once installed), so - reconfigure via `claude plugin uninstall go-format` then - `claude plugin install go-format@ --config go_format_enabled=true`; - this skill never writes user settings or `pluginConfigs`. + reconfigure via `claude plugin uninstall go-format -s ` then + `claude plugin install go-format@ -s --config go_format_enabled=true`; + this skill never writes user settings or `pluginConfigs`. Both commands default to `-s user` — + pass the scope `claude plugin list` reports for this plugin, and run from that project's + directory for a `project`/`local` scope. Defaulting instead uninstalls a separate user-scope + record while the effective install stays in place, so the reinstall lands at a scope that + does not load. Re-running `apply` after everything passes changes nothing and reports "already configured". diff --git a/plugins/guardrails/.claude-plugin/plugin.json b/plugins/guardrails/.claude-plugin/plugin.json index 6cc43021c..bebc2238a 100644 --- a/plugins/guardrails/.claude-plugin/plugin.json +++ b/plugins/guardrails/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "guardrails", - "version": "0.16.0", + "version": "0.16.1", "description": "Eleven safety guards that block secret/credential writes, hardcoded machine-specific paths, git hook-bypass attempts, irreversible git operations (force-push, reset --hard, worktree-wide checkout/restore discards), Bash file-write workarounds that circumvent Write/Edit hooks, commit subjects and gh pr create titles that violate the repo's tracked team convention (when one is declared in .claude/source-control.md), (advisory) hallucinated CLI flags, (advisory) /plugin:skill references that do not resolve, (advisory) un-throttled Workflow fan-out that risks burst 529s, and (advisory) direct git commit/gh pr create calls bypassing this marketplace's own commit/pull-request skills — each independently toggleable.", "author": { "name": "Melodic Software", diff --git a/plugins/guardrails/CHANGELOG.md b/plugins/guardrails/CHANGELOG.md index 1fb759971..864440156 100644 --- a/plugins/guardrails/CHANGELOG.md +++ b/plugins/guardrails/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to the `guardrails` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.16.1] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + The recipe also now requires the reinstall to re-supply **every** key whose value should + stay non-default, not only the key being changed: uninstalling drops the stored + `pluginConfigs` entry, so an omitted key silently falls back to its manifest default. + Record the current values before uninstalling. + ## [0.16.0] ### Added diff --git a/plugins/guardrails/skills/setup/SKILL.md b/plugins/guardrails/skills/setup/SKILL.md index b95075143..7629ce398 100644 --- a/plugins/guardrails/skills/setup/SKILL.md +++ b/plugins/guardrails/skills/setup/SKILL.md @@ -54,9 +54,17 @@ nothing — it only points: section; this skill never installs system packages. - any toggle or scalar change: direct to `/plugin configure guardrails` (interactive, any time). Headless: `--config` only applies on a fresh install (ignored once installed), so - reconfigure via `claude plugin uninstall guardrails` then - `claude plugin install guardrails@ --config KEY=VALUE …` (repeatable); - this skill never writes user settings or `pluginConfigs`. + reconfigure via `claude plugin uninstall guardrails -s ` then + `claude plugin install guardrails@ -s --config KEY=VALUE …` (repeatable); + this skill never writes user settings or `pluginConfigs`. Both commands default to `-s user` — + pass the scope `claude plugin list` reports for this plugin, and run from that project's + directory for a `project`/`local` scope. Defaulting instead uninstalls a separate user-scope + record while the effective install stays in place, so the reinstall lands at a scope that + does not load. Uninstalling also drops the stored `pluginConfigs` entry, so the reinstall must + re-supply **every** key whose value should stay non-default — this plugin declares sixteen, and + a reinstall that passes only the key being changed silently re-enables every guard the operator + had turned off and discards every `*_allow`, `*_bins`, and `*_prefixes` list. Record the current + values before uninstalling; afterwards there is nothing left to read them from. Re-running `apply` after everything passes changes nothing and reports "already configured". diff --git a/plugins/knowledge/.claude-plugin/plugin.json b/plugins/knowledge/.claude-plugin/plugin.json index 1a76eaa2e..6597f9976 100644 --- a/plugins/knowledge/.claude-plugin/plugin.json +++ b/plugins/knowledge/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "knowledge", - "version": "0.9.4", + "version": "0.9.5", "description": "Ingest external knowledge into durable, synthesized artifacts. Ships a book-distillation pipeline (PDF/EPUB into concept-organized, author-attributed skill reference files), a YouTube pipeline (watch, transcript, link harvest, and repo-applicability synthesis), and a course-digest pipeline (extract and synthesize online video courses — Dometrain, Teachable — into repo-applicable recommendations), plus a re-runnable setup action; a configurable library directory governs where synthesized artifacts land in the consuming repo.", "author": { "name": "Melodic Software", diff --git a/plugins/knowledge/CHANGELOG.md b/plugins/knowledge/CHANGELOG.md index ac9d89329..370c5db09 100644 --- a/plugins/knowledge/CHANGELOG.md +++ b/plugins/knowledge/CHANGELOG.md @@ -4,6 +4,22 @@ All notable changes to the `knowledge` plugin are recorded here. The `version` i `.claude-plugin/plugin.json` is the delivery vehicle — a consumer receives a change only after that version increases. +## [0.9.5] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + The recipe also now requires the reinstall to re-supply **every** key whose value should + stay non-default, not only the key being changed: uninstalling drops the stored + `pluginConfigs` entry, so an omitted key silently falls back to its manifest default. + Record the current values before uninstalling. + ## [0.9.4] ### Fixed diff --git a/plugins/knowledge/skills/setup/SKILL.md b/plugins/knowledge/skills/setup/SKILL.md index a3b5b428e..950b79fb9 100644 --- a/plugins/knowledge/skills/setup/SKILL.md +++ b/plugins/knowledge/skills/setup/SKILL.md @@ -61,10 +61,21 @@ reports "already configured". 1. **`library_dir` mismatch — guidance only.** `library_dir` is a personal `userConfig` scalar; never hand-edit `pluginConfigs` or write Claude Code settings. Direct the user to `/plugin configure knowledge` (interactive, any time). Headless: `--config` only applies on a - fresh install (ignored once installed), so reconfigure via `claude plugin uninstall knowledge` - then `claude plugin install knowledge@ --config library_dir=`. The rendered - value is injected at skill load, so a change takes effect in a fresh session — report the - observed value and defer verification to that fresh session; do not claim a change this session. + fresh install (ignored once installed), so reconfigure via + `claude plugin uninstall knowledge -s ` then + `claude plugin install knowledge@ -s --config library_dir=`. Both + commands default to `-s user` — pass the scope `claude plugin list` reports for this plugin, + and run from that project's directory for a `project`/`local` scope. Defaulting instead + uninstalls a separate user-scope record while the effective install stays in place, so the + reinstall lands at a scope that does not load. Uninstalling also drops the stored + `pluginConfigs` entry, so the reinstall must re-supply **every** key whose value should stay + non-default — passing only `library_dir` silently resets `max_concurrent_acquires`, + `yt_dlp_cookies_file`, `yt_dlp_cookies_from_browser`, and `yt_dlp_js_runtimes` to their + manifest defaults, which can break extraction on a machine that needed them. Record the current + values before uninstalling; afterwards there is nothing left to read them from. + The rendered value is injected at skill load, + so a change takes effect in a fresh session — report the observed value and defer verification + to that fresh session; do not claim a change this session. For a root outside the project and home directories, recommend the portable value forms from the README's option table (`~` prefix or `${NAME}` / `%NAME%` env-var reference) instead of a literal machine path, which guardrail hardcoded-path checks rightly block. diff --git a/plugins/machine-health/.claude-plugin/plugin.json b/plugins/machine-health/.claude-plugin/plugin.json index 8d63d0909..f2e7fd6cb 100644 --- a/plugins/machine-health/.claude-plugin/plugin.json +++ b/plugins/machine-health/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "machine-health", - "version": "0.7.0", + "version": "0.7.1", "description": "Workstation health audit: OS-specific checks (disk, OS updates, security posture, CISA KEV correlation) run from a versioned catalog with trend-aware severity, approval-gated remediations, and dated markdown reports. Windows fully implemented; macOS/Linux scaffolded (report UNKNOWN and stop). Machine state persists in the plugin data directory; the report directory and check catalog are configurable.", "author": { "name": "Melodic Software", diff --git a/plugins/machine-health/CHANGELOG.md b/plugins/machine-health/CHANGELOG.md index fa5508203..b7267fed9 100644 --- a/plugins/machine-health/CHANGELOG.md +++ b/plugins/machine-health/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to the `machine-health` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.7.1] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + ## [0.7.0] ### Fixed diff --git a/plugins/machine-health/skills/setup/SKILL.md b/plugins/machine-health/skills/setup/SKILL.md index e6ddbc0e7..66ee49367 100644 --- a/plugins/machine-health/skills/setup/SKILL.md +++ b/plugins/machine-health/skills/setup/SKILL.md @@ -123,9 +123,13 @@ give, rather than writing a dangling entry. set, else `$env:USERPROFILE\Documents\MachineHealth`); to change it, direct the user to `/plugin configure machine-health` (interactive, any time) — the option is stored in plugin config, not the overlay. Headless: `--config` only applies on a fresh install (ignored once - installed), so reconfigure via `claude plugin uninstall machine-health` then - `claude plugin install machine-health@ --config report_dir=`; this skill never - writes user settings or `pluginConfigs`. + installed), so reconfigure via `claude plugin uninstall machine-health -s ` then + `claude plugin install machine-health@ -s --config report_dir=`. + Both commands default to `-s user` — pass the scope `claude plugin list` reports for this + plugin, and run from that project's directory for a `project`/`local` scope. Defaulting + instead uninstalls a separate user-scope record while the effective install stays in place, + so the reinstall lands at a scope that does not load. This skill never writes user settings + or `pluginConfigs`. Re-running `apply` after everything is already set changes nothing and reports "already configured". diff --git a/plugins/markdown-format/.claude-plugin/plugin.json b/plugins/markdown-format/.claude-plugin/plugin.json index c82e5f643..80593823b 100644 --- a/plugins/markdown-format/.claude-plugin/plugin.json +++ b/plugins/markdown-format/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "markdown-format", - "version": "0.6.3", + "version": "0.6.4", "description": "Auto-format and lint Markdown on edit via markdownlint-cli2, using the consuming repo's own markdownlint config.", "author": { "name": "Melodic Software", diff --git a/plugins/markdown-format/CHANGELOG.md b/plugins/markdown-format/CHANGELOG.md index 78f107ede..7065b5fc9 100644 --- a/plugins/markdown-format/CHANGELOG.md +++ b/plugins/markdown-format/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to the `markdown-format` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.6.4] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + ## [0.6.3] ### Fixed diff --git a/plugins/markdown-format/skills/setup/SKILL.md b/plugins/markdown-format/skills/setup/SKILL.md index 313738e69..3adcece27 100644 --- a/plugins/markdown-format/skills/setup/SKILL.md +++ b/plugins/markdown-format/skills/setup/SKILL.md @@ -77,9 +77,14 @@ install command's exit code alone. For everything else `apply` only points: - missing `jq` / Bash: platform install instructions from the README Requirements section; this skill never installs system packages. - toggle off: direct to `/plugin configure markdown-format` (interactive, any - time). Headless: `--config` only applies on a fresh install (ignored once installed), so reconfigure via `claude plugin uninstall markdown-format` then - `claude plugin install markdown-format@ --config markdown_format_enabled=true`; - this skill never writes user settings or `pluginConfigs`. + time). Headless: `--config` only applies on a fresh install (ignored once installed), so + reconfigure via `claude plugin uninstall markdown-format -s ` then + `claude plugin install markdown-format@ -s --config markdown_format_enabled=true`; + this skill never writes user settings or `pluginConfigs`. Both commands default to `-s user` — + pass the scope `claude plugin list` reports for this plugin, and run from that project's + directory for a `project`/`local` scope. Defaulting instead uninstalls a separate user-scope + record while the effective install stays in place, so the reinstall lands at a scope that + does not load. - no markdownlint config: offer to create a minimal `.markdownlint-cli2.jsonc` in the repository root only when explicitly asked — the plugin imposes no rules of its own. diff --git a/plugins/planning/.claude-plugin/plugin.json b/plugins/planning/.claude-plugin/plugin.json index e18dc164e..8ca6649c0 100644 --- a/plugins/planning/.claude-plugin/plugin.json +++ b/plugins/planning/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "planning", - "version": "0.26.2", + "version": "0.26.3", "userConfig": { "use_ask_user_question": { "type": "boolean", diff --git a/plugins/planning/CHANGELOG.md b/plugins/planning/CHANGELOG.md index 9ef5ee454..6bfd78d7f 100644 --- a/plugins/planning/CHANGELOG.md +++ b/plugins/planning/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to the `planning` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.26.3] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + ## [0.26.2] ### Fixed diff --git a/plugins/planning/skills/setup/SKILL.md b/plugins/planning/skills/setup/SKILL.md index 1c4f2d717..d6b3216e4 100644 --- a/plugins/planning/skills/setup/SKILL.md +++ b/plugins/planning/skills/setup/SKILL.md @@ -124,9 +124,12 @@ implement it by reference, do not restate it. Plugin-side notes only: pipeline skills' question rounds render through `AskUserQuestion` or as inline prose — it is not a consumer-project file this skill writes. To change it, direct the user to `/plugin configure planning` (interactive, any time). Headless: `--config` only applies on a fresh install (ignored once installed), -so reconfigure via `claude plugin uninstall planning` then -`claude plugin install planning@ --config use_ask_user_question=true`. This skill never -writes Claude Code user settings or `pluginConfigs`. +so reconfigure via `claude plugin uninstall planning -s ` then +`claude plugin install planning@ -s --config use_ask_user_question=true`. Both +commands default to `-s user` — pass the scope `claude plugin list` reports for this plugin, and run +from that project's directory for a `project`/`local` scope. Defaulting instead uninstalls a separate +user-scope record while the effective install stays in place, so the reinstall lands at a scope that +does not load. This skill never writes Claude Code user settings or `pluginConfigs`. ### Verify after remediation diff --git a/plugins/powershell-format/.claude-plugin/plugin.json b/plugins/powershell-format/.claude-plugin/plugin.json index d10557f3f..b06eeba1c 100644 --- a/plugins/powershell-format/.claude-plugin/plugin.json +++ b/plugins/powershell-format/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "powershell-format", - "version": "0.5.1", + "version": "0.5.2", "description": "Auto-format and lint PowerShell on edit via PSScriptAnalyzer, only when a PSScriptAnalyzerSettings.psd1 governs the repo — using the consuming repo's own analyzer settings.", "author": { "name": "Melodic Software", diff --git a/plugins/powershell-format/CHANGELOG.md b/plugins/powershell-format/CHANGELOG.md index dd3eeb412..24b5f99e7 100644 --- a/plugins/powershell-format/CHANGELOG.md +++ b/plugins/powershell-format/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to the `powershell-format` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.5.2] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + ## [0.5.1] ### Changed diff --git a/plugins/powershell-format/skills/setup/SKILL.md b/plugins/powershell-format/skills/setup/SKILL.md index 29aa6c7a8..e1003ede8 100644 --- a/plugins/powershell-format/skills/setup/SKILL.md +++ b/plugins/powershell-format/skills/setup/SKILL.md @@ -84,9 +84,14 @@ Run `check`, then for each finding point at the resolution — this skill instal it. The settings file is the executed-adjacent trust boundary above; the choice and the edit belong to the consumer. - toggle off: direct to `/plugin configure powershell-format` (interactive, any - time). Headless: `--config` only applies on a fresh install (ignored once installed), so reconfigure via `claude plugin uninstall powershell-format` then - `claude plugin install powershell-format@ --config powershell_format_enabled=true`; - this skill never writes user settings or `pluginConfigs`. + time). Headless: `--config` only applies on a fresh install (ignored once installed), so + reconfigure via `claude plugin uninstall powershell-format -s ` then + `claude plugin install powershell-format@ -s --config powershell_format_enabled=true`; + this skill never writes user settings or `pluginConfigs`. Both commands default to `-s user` — + pass the scope `claude plugin list` reports for this plugin, and run from that project's + directory for a `project`/`local` scope. Defaulting instead uninstalls a separate user-scope + record while the effective install stays in place, so the reinstall lands at a scope that + does not load. After pointing at a remediation, re-run the relevant `check` probe and report its actual result — never claim resolved on the reader's report that they installed something. diff --git a/plugins/ruff-format/.claude-plugin/plugin.json b/plugins/ruff-format/.claude-plugin/plugin.json index e7c4eae3e..79e060d1a 100644 --- a/plugins/ruff-format/.claude-plugin/plugin.json +++ b/plugins/ruff-format/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "ruff-format", - "version": "0.5.1", + "version": "0.5.2", "description": "Auto-format and lint Python on edit via Ruff, only when a Ruff config governs the repo — using the consuming repo's own Ruff config.", "author": { "name": "Melodic Software", diff --git a/plugins/ruff-format/CHANGELOG.md b/plugins/ruff-format/CHANGELOG.md index 542a7165d..395efd310 100644 --- a/plugins/ruff-format/CHANGELOG.md +++ b/plugins/ruff-format/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to the `ruff-format` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.5.2] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + ## [0.5.1] ### Changed diff --git a/plugins/ruff-format/skills/setup/SKILL.md b/plugins/ruff-format/skills/setup/SKILL.md index c30077728..053951f0e 100644 --- a/plugins/ruff-format/skills/setup/SKILL.md +++ b/plugins/ruff-format/skills/setup/SKILL.md @@ -97,9 +97,14 @@ only points: - missing `jq` / Bash: platform install instructions from the README Requirements section; this skill never installs system packages. - toggle off: direct to `/plugin configure ruff-format` (interactive, any - time). Headless: `--config` only applies on a fresh install (ignored once installed), so reconfigure via `claude plugin uninstall ruff-format` then - `claude plugin install ruff-format@ --config ruff_format_enabled=true`; - this skill never writes user settings or `pluginConfigs`. + time). Headless: `--config` only applies on a fresh install (ignored once installed), so + reconfigure via `claude plugin uninstall ruff-format -s ` then + `claude plugin install ruff-format@ -s --config ruff_format_enabled=true`; + this skill never writes user settings or `pluginConfigs`. Both commands default to `-s user` — + pass the scope `claude plugin list` reports for this plugin, and run from that project's + directory for a `project`/`local` scope. Defaulting instead uninstalls a separate user-scope + record while the effective install stays in place, so the reinstall lands at a scope that + does not load. - no Ruff config: offer to create a minimal Ruff config in the repository root only when explicitly asked — the plugin imposes no rules of its own. diff --git a/plugins/skill-quality/.claude-plugin/plugin.json b/plugins/skill-quality/.claude-plugin/plugin.json index 36df2885b..1f541c354 100644 --- a/plugins/skill-quality/.claude-plugin/plugin.json +++ b/plugins/skill-quality/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "skill-quality", - "version": "0.10.1", + "version": "0.10.2", "description": "Skill-authoring QA tooling: a static contract checker that runs twenty deterministic checks over a Claude Code skill (frontmatter, listing-budget cap, trigger-keyword preservation, line caps, broken internal refs, markdownlint, gotchas surface, evals presence, precompute opportunity, injection shell-declaration) and a bundled evals.json schema for validation. Runs against any repo's skills directory via the convention-resolution ladder — no baked layout.", "author": { "name": "Melodic Software", diff --git a/plugins/skill-quality/CHANGELOG.md b/plugins/skill-quality/CHANGELOG.md index 260298b6b..1e5005552 100644 --- a/plugins/skill-quality/CHANGELOG.md +++ b/plugins/skill-quality/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to the `skill-quality` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.10.2] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + ## [0.10.1] ### Documentation diff --git a/plugins/skill-quality/skills/setup/SKILL.md b/plugins/skill-quality/skills/setup/SKILL.md index 0459ba03b..e0b5a55b4 100644 --- a/plugins/skill-quality/skills/setup/SKILL.md +++ b/plugins/skill-quality/skills/setup/SKILL.md @@ -43,9 +43,12 @@ verify-and-route: the personal `skills_root` should point there. Reconfigure through the path below, then rerun `check`. - **Reconfiguring the personal option:** `/plugin configure skill-quality` (interactive, any time). Headless: `--config` only applies on a fresh install (ignored once installed), so reconfigure via - `claude plugin uninstall skill-quality` then - `claude plugin install skill-quality@ --config skills_root=`; this skill never - writes user settings or `pluginConfigs`. + `claude plugin uninstall skill-quality -s ` then + `claude plugin install skill-quality@ -s --config skills_root=`. Both + commands default to `-s user` — pass the scope `claude plugin list` reports for this plugin, and + run from that project's directory for a `project`/`local` scope. Defaulting instead uninstalls a + separate user-scope record while the effective install stays in place, so the reinstall lands at + a scope that does not load. This skill never writes user settings or `pluginConfigs`. - **One-run override (no persistence):** for a single run against a different root, the checker also honors the `CHECK_SKILL_SKILLS_ROOT` environment variable; do not persist that variable on the user's behalf. diff --git a/plugins/source-control/.claude-plugin/plugin.json b/plugins/source-control/.claude-plugin/plugin.json index d73e43caf..d9d6aca62 100644 --- a/plugins/source-control/.claude-plugin/plugin.json +++ b/plugins/source-control/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "source-control", - "version": "0.31.3", + "version": "0.31.4", "description": "Git and GitHub delivery workflow: /commit (Conventional Commits + Co-Authored-By trailer via safe heredoc mechanics), /pull-request (prep, create, CI monitoring, review-comment triage, merge, CI-log fetch), /babysit-prs (self-pacing fleet loop — safe by default; opt-in worker/autopilot tiers add gate-checked merge and thread resolution behind a deterministic Python engine), /babysit-loop (the loop-lane merge lane: a standing or drain loop that invokes babysit-prs per cycle, configured through repo-scoped babysit_loop_* keys on the layered source-control.md seam, with merge authority human-only until the target repo's tracked config adopts the lane, a gate-proven C2-mechanical baseline once adopted, and merge-rung raises binding from the team-tracked layer only), /worktree (create, status, cleanup, audit for parallel-session isolation), /setup (check the effective commit-subject / PR-title convention merged across its config layers and the babysit-prs config, or apply — interview the repo and write the convention config to a chosen layer), and /resolve-conflicts (intent-first merge/rebase conflict resolution with a semantic-conflict sweep — never --abort). The commit-subject / PR-title convention is configurable via a source-control.md config written by a re-runnable setup skill, layered across a ~/.claude user-global file, the tracked team file, and a gitignored .claude/source-control.local.md personal overlay merged per key; Conventional Commits is the default when no convention is declared.", "author": { "name": "Melodic Software", diff --git a/plugins/source-control/CHANGELOG.md b/plugins/source-control/CHANGELOG.md index c4ec4ee0d..d4bfb4679 100644 --- a/plugins/source-control/CHANGELOG.md +++ b/plugins/source-control/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to the `source-control` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.31.4] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + The recipe also now requires the reinstall to re-supply **every** key whose value should + stay non-default, not only the key being changed: uninstalling drops the stored + `pluginConfigs` entry, so an omitted key silently falls back to its manifest default. + Record the current values before uninstalling. + ## [0.31.3] ### Changed diff --git a/plugins/source-control/skills/setup/SKILL.md b/plugins/source-control/skills/setup/SKILL.md index 48076c421..b137f9177 100644 --- a/plugins/source-control/skills/setup/SKILL.md +++ b/plugins/source-control/skills/setup/SKILL.md @@ -243,10 +243,20 @@ sanctioned paths: - **Interactive:** `/plugin configure source-control` (or the `/plugin` dialog → source-control → configure), any time — Claude Code prompts per key using the manifest's types and defaults. - **Headless / CI:** `--config` only applies on a fresh install (ignored once installed), so - reconfiguring headless means `claude plugin uninstall source-control` then reinstalling with the - new values: `claude plugin install source-control@ --config KEY=VALUE` (repeatable per - key). Multi-value keys (`babysit_watched_owners`, `babysit_self_logins`, `babysit_review_bot_logins`, - `babysit_extra_bot_logins`) are supplied comma-joined. + reconfiguring headless means `claude plugin uninstall source-control -s ` then + reinstalling with the new values: + `claude plugin install source-control@ -s --config KEY=VALUE` (repeatable + per key). Multi-value keys (`babysit_watched_owners`, `babysit_self_logins`, + `babysit_review_bot_logins`, `babysit_extra_bot_logins`) are supplied comma-joined. Both + commands default to `-s user` — pass the scope `claude plugin list` reports for this plugin, + and run from that project's directory for a `project`/`local` scope. Defaulting instead + uninstalls a separate user-scope record while the effective install stays in place, so the + reinstall lands at a scope that does not load. Uninstalling also drops the stored + `pluginConfigs` entry, so the reinstall must re-supply **every** key whose value should stay + non-default, not only the key being changed — this plugin declares twenty-nine, so a reinstall + that passes one silently resets the babysit fleet's owners, logins, tiers, caps, and worktree + roots to their manifest defaults. Record the current values before uninstalling; afterwards + there is nothing left to read them from. Reconfiguring `userConfig` does not reach the already-running session — after either path, the new values become visible only in a fresh session. Do not re-run the babysit `check` in the same session diff --git a/plugins/typos-format/.claude-plugin/plugin.json b/plugins/typos-format/.claude-plugin/plugin.json index 5f49d5243..f1723f2bd 100644 --- a/plugins/typos-format/.claude-plugin/plugin.json +++ b/plugins/typos-format/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "typos-format", - "version": "0.3.1", + "version": "0.3.2", "description": "Auto-fix spelling typos on edit via typos-cli, unconditionally — honoring the consuming repo's own typos configuration when one is present.", "author": { "name": "Melodic Software", diff --git a/plugins/typos-format/CHANGELOG.md b/plugins/typos-format/CHANGELOG.md index 8723f8c03..826a43b02 100644 --- a/plugins/typos-format/CHANGELOG.md +++ b/plugins/typos-format/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to the `typos-format` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [0.3.2] + +### Fixed + +- **Headless reconfigure recipe now preserves install scope (#1406).** The `claude plugin + uninstall` → `claude plugin install ... --config` recipe in `skills/setup/SKILL.md` defaulted + both halves to `-s user`. When this plugin is installed at `project` or `local` scope, that + silently uninstalled a separate user-scope record while the effective project/local install kept + loading, and the reinstall landed at a scope that does not load. Both commands now carry + `-s `, sourced from what `claude plugin list` reports for this plugin — the same fix + already applied to `session-flow` and `rate-limit-guard` in #1393. + ## [0.3.1] ### Changed diff --git a/plugins/typos-format/skills/setup/SKILL.md b/plugins/typos-format/skills/setup/SKILL.md index 048ae35f0..64fc741fe 100644 --- a/plugins/typos-format/skills/setup/SKILL.md +++ b/plugins/typos-format/skills/setup/SKILL.md @@ -68,9 +68,13 @@ never claim resolved without re-verifying. For everything else `apply` only poin this skill never installs system packages. - toggle off: direct to `/plugin configure typos-format` (interactive, any time). Headless: `--config` only applies on a fresh install (ignored once installed), so - reconfigure via `claude plugin uninstall typos-format` then - `claude plugin install typos-format@ --config typos_format_enabled=true`; - this skill never writes user settings or `pluginConfigs`. + reconfigure via `claude plugin uninstall typos-format -s ` then + `claude plugin install typos-format@ -s --config typos_format_enabled=true`; + this skill never writes user settings or `pluginConfigs`. Both commands default to `-s user` — + pass the scope `claude plugin list` reports for this plugin, and run from that project's + directory for a `project`/`local` scope. Defaulting instead uninstalls a separate user-scope + record while the effective install stays in place, so the reinstall lands at a scope that + does not load. - no typos config: offer to create a minimal `_typos.toml` in the repository root only when explicitly asked — the plugin imposes no rules of its own.