skills/oakoss/agent-skills/meta-plugin-creator

meta-plugin-creator

SKILL.md

Plugin Creator

Overview

Plugins are shareable packages that bundle skills, agents, commands, hooks, MCP servers, and LSP servers into installable units for Claude Code. A plugin requires only a .claude-plugin/plugin.json manifest at minimum; all other components are optional and auto-discovered from conventional directories at the plugin root.

When to use: Sharing functionality across projects or teams, distributing through marketplaces, versioning reusable agent capabilities, bundling MCP servers with skills.

When NOT to use: Single-project customizations (use .claude/ directory instead), quick experiments before packaging, personal workflows that do not need distribution.

Quick Reference

Component Location Format Discovery
Manifest .claude-plugin/plugin.json JSON Required
Skills skills/*/SKILL.md Markdown + YAML Auto by context
Commands commands/*.md Markdown + YAML Auto, namespaced
Agents agents/*.md Markdown + YAML Auto, /agents UI
Hooks hooks/hooks.json JSON Auto on events
MCP servers .mcp.json JSON Auto on enable
LSP servers .lsp.json JSON Auto on enable
Output styles Custom path Per config Via manifest
Plugin env var ${CLAUDE_PLUGIN_ROOT} Absolute path All configs/scripts
Project env ${CLAUDE_PROJECT_DIR} Absolute path All configs/scripts
CLI test flag --plugin-dir ./my-plugin Local dev Manual load
CLI validate claude plugin validate . Local dev Manual check
Install scope --scope user|project|local CLI flag Per install

Common Mistakes

Mistake Correct Pattern
Placing components inside .claude-plugin/ Only plugin.json goes in .claude-plugin/; components at plugin root
Using absolute paths in configs Use ${CLAUDE_PLUGIN_ROOT} for all plugin file references
Missing plugin.json manifest Create .claude-plugin/plugin.json with at least a name field
Path traversal with ../ Keep all files inside the plugin directory
Non-executable hook scripts Run chmod +x on all scripts referenced by hooks
Forgetting namespacing Plugin skills are invoked as /plugin-name:skill-name
Inline hooks missing event casing Event names are case-sensitive: PostToolUse, not postToolUse
Expecting custom paths to replace defaults Custom component paths supplement default directories, not replace them

Delegation

  • Plugin component creation: Build skills, agents, and commands following their respective standards
  • Pattern discovery: Use Explore agent to find existing plugin patterns in the codebase
  • Code review: Use Task agent for plugin structure validation

If the meta-skill-creator skill is available, delegate skill authoring within plugins to it. Otherwise, recommend: npx skills add oakoss/agent-skills --skill meta-skill-creator

References

Weekly Installs
11
GitHub Stars
4
First Seen
Feb 24, 2026
Installed on
claude-code9
opencode8
github-copilot8
codex8
kimi-cli8
gemini-cli8