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>
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
# 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`.
|
||||
Reference in New Issue
Block a user