Plugin Structure

Scaffold Claude Code plugins with manifest rules and kebab-case naming.

Updated Apr 16, 2026
One-click install
npx skills add https://github.com/wellnessbrotherjay-debug/ts-template- --skill plugin-structure-wellnessbrotherjay-debug
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: Plugin Structure
Source: https://github.com/wellnessbrotherjay-debug/ts-template-/tree/main/.agents/skills/plugin-structure
Command: npx skills add https://github.com/wellnessbrotherjay-debug/ts-template- --skill plugin-structure-wellnessbrotherjay-debug

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Help plugin authors avoid fragmentation, misconfiguration, and brittle installations by providing a clear, opinionated structure and operational rules for Claude Code plugins so components load reliably and paths resolve portably.

Core Features & Use Cases

  • Manifest and Validation: Specifies required .claude-plugin/plugin.json placement, required fields, versioning, and path resolution rules to prevent load-time errors.
  • Component Organization: Defines canonical locations and formats for commands, agents, skills (SKILL.md), hooks, and MCP servers and how auto-discovery works.
  • Portability & Paths: Explains using ${CLAUDE_PLUGIN_ROOT} and relative paths, plus naming conventions (kebab-case) to ensure cross-platform installs.
  • Operational Patterns & Troubleshooting: Offers examples for minimal, standard, and advanced plugins, hook registration patterns, MCP server integration, and common validation fixes.

Quick Start

Scaffold a new Claude Code plugin by creating a .claude-plugin/plugin.json, commands/, agents/, skills/<skill>/SKILL.md, and hooks/ using kebab-case names and ${CLAUDE_PLUGIN_ROOT} for all internal paths.

Frequently Asked Questions about Plugin Structure

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure a Claude Code plugin to ensure components load reliably?

To structure a Claude Code plugin reliably, place the manifest at .claude-plugin/plugin.json, organize components into commands/, agents/, skills/, and hooks/ directories, and use kebab-case naming for all files.

How does auto-discovery work for Claude Code plugin components?

Auto-discovery for Claude Code plugin components works by scanning canonical directory locations like commands/ and skills/<skill>/SKILL.md, automatically registering components that follow kebab-case naming conventions and proper manifest configuration.

How do I configure portable paths in a Claude Code plugin manifest?

Configure portable paths in a Claude Code plugin manifest by using the ${CLAUDE_PLUGIN_ROOT} variable and relative paths for all internal references, ensuring cross-platform installation compatibility and reliable path resolution.

Can I integrate MCP servers and hooks into a Claude Code plugin?

Yes, you can integrate MCP servers and hooks into a Claude Code plugin by registering them through the .claude-plugin/plugin.json manifest and following standard hook registration patterns for operational execution.

Why is my Claude Code plugin not loading during installation?

A Claude Code plugin fails to load due to misconfigured .claude-plugin/plugin.json placement, missing required manifest fields, or non-standard naming conventions, requiring basic validation and troubleshooting steps to resolve.

What's the best way to scaffold a minimal Claude Code plugin?

The best way to scaffold a minimal Claude Code plugin is creating a .claude-plugin/plugin.json manifest alongside commands/, agents/, skills/<skill>/SKILL.md, and hooks/ directories using kebab-case names and ${CLAUDE_PLUGIN_ROOT} paths.