Plugin Structure

Standardizes Claude Code plugin structure with manifest guidance and auto discovery rules.

6|Updated Dec 11, 2025
One-click install
npx skills add https://github.com/jawhnycooke/claude-plugins --skill plugin-structure-jawhnycooke
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: Plugin Structure
Source: https://github.com/jawhnycooke/claude-plugins/tree/main/plugins/plugin-dev/skills/plugin-structure
Command: npx skills add https://github.com/jawhnycooke/claude-plugins --skill plugin-structure-jawhnycooke

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) and examples (resource) components.

What problem does it solve?

This Skill guides developers in structuring Claude Code plugins, ensuring they are well-organized, maintainable, scalable, and integrate seamlessly with the Claude Code environment. It eliminates guesswork in plugin architecture.

Core Features & Use Cases

  • Standardized Directory Layout: Learn the conventional structure for commands, agents, skills, and hooks, enabling automatic component discovery.
  • Manifest Configuration (plugin.json): Master the definition of plugin metadata and custom component paths for flexible organization.
  • Portable Path References: Utilize the ${CLAUDE_PLUGIN_ROOT} environment variable for all intra-plugin path references, ensuring cross-platform compatibility.
  • Use Case: When starting a new Claude plugin, use this skill to correctly set up the plugin.json and organize your commands/, agents/, and skills/ directories for optimal auto-discovery and future scalability.

Quick Start

Use the Plugin Structure skill to understand how to organize a new Claude Code plugin with commands and agents.

Frequently Asked Questions about Plugin Structure

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

FAQPage Schema
How do I organize a Claude Code plugin with the standard directory structure?▼

Organize your plugin with a standardized directory layout using `commands/`, `agents/`, `skills/`, and `hooks/` folders. Store plugin metadata in `.claude-plugin/plugin.json` to enable automatic component discovery and ensure your plugin integrates seamlessly with Claude Code.

What should I include in the plugin.json manifest file?▼

Define plugin metadata and custom component paths in `plugin.json`. Use kebab-case naming conventions and portable path references like `${CLAUDE_PLUGIN_ROOT}` for intra-plugin paths. The manifest enables flexible component organization and cross-platform compatibility.

How do I set up auto-discovery for plugin components?▼

Place components in conventional directories (`commands/`, `agents/`, `skills/`, `hooks/`) and configure their paths in `plugin.json`. Claude Code automatically discovers components following these patterns, eliminating manual registration and supporting both default and custom paths.

Can I use custom component paths instead of the default directory layout?▼

Yes. Define custom paths in `plugin.json` to organize commands, agents, skills, and hooks however you prefer. Use `${CLAUDE_PLUGIN_ROOT}` for portable path references, and Claude Code will discover components according to your configuration.

What's the best way to maintain plugin scalability as it grows?▼

Follow the standardized plugin structure from the start: organize components by type in dedicated directories, use `plugin.json` for clear metadata, and employ portable path variables. This foundation supports minimal, standard, and advanced plugin patterns without requiring restructuring.

Do I need to configure component discovery for skill-specific loading?▼

For skill-specific loading, create a `SKILL.md` file alongside your skill definition. This enables Claude Code to load skills with custom documentation and configuration, complementing the auto-discovery rules defined in your plugin manifest.