Skip to content

Adopt Agent Plugins 1.0 #29

Open
Open

Description

Adopt Agent Plugins 1.0

Why this matters

Agent Plugins 1.0 is an open, vendor-neutral standard for packaging reusable Agent Skills and MCP servers so they can be discovered and loaded consistently across compatible clients.

Adopting the standard would make this plugin easier to consume across GitHub Copilot, Codex, Cursor, VS Code, and other compatible clients without requiring client-specific repackaging or duplicated component structures.

Resources:

Requested changes

Please update this plugin to conform to the Agent Plugins 1.0 specification:

  • Move plugin.json to the root of the plugin directory.
  • Add the $schema field:
{
    "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json"
  }
  • Align the manifest fields with the Agent Plugins 1.0 schema.
  • Place portable Agent Skills under the plugin-root skills/ directory.
  • Place MCP server configuration in the plugin-root mcp.json file, where applicable.
  • Use the com.github.copilot/ namespace for GitHub Copilot-specific components and metadata that are outside the portable Agent Plugins contract, such as agents, hooks, instructions, and extensions (including canvases).

The intended structure is similar to:

plugin/
  ├── plugin.json
  ├── skills/
  │   └── <skill>/
  │       └── SKILL.md
  ├── mcp.json
  └── com.github.copilot/
      └── <GitHub Copilot-specific components>

Compatibility considerations

If this repository also supports Claude Code's plugin format, please retain the Claude-specific manifest and layout as needed. Claude Code does not currently support the Agent Plugins 1.0 specification, so .claude/plugin.json may still be required for Claude Code compatibility.

However, the portable Agent Plugins manifest should live at the plugin root, and portable components should follow the standard locations described in the specification.

If the current plugin uses a non-standard location for any of the following, please consider moving or exposing them through the standard layout:

  • Skills should be discoverable under the plugin-root skills/ directory.
  • MCP configuration should be available through the plugin-root mcp.json file.
  • Client-specific files should be placed under the appropriate reverse-domain namespace, such as com.github.copilot/.

This would allow the plugin to support multiple clients while preserving any existing client-specific integrations.

Activity

  1. tlmii commented on Aug 26, 2026

    @tlmii
    Member

    We've already begun this work around the same time you started converting the plugins in awesome-copilot. At the time I wasn't really clear how ours could be converted, since we are basically just one custom agent (not supported by the spec) and some hooks (also not supported by the spec).

    Aaron Powell (@aaronpowell) I notice the requested changes section says

    Use the com.github.copilot/ namespace for GitHub Copilot-specific components and metadata that are outside the portable Agent Plugins contract, such as agents, hooks, instructions, and extensions (including canvases).

    But then all the converted plugins in awesome-copilot seem to be using a com.github.awesome-copilot namespace (e.g. https://github.com/github/awesome-copilot/blob/71f7c9b1dc5044287b62fc700efc034da4065f87/plugins/database-data-management/plugin.json#L22-L26).

    What's the benefit/value/difference of the awesome-copilot specific namespace there?

  2. aaronpowell commented on Sep 7, 2026

    @aaronpowell
    Author

    Sorry Tim Mulholland (@tlmii), I missed your reply in my notifications.

    Regarding you question on the usage of com.github.copilot vs com.github.awesome-copilot - the former is what is used by the Copilot harnesses (CLI, app, VS Code, etc.) to identify the things we're shipping in the plugin that are "non-standard" (per the current spec), such as hooks, canvases, instructions, and agents. But in the Awesome Copilot repo, because we have a "publishing pipeline" for plugins in the repo, we "publish" them to the markeplace branch, we needed some way to say "the skill from the skills folder needs to be in this plugin", since we have skills that can be installed as skills as we as skills that can be install via plugins. So for that, we use our custom namespace, com.github.awesome-copilot so that we can then bootstrap our publishing process.

    What you'll notice if you go to the published plugin at https://github.com/github/awesome-copilot/blob/a6f5d4806061a9123396e22e29bf3bcb01faaa03/plugins/database-data-management/plugin.json#L1 is that we remove the com.github.awesome-copilot stuff.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions