Package skills, agents, commands, and hooks as Claude Code plugins. Use when creating plugins, packaging skills for distribution, setting up plugin structure, dogfooding plugins, or when user mentions "plugin structure", "plugin.json", "package plugin", "distribute plugin", "marketplace", "dogfood", "install plugin", "plugin placement", "--plugin-dir".
View on GitHubgigaverse-app/skillet
metaskill
January 20, 2026
Select agents to install to:
npx add-skill https://github.com/gigaverse-app/skillet/blob/main/metaskill/skills/metaskill-packaging/SKILL.md -a claude-code --skill metaskill-packagingInstallation paths:
.claude/skills/metaskill-packaging/# Plugin Building and Packaging
Package your skills, agents, commands, and hooks as distributable plugins.
## Plugin Structure
**CRITICAL RULE:** Only `plugin.json` goes inside `.claude-plugin/`. All components go at the plugin ROOT:
```
my-plugin/ <- Plugin name = neutral noun
├── .claude-plugin/
│ └── plugin.json # ONLY this file here!
├── commands/ # Slash commands (*.md) - imperative verbs
├── agents/ # Agent definitions (*.md) - role nouns
├── skills/ # Skills (*/SKILL.md) - ending in -ing
├── hooks/ # Event handlers (hooks.json)
├── .mcp.json # MCP servers (optional)
├── .lsp.json # LSP servers (optional)
└── README.md
```
```
# ❌ WRONG - components inside .claude-plugin/
.claude-plugin/
├── plugin.json
├── commands/ ← NO!
└── skills/ ← NO!
# ✅ CORRECT - components at plugin root
.claude-plugin/
└── plugin.json
commands/ ← YES!
skills/ ← YES!
```
## plugin.json Manifest
**Required fields:**
```json
{
"name": "my-plugin",
"version": "1.0.0",
"description": "What this plugin does"
}
```
**With recommended metadata:**
```json
{
"name": "my-plugin",
"version": "1.0.0",
"description": "What this plugin does",
"author": {
"name": "Your Name",
"email": "you@example.com"
},
"license": "MIT",
"keywords": ["keyword1", "keyword2"],
"repository": "https://github.com/user/repo",
"homepage": "https://github.com/user/repo#readme"
}
```
**See `references/plugin-json-schema.md` for the complete field reference.**
## Naming Conventions
**See `/metaskill-naming` for the full naming convention.**
Quick reference:
| Component | Form | Example |
|-----------|------|---------|
| Plugin name | Neutral noun | metaskill, codeforge, datakit |
| Skills | -ing (gerund) | metaskill-authoring, metaskill-triggering |
| Agents | Role noun | metaskill-trig