Claude Skills
CollectionsCompareWorkflowsNominate
Sign inSign up
© 2026 Curated Agent Skills·Learn more about Agent Skills
Back to repository

plugin-structure

verified

This skill should be used when the user asks to "create plugin structure",

View on GitHub

Marketplace

functional-claude

nthplusio/functional-claude

Plugin

claude-plugin-dev

Repository
Verified Org

nthplusio/functional-claude

plugins/claude-plugin-dev/skills/plugin-structure/SKILL.md

Last Verified

February 2, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/nthplusio/functional-claude/blob/main/plugins/claude-plugin-dev/skills/plugin-structure/SKILL.md -a claude-code --skill plugin-structure

Installation paths:

Claude
.claude/skills/plugin-structure/
Powered by add-skill CLI

Instructions

# Plugin Structure

Guide for organizing Claude Code plugin directories and creating manifests.

## Directory Layout

```
my-plugin/
├── .claude-plugin/
│   └── plugin.json        # Required: manifest file
├── skills/                # SKILL.md in subdirectories
│   └── skill-name/
│       ├── SKILL.md
│       └── references/
├── agents/                # Agent definition files
│   └── agent-name.md
├── commands/              # Slash command definitions
│   └── command-name.md
├── hooks/
│   └── hooks.json         # Event handlers
├── .mcp.json              # MCP server configs
├── .lsp.json              # LSP server configs
├── .local.example.md      # Configuration template
├── .cache/                # Runtime cache (gitignored)
└── README.md
```

**Critical:** Only `plugin.json` goes inside `.claude-plugin/`. All other components go in the plugin root.

## Guided Creation

Use `/create-plugin` for an interactive 8-phase workflow that guides you through:
1. Discovery - Understanding purpose
2. Component planning - What you need
3. Detailed design - Component specifics
4. Structure creation - Files and directories
5. Implementation - Building components
6. Validation - Checking correctness
7. Testing - Verifying functionality
8. Documentation - Finalizing README

## Plugin Manifest (plugin.json)

### Minimal

```json
{
  "name": "my-plugin",
  "version": "1.0.0",
  "description": "What this plugin does"
}
```

### Full

```json
{
  "name": "my-plugin",
  "description": "Brief description",
  "version": "1.0.0",
  "author": {
    "name": "Your Name",
    "email": "email@example.com"
  },
  "homepage": "https://github.com/org/repo",
  "repository": "https://github.com/org/repo",
  "license": "MIT"
}
```

## Naming Conventions

| Component | Convention | Example |
|-----------|------------|---------|
| Plugin name | kebab-case | `code-reviewer` |
| Skill name | Match directory | `skill-name/SKILL.md` |
| Agent name | Describe role | `plugin-validator` |
| Version | Semv

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
2915 chars