Fix plugin installation format from marketplace URL to GitHub repository path#14425
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
805ee16
into
copilot/add-plugin-to-smoke-agentic-workflows
There was a problem hiding this comment.
Pull request overview
Updates plugin identifiers from marketplace-style references (plugin@marketplace) to GitHub repository paths so smoke workflows use a format that the Copilot CLI accepts, and aligns schema/docs messaging around supported plugin formats.
Changes:
- Updated smoke workflows and their generated lockfiles to install
anthropics/claude-code/plugins/explanatory-output-style. - Updated schema descriptions/examples to emphasize GitHub repo/path plugin identifiers and remove marketplace examples.
- Updated frontmatter documentation and release notes to describe the supported plugin identifier format.
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| pkg/parser/schemas/main_workflow_schema.json | Removes marketplace examples and updates descriptions to emphasize GitHub repo/path plugin IDs (pattern still permissive). |
| docs/src/content/docs/reference/frontmatter.md | Removes marketplace examples and updates guidance to focus on GitHub repo/path identifiers. |
| .github/workflows/smoke-test-tools.md | Switches plugin to GitHub repo/path format for Copilot smoke workflow. |
| .github/workflows/smoke-test-tools.lock.yml | Updates generated install step to use GitHub repo/path plugin identifier. |
| .github/workflows/smoke-project.md | Switches plugin to GitHub repo/path format for Codex smoke workflow. |
| .github/workflows/smoke-project.lock.yml | Updates generated install step to use GitHub repo/path plugin identifier. |
| .github/workflows/smoke-copilot.md | Switches plugin to GitHub repo/path format for Copilot smoke workflow. |
| .github/workflows/smoke-copilot.lock.yml | Updates generated install step to use GitHub repo/path plugin identifier. |
| .github/workflows/smoke-codex.md | Switches plugin to GitHub repo/path format for Codex smoke workflow. |
| .github/workflows/smoke-codex.lock.yml | Updates generated install step to use GitHub repo/path plugin identifier. |
| .github/workflows/smoke-claude.md | Switches plugin to GitHub repo/path format for Claude smoke workflow. |
| .github/workflows/smoke-claude.lock.yml | Updates generated install step to use GitHub repo/path plugin identifier. |
| .changeset/patch-add-explanatory-output-style-plugin.md | Updates release note entry to reflect the new supported plugin identifier format. |
Comments suppressed due to low confidence (1)
pkg/parser/schemas/main_workflow_schema.json:2569
- Within the object-format
plugins.repositems, the string variant description was updated to de-emphasize marketplace formats, but the adjacent object variant’sidfield description still listsplugin-name@marketplace/org/repo@marketplace. This is inconsistent and can confuse users; update theiddescription here to match the new guidance (and/or add the same “future support only” note).
"type": "string",
"pattern": "^([a-zA-Z0-9_-]+(/[a-zA-Z0-9_-]+)+|[a-zA-Z0-9_-]+)(@[a-zA-Z0-9_-]+)?$",
"description": "Plugin identifier in GitHub repository format: 'org/repo' or 'org/repo/path/to/plugin' (e.g., 'github/example-plugin', 'anthropics/claude-code/plugins/explanatory-output-style'). The pattern allows @marketplace syntax for potential future support, but current engines only support GitHub repository paths."
},
{
"type": "object",
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - **Marketplace reference**: `plugin-name@marketplace` (e.g., `pyright-lsp@claude-plugins-official`) | ||
| - **Repository with marketplace**: `org/repo@marketplace` (e.g., `anthropics/claude-code@anthropic-plugins`) | ||
|
|
||
| **Note**: The plugin format must be compatible with the engine's CLI `plugin install` command. Currently, GitHub repository paths (with optional sub-paths) are the standard format supported across engines. |
There was a problem hiding this comment.
The docs remove marketplace examples but the new note doesn’t explicitly call out that @marketplace identifiers are currently not supported (even though the schema still permits them). Adding an explicit sentence here would better align the docs with the actual CLI behavior/error and prevent users from assuming plugin@marketplace will work.
| **Note**: The plugin format must be compatible with the engine's CLI `plugin install` command. Currently, GitHub repository paths (with optional sub-paths) are the standard format supported across engines. | |
| **Note**: The plugin format must be compatible with the engine's CLI `plugin install` command. Currently, GitHub repository paths (with optional sub-paths) are the standard format supported across engines. `@marketplace` identifiers (for example, `plugin@marketplace`) are not currently supported and will result in a CLI error, even though the schema permits them. |
| "type": "string", | ||
| "pattern": "^([a-zA-Z0-9_-]+(/[a-zA-Z0-9_-]+)+|[a-zA-Z0-9_-]+)(@[a-zA-Z0-9_-]+)?$", | ||
| "description": "Plugin identifier in one of these formats: 'org/repo', 'org/repo/path/to/plugin', 'plugin-name@marketplace', or 'org/repo@marketplace' (e.g., 'github/example-plugin', 'anthropics/claude-code/plugins/explanatory-output-style', 'pyright-lsp@claude-plugins-official')" | ||
| "description": "Plugin identifier in GitHub repository format: 'org/repo' or 'org/repo/path/to/plugin' (e.g., 'github/example-plugin', 'anthropics/claude-code/plugins/explanatory-output-style'). The pattern allows @marketplace syntax for potential future support, but current engines only support GitHub repository paths." | ||
| }, |
There was a problem hiding this comment.
The regex pattern for plugin IDs still allows a single segment (e.g., plugin-name) and an optional @marketplace suffix, but the updated description states that current engines only support GitHub repository paths (org/repo with optional sub-paths). This mismatch means schema validation will accept values that will later fail at runtime; consider tightening the pattern to require at least org/repo, or explicitly documenting that these legacy forms are accepted by schema only for backward compatibility and are not supported by engines.
This issue also appears on line 2564 of the same file.
The
copilot plugin installcommand fails with marketplace URL syntax (plugin@marketplace). The Copilot CLI expects GitHub repository paths, not marketplace references.Error:
Changes
Workflows (5 files)
anthropics/claude-code/plugins/explanatory-output-styleinstead ofexplanatory-output-style@claude-plugins-officialSchema & Documentation
@marketplacepattern in schema is reserved for potential future supportorg/repoororg/repo/path/to/pluginExample:
The schema pattern still permits
@syntax to avoid breaking existing validation, but documentation now clarifies this is not currently functional.Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.