# Manifest Field Reference Quick reference for the two plugin manifests generated by this skill. Source of truth: `${CLAUDE_PLUGIN_ROOT}/skills/marketplace-architect/references/claude-code.md` and `copilot-cli.md` in the same directory. --- ## Claude Code — `.claude-plugin/plugin.json` Only `name` is required. Add other fields only when needed. ```json { "name": "my-plugin", "displayName": "My Plugin", "description": "What it does", "author": { "name": "Name", "url": "https://..." }, "license": "MIT", "keywords": [] } ``` - `displayName` — human-readable label shown in the Claude Code UI. Update it to a title-cased string after placeholder substitution — it defaults to the kebab slug. - `version` — omit to use git SHA per commit (recommended). Set only for explicit release gates. - Component paths (`skills/`, `agents/`, etc.) are declared in the marketplace entry, not here. --- ## Copilot CLI — `plugin.json` at plugin root ```json { "name": "my-plugin", "description": "What it does", "author": { "name": "Name", "email": "you@example.com" }, "license": "MIT", "keywords": [], "agents": "agents/", "skills": ["skills/"], "hooks": "hooks.json", "mcpServers": ".mcp.json" } ``` - `author.email` (not `url`) — Copilot uses email; Claude uses url. Both manifests diverge here. - Component paths are declared inline in this manifest (Copilot requires them; Claude ignores them). --- ## Marketplace entry (in `.claude-plugin/marketplace.json`) ```json { "name": "my-plugin", "source": "./plugins/my-plugin", "description": "..." } ``` - `source` must start with `./` for Claude Code compatibility. - Do not set `version` here if it is also set in `plugin.json` — `plugin.json` wins silently. --- ## Environment variables (for hooks and MCP configs) - `${CLAUDE_PLUGIN_ROOT}` — absolute path to the plugin's installation cache. Use for all in-plugin file references in hooks and `.mcp.json`. Changes on update. - `${CLAUDE_PLUGIN_DATA}` — persistent directory that survives updates. Use for state, caches, and `node_modules`.