Summary
All four plugins ship "version": "0.1.0" in their plugin.json, but the marketplace, git tag, and docs all use 0.4.0-preview.1. Per the Claude Code plugin spec, plugin.json wins over the marketplace entry, so a user who installs from the marketplace sees 0.1.0 in /plugin list — directly contradicting the documented expected output.
Evidence
$ grep -m1 '"version"' plugins/*/.claude-plugin/plugin.json
ai-infra: 0.1.0
agenticops: 0.1.0
aidlc: 0.1.0
modernization: 0.1.0
$ grep '"version"' .claude-plugin/marketplace.json # top-level + per-plugin
0.4.0-preview.1 (x5)
$ git tag --sort=-v:refname | head -1
v0.4.0-preview.1
Claude Code plugins-reference → Version management:
The version is resolved from the first of these that is set: 1. The version field in the plugin's plugin.json … 2. The version field in the plugin's marketplace entry … If also set in the marketplace entry, plugin.json wins.
The docs assert the opposite outcome:
docs/docs/getting-started.md:104-107 — ai-infra v0.4.0-preview.1 enabled (×4)
docs/docs/claude-code-setup.md:56-59 — same
Impact
/plugin list shows 0.1.0; users cannot tell whether they have the intended release.
/plugin update keys off the version string — a future 0.4.0-preview.2 bump in plugin.json would be required for users to receive updates; right now the stale 0.1.0 masks the real release line.
Proposed fix
Bump version to 0.4.0-preview.1 in all four plugins/*/.claude-plugin/plugin.json to match marketplace.json and the git tag. Add a release-hygiene check (the release.yml workflow, or oma compile --check) asserting plugin.json.version == marketplace entry version == tag, so the two never drift again.
Filed from a full-site/repo re-verification of the "install a plugin → get the dual-axis" UX.
Summary
All four plugins ship
"version": "0.1.0"in theirplugin.json, but the marketplace, git tag, and docs all use0.4.0-preview.1. Per the Claude Code plugin spec,plugin.jsonwins over the marketplace entry, so a user who installs from the marketplace sees0.1.0in/plugin list— directly contradicting the documented expected output.Evidence
Claude Code plugins-reference → Version management:
The docs assert the opposite outcome:
docs/docs/getting-started.md:104-107—ai-infra v0.4.0-preview.1 enabled(×4)docs/docs/claude-code-setup.md:56-59— sameImpact
/plugin listshows0.1.0; users cannot tell whether they have the intended release./plugin updatekeys off the version string — a future0.4.0-preview.2bump inplugin.jsonwould be required for users to receive updates; right now the stale0.1.0masks the real release line.Proposed fix
Bump
versionto0.4.0-preview.1in all fourplugins/*/.claude-plugin/plugin.jsonto matchmarketplace.jsonand the git tag. Add a release-hygiene check (therelease.ymlworkflow, oroma compile --check) assertingplugin.json.version == marketplace entry version == tag, so the two never drift again.Filed from a full-site/repo re-verification of the "install a plugin → get the dual-axis" UX.