docs(reference): add marketplace.json schema specification#1117
Open
mvanhorn wants to merge 1 commit intomicrosoft:mainfrom
Open
docs(reference): add marketplace.json schema specification#1117mvanhorn wants to merge 1 commit intomicrosoft:mainfrom
mvanhorn wants to merge 1 commit intomicrosoft:mainfrom
Conversation
…#757) Adds a dedicated reference page documenting the marketplace.json schema APM consumes and produces, alongside the existing manifest and lockfile specs. The page covers all top-level and per-plugin fields, source types, source-key aliases for Copilot CLI compatibility, the metadata.pluginRoot semantics, validation against the canonical JSON Schema fixture, and versioning rules. The existing Marketplaces guide gets a single "See also" callout linking to the new reference. The canonical JSON Schema at tests/fixtures/schemas/claude-code-marketplace.schema.json remains the source of truth; this document is the human-readable mirror. Refs microsoft#757
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a dedicated human-readable reference for the marketplace.json schema to reduce the need to reverse-engineer the format from guides and fixtures, and links to it from the existing Marketplaces guide.
Changes:
- Added a new reference page documenting the
marketplace.jsonschema and source variants/aliases. - Added a "See also" tip in the Marketplaces guide linking to the new schema reference.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| docs/src/content/docs/reference/marketplace-schema.md | New reference page describing the marketplace.json schema, including fields, source types, aliases, examples, and validation guidance. |
| docs/src/content/docs/guides/marketplaces.md | Adds a tip callout linking readers to the new schema reference page. |
Comment on lines
+126
to
+130
| | String `source` | `"./tools/local-plugin"` | None beyond the string itself. | Path to the plugin root, relative to the marketplace root. The canonical path form begins with `./`; APM also resolves bare names through `metadata.pluginRoot` as described in [section 5](#5-plugin-root-directory). | `"./tools/local-plugin"` | | ||
| | `github` | `{ "source": "github", "repo": "owner/repo" }` | `source`, `repo` | GitHub repository in `owner/repo` format. | `{ "source": "github", "repo": "acme/code-review-plugin" }` | | ||
| | `url` | `{ "source": "url", "url": "https://..." }` | `source`, `url` | Full Git repository URL, such as HTTPS or `git@` SSH syntax. | `{ "source": "url", "url": "https://github.com/acme/style-guide.git" }` | | ||
| | `git-subdir` | `{ "source": "git-subdir", "url": "owner/repo", "path": "plugins/tool" }` | `source`, `url`, `path` | Plugin located in a subdirectory of a larger repository. The repository is cloned sparsely so only the selected subdirectory is materialized. | `{ "source": "git-subdir", "url": "acme/monorepo", "path": "plugins/eslint-rules" }` | | ||
|
|
Comment on lines
+185
to
+193
| ```json | ||
| { | ||
| "name": "Acme Plugins", | ||
| "owner": { "name": "Acme Corp" }, | ||
| "metadata": { "pluginRoot": "./plugins" }, | ||
| "plugins": [ | ||
| { "name": "my-tool", "source": "my-tool" } | ||
| ] | ||
| } |
4 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.
Problem
Issue #757 calls out that there is no dedicated reference for the
marketplace.jsonschema. Authors and tooling have to reverse-engineer the format fromguides/marketplaces.md,guides/marketplace-authoring.md, and the JSON Schema fixture undertests/fixtures/.Change
Adds a new reference page at
docs/src/content/docs/reference/marketplace-schema.md(sidebar order 7), modelled onmanifest-schema.mdandlockfile-spec.md:<dl>header and a link to the canonical JSON Schema fixture.github,url,git-subdir, stringsource) plus thesource/repo/sha/url/pathalias table for Copilot CLI back-compat.metadata.pluginRootsemantics, with a worked example.jsonschema.The existing
guides/marketplaces.mdpage gets one Starlight:::tip"See also" callout linking to the new reference. No other prose was changed.Notes
tests/fixtures/schemas/claude-code-marketplace.schema.json. This page is the human-readable mirror, not a redefinition.repo/subdir) and the canonical schema uses Claude-Code names (url/path), the new reference documents the canonical names and lists the legacy aliases in §4.1.1 instead of contradicting the guide.Test plan
pnpm --dir docs build(or whatever the docs site uses) succeeds.examplesandexperimental(order 7).Refs #757