One-click install
npx skills add https://github.com/open-session/os_design_system --skill plugin-structure-open-session
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: Plugin Structure
Source: https://github.com/open-session/os_design_system/tree/main/.claude/plugins/plugin-dev/skills/plugin-structure
Command: npx skills add https://github.com/open-session/os_design_system --skill plugin-structure-open-session

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

It removes the guesswork from Claude Code plugin layout by showing how to structure files so commands, agents, skills, hooks, and MCP servers are discovered reliably.

Core Features & Use Cases

  • Explains the standard plugin directory layout and where each component belongs.
  • Clarifies plugin.json configuration, custom path registration, and portable path usage with CLAUDE_PLUGIN_ROOT.
  • Covers naming conventions, auto-discovery behavior, maintenance practices, and troubleshooting for common plugin setup issues.
  • Use this skill when scaffolding a new plugin, reorganizing an existing one, or diagnosing why a component is not loading.

Quick Start

Use the Plugin Structure skill to plan a Claude Code plugin layout, choose the right manifest paths, and organize components and resources for automatic discovery.

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 structure requires a root .claude-plugin/plugin.json file, kebab-case naming, and relative custom paths to ensure commands, agents, skills, hooks, and MCP servers are discovered automatically.

Why does my Claude Code plugin component fail to load?

Component discovery fails when the plugin layout lacks a valid .claude-plugin/plugin.json manifest, uses non-portable absolute paths, or breaks kebab-case naming conventions required for auto-discovery.

What is the best way to configure plugin.json paths for portability?

Path portability in plugin.json configuration is achieved by using relative custom paths and ${CLAUDE_PLUGIN_ROOT} references, ensuring plugin execution remains stable across different environments.

Do I need kebab-case naming for all Claude Code plugin components?

Yes, kebab-case naming is required across the plugin directory structure to prevent broken component discovery and ensure commands, agents, skills, hooks, and MCP servers load correctly.

What goes into a Claude Code plugin directory layout?

A standard Claude Code plugin directory layout organizes commands, agents, skills, hooks, and MCP servers into specific locations, governed by the root .claude-plugin/plugin.json manifest for reliable component organization.

Can I use custom directory paths for Claude Code plugin scaffolding?

Yes, custom directory paths can be registered during plugin scaffolding by configuring the plugin.json manifest, provided you maintain relative paths and use ${CLAUDE_PLUGIN_ROOT} for portable execution.