docs(spec-loop): specify marketplace distribution, index every spec - #1163
Merged
Conversation
Closes the gap apache#1162 recorded rather than papered over: the plugin marketplace surface had no spec at all. `marketplace-distribution.md` covers the two manifest families (the vendor-neutral Agent Plugins 1.0 root manifest with its closed ten-field schema, and the five client-specific ones), the ten Claude-Code-only per-family plugins, and the generator/CI gate that keeps them in step with `family:` frontmatter. The load-bearing part is the versioning rule. The marketplace is served from `main`, so adopters install dev versions as the normal case, and `claude plugin update` compares version strings rather than commit SHAs — a frozen `.devN` suffix leaves an adopter told they are "already at the latest version" indefinitely, recoverable only by a full uninstall and reinstall. Recorded with the reason, along with the fact that nothing checks the stamp is fresh, which is the one failure mode that is silent in exactly the wrong direction. Status is `experimental`, not `stable`: only the Claude Code manifests have been exercised against a live install. The rest conform to their vendors' published documentation and nothing more, which the Known gaps now say. While registering it: ten specs were absent from both index files (`overview.md` and `README.md`) — among them `security-model-preparation` from apache#1156 and every per-family spec. All ten are now listed in both, so the indexes are complete. Also corrects `docs/setup/marketplaces.md`, which said 41 of 70 skill descriptions carry placeholder syntax; recounted from live frontmatter it is 45 of 74. Generated-by: Claude Code (Opus 5)
6 tasks
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Closes the gap #1162 recorded rather than papered over: the plugin marketplace
surface had no spec at all. Adds
marketplace-distribution.md, and — foundwhile registering it — fixes the spec indexes, which were listing about
two-thirds of the specs that exist.
The new spec
tools/spec-loop/specs/marketplace-distribution.mdcovers:vendor-neutral Agent Plugins 1.0 root
plugin.jsonwith its pinned$schemaand closed ten-field set — which is why a Claude-only component path
cannot leak into it — and the five client-specific manifests
(
.claude-plugin/,.codex-plugin/+.agents/plugins/, the rootmarketplace.json,gemini-extension.json,apm.yml).catalogs list only the all-in-one plugin: advertising a family plugin there
would offer those clients something they cannot install.
check-family-plugins.pyis both--fixand theprek hook, with
pyproject.toml'sproject.versionas the single authorityevery manifest mirrors verbatim.
Three contract points are the reason this is worth specifying at all:
served from
main, so adopters install dev versions as the normal case, andclaude plugin updatecompares version strings, not commit SHAs. A frozen.devNleaves an adopter told they are "already at the latest version"however far behind they have fallen — recoverable only by
claude plugin marketplace updateplus a full uninstall and reinstall ofevery plugin, which nobody discovers unaided.
family:frontmatter, never a name prefix.pr-stale-sweep,pre-first-pr-checkandreviewer-routingare allfamily: pr-managementwithout carrying the prefix.method, and all three are correct. This reads like a bug until you know why.
Status is
experimental, notstable: only the Claude Code manifests havebeen exercised against a live install. The rest conform to their vendors'
published documentation and nothing more, and the Known gaps say so — including
that nothing checks the dev stamp is fresh, which is the one failure mode that
is silent in exactly the wrong direction.
Spec indexes were incomplete
Registering the new spec surfaced that ten specs were absent from both
overview.mdandREADME.md— includingsecurity-model-preparationfrom#1156 and every per-family spec (
issue-management-family,pr-management-family,repo-health-family,contributor-growth,good-first-issue-sweep), plusorganization-adapters,codex-runtimeandspec-gap-staleness. All ten are now listed in both, verified by re-scanningrather than assuming the edit was complete.
Also
docs/setup/marketplaces.mdsaid 41 of 70 skilldescriptionfields carryplaceholder syntax. Recounted from live frontmatter: 45 of 74. (The claim
matters because the page uses it to argue the placeholders are spec-conformant
rather than a portability risk — the Agent Skills spec constrains
descriptionon length only.)
Test plan
prek run --all-filespasses (exit 0)spec-validate tools/spec-loop/specs/— no violations(
check-family-plugins.py, the manifests themselves) or againstdocs/setup/marketplaces.md, not inferredNotes for reviewers
The
adoption-and-setup.mdKnown-gaps bullet added in #1162 is replaced by apointer to the new spec, so the two surfaces cross-reference rather than one
claiming the other is missing.
Worth a second opinion on the
experimentalstatus. It is defensible eitherway — the manifests are generated and CI-enforced, which argues
stable; butfive of six ecosystems have never been live-installed, which is what I weighted.
🤖 Generated with Claude Code
https://claude.ai/code/session_01So3JRGXrbqSGrohtZuHWKg