Plugin Development

SkillAI & models

Build, validate, and publish Claude Code plugins, manifest schema, skill/command/agent/hook authoring, MCP server integration, marketplace publishing, version management. Use this skill whenever creating a new plugin, adding a skill/command/agent to an existing plugin, validating plugin.json, debugging plugin load failures, or publishing to a marketplace. Triggers on: "create plugin", "plugin.json", "add skill to plugin", "publish plugin", "plugin validation", "marketplace", "plugin manifest", "my plugin isn't loading".

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Plugin Development skill

What this skill tells your AI

The instructions your AI receives, as published by thelobbi/claude in plugins/claude-code-expert/skills/cc-plugin-development/SKILL.md and read by ahel’s review.

Claude Code plugins are git-versioned bundles of skills, commands, agents, hooks, and MCP servers installable via .claude/marketplaces/. This skill covers the full authoring lifecycle.

Anatomy

my-plugin/
├── .claude-plugin/
│   └── plugin.json           # manifest (required)
├── CLAUDE.md                  # plugin-level instructions
├── skills/
│   └── {skill-name}/
│       ├── SKILL.md
│       └── references/
├── commands/
│   └── {command-name}.md
├── agents/
│   └── {agent-name}.md
├── hooks/
│   └── {hook-name}.sh
├── mcp-server/               # optional
│   ├── src/index.js
│   └── package.json
└── README.md

plugin.json — the manifest

Minimum required fields:

{
  "$schema": "https://claude.local/schemas/plugin.schema.json",
  "name": "my-plugin",
  "version": "1.0.0",
  "description": "Short description under 200 chars.",
  "author": { "name": "You" },
  "license": "MIT"
}

Recommended additions:

{
  "repository": "https://github.com/you/my-plugin",
  "keywords": ["claude-code", "..."],
  "permissions": { "requires": ["read", "write"], "optional": ["bash", "network"] },
  "capabilities": { "provides": ["..."], "requires": [] },
  "context": {
    "entry": "CONTEXT_SUMMARY.md",
    "title": "My Plugin",
    "summary": "≤400 words",
    "maxTokens": 700
  }
}

Authoring a skill

Follow the skill-creator canonical spec:

  1. Frontmatter description is the trigger — be specific and "pushy" (name ≥3 contexts where it should fire).
  2. Body ≤ 500 lines (per skill-creator guidance).
  3. Deep reference content goes in references/ subdir — Claude loads on demand.
  4. MCP delegation table: if your skill has heavy reference data, move it to an MCP tool.

Template in plugin-architect agent.

Authoring a command

Commands live in commands/{name}.md. Frontmatter:

---
description: What the command does, under 200 chars.
---

# /command-name

## Usage
...

## Flags
...

The command body is plain markdown executed as a prompt when the user runs /plugin-name:command-name.

Authoring an agent

---
name: agent-name
description: When to invoke; ≥3 trigger phrases.
model: sonnet
allowed-tools:
  - Read
  - Grep
  - Bash
---

# Agent Name

## Role
...

## Approach
...

## Output format
...

Tool restrictions enforce agent scope — an auditor agent shouldn't be able to Write, a research agent doesn't need Bash.

Validation

Run plugin-validator agent on any new/modified plugin. Checks:

  • Manifest JSON schema conformance
  • Required fields present
  • Version is semver
  • All referenced skills/commands/agents/hooks exist
  • Skill descriptions non-empty and specific
  • Agent allowed-tools are real tool names
  • Hook scripts have shebang + are executable

Publishing

Plugins live in git repos. Users install via marketplace:

/plugin marketplace add https://github.com/org/marketplace-repo
/plugin install my-plugin

For personal plugins, skip the marketplace — git clone into ~/.claude/plugins/ directly.

Version management

Semver. Breaking changes = major bump. New capabilities = minor. Bug fixes = patch.

Include CHANGELOG.md with a section per version. plugin.json version must match the top CHANGELOG entry.

MCP delegation

NeedTool
Settings schema for plugin configcc_docs_settings_schema
Plugin-development troubleshootingcc_docs_troubleshoot("plugin")
Model for authoringcc_docs_model_recommend("write plugin skill")

Anti-patterns

  • Skills with empty or template-leaked descriptions → don't trigger; dead weight.
  • Manifests that reference missing files → plugin fails to load silently.
  • Hooks without set -euo pipefail → mask errors.
  • Agents with allowed-tools: ["*"] → defeats tool restriction.
  • Version number not bumped on a release → users don't pick up updates.

Reference

Signals

GitHub stars
21
Forks
2
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
cc-plugin-development
Source
github.com/thelobbi/claude