Files
holocron/plugins/kyberforge/skills/plugin-create/references/manifest-fields.md
Defame1297 2b649782a2 fix(kyberforge): resolve plugin-create path bug, validate.sh false positives, and write-skill YAML error
- plugin-create/SKILL.md: fix ${CLAUDE_PLUGIN_ROOT} path (create-plugin → plugin-create, 4 occurrences)
- plugin-create/SKILL.md: delegate reserved name validation to new references/reserved-names.md (complete list)
- plugin-create/SKILL.md: add displayName reminder in step 4, full-validation pointer in step 7
- plugin-create/references/reserved-names.md: complete reserved name list extracted from claude-code.md
- plugin-create/references/manifest-fields.md: quick-ref for both plugin.json manifests and marketplace entry
- plugin-create/META.md: update stale when: and references: fields to reflect post-migration paths
- plugin-create/assets/plugin-template/hooks.json: unify empty hooks schema to {} (was [])
- write-skill/SKILL.md: fix YAML frontmatter parse error — wrap description in >- block scalar
- validate.sh: strip backtick spans before ../  check to eliminate documentation false positives
- inventory.sh: same backtick-span fix, applied to both outer check and per-line reporting
- tests/test_scripts.sh: fix SCRIPTS_DIR path to skills/marketplace-architect/scripts/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-20 18:41:29 +00:00

2.1 KiB

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.

{
  "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

{
  "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)

{
  "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.