23 tests covering the full JSON-RPC 2.0 protocol surface: initialize handshake, silent notifications/initialized, tools/list schema, tools/call with and without args, unknown tool error, unknown method error, and invalid JSON resilience. Fixed assert helpers to use grep -qF -- to prevent leading-dash patterns (like -32601) from being parsed as grep flags. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
hello-world
Complete scaffold plugin for the holocron marketplace. Every cross-compatible component is included with a working stub. Copy this directory, rename it, and replace the stubs with your actual content.
Directory layout
hello-world/
├── plugin.json # Copilot CLI manifest — declares component paths
├── .claude-plugin/
│ └── plugin.json # Claude Code manifest — no component paths (uses defaults)
├── skills/
│ └── hello-world/
│ └── SKILL.md # ✅ identical for both tools
├── agents/
│ ├── hello-world.md # Claude Code agent (no frontmatter)
│ └── hello-world.agent.md # Copilot CLI agent (YAML frontmatter + tools:)
├── hooks/
│ └── hooks.json # Claude Code hooks (PostToolUse / PreToolUse events)
├── hooks.json # Copilot CLI hooks (session_start / session_end events)
├── .mcp.json # ✅ MCP server config — identical for both tools
└── README.md
Cross-compatibility notes
| Component | Claude Code path | Copilot CLI path | Portable? |
|---|---|---|---|
| Plugin manifest | .claude-plugin/plugin.json |
plugin.json at root |
Ship both |
| Skills | skills/<name>/SKILL.md |
skills/<name>/SKILL.md |
✅ Identical |
| Agents | agents/<name>.md |
agents/<name>.agent.md |
Ship both |
| Hooks | hooks/hooks.json |
hooks.json at root |
Ship both |
| MCP servers | .mcp.json at root |
.mcp.json at root |
✅ Identical |
Install via marketplace
# Claude Code
claude plugin marketplace add <owner>/ai-development
claude plugin install hello-world@holocron
# GitHub Copilot CLI
copilot plugin marketplace add <owner>/ai-development
copilot plugin install hello-world
Local dev install
# Claude Code
claude --plugin-dir ./plugins/hello-world
# GitHub Copilot CLI
copilot plugin install ./plugins/hello-world
Validate (Claude Code)
claude plugin validate ./plugins/hello-world
Copilot CLI has no validate command — run copilot plugin install ./plugins/hello-world
and check that /skills list and /agent surface the expected entries.
Creating a new plugin from this scaffold
- Copy
plugins/hello-world/→plugins/<your-plugin-name>/ - Update
namein bothplugin.jsonfiles - Replace
skills/hello-world/SKILL.mdwith your skill(s) - Replace or remove
agents/files — only include if your plugin ships an agent - Replace or remove
hooks/files — only include if your plugin reacts to events - Replace or remove
.mcp.json— only include if your plugin ships an MCP server - Add the new plugin to
.claude-plugin/marketplace.json - Run
claude plugin validate ./plugins/<your-plugin-name>