plugin-structure

Guide Claude Code plugin design with directory, manifest, and auto-discovery conventions.

Updated Mar 16, 2026
One-click install
npx skills add https://github.com/liminal-ai/code-steward --skill plugin-structure-liminal-ai
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: plugin-structure
Source: https://github.com/liminal-ai/code-steward/tree/main/.claude/plugins/plugin-dev/skills/plugin-structure
Command: npx skills add https://github.com/liminal-ai/code-steward --skill plugin-structure-liminal-ai

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill provides guidance on designing and organizing Claude Code plugins, covering directory layout, manifest configuration, component discovery, and best practices to ensure predictable loading and maintainability.

Core Features & Use Cases

  • Directory layout and auto-discovery rules for standard plugin structures
  • Manifest-driven configuration in .claude-plugin/plugin.json
  • Component organization patterns (commands, agents, skills, hooks)
  • Safe, portable path references using ${CLAUDE_PLUGIN_ROOT}
  • Best practices for naming and maintainability

Quick Start

Identify and implement a Claude Code plugin structure that adheres to directory, manifest, and auto-discovery conventions.

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 for auto-discovery?

Claude Code plugin auto-discovery relies on a standard directory layout where components like commands, agents, skills, and hooks are organized predictably to ensure the system loads them automatically without manual configuration.

What is the plugin.json manifest used for in Claude Code?

The plugin.json manifest is a configuration file located in the .claude-plugin directory that drives predictable loading and maintainability by defining essential metadata and settings for Claude Code plugins.

How do I use ${CLAUDE_PLUGIN_ROOT} for portable path references?

You use ${CLAUDE_PLUGIN_ROOT} in your path references to create safe, portable links within your plugin, allowing it to dynamically resolve directory paths regardless of where the plugin is actually installed.

What are the naming conventions for Claude Code plugin components?

Naming conventions for Claude Code plugin components follow maintainability best practices that ensure commands, agents, skills, and hooks are labeled predictably to avoid loading conflicts and ensure predictable auto-discovery.

Can I refactor an existing Claude Code plugin to use a manifest-driven structure?

Yes, you can refactor an existing Claude Code plugin to use a manifest-driven structure by reorganizing components into the standard directory layout and centralizing configuration settings within the .claude-plugin/plugin.json file.

Why does my Claude Code plugin component fail to load during auto-discovery?

If your Claude Code plugin component fails to load during auto-discovery, check that its placement matches the standard directory layout, verify the plugin.json manifest fields are correctly configured, and ensure your naming conventions prevent conflicts.