Files
claude-plugins-official/plugins/example-plugin/README.md
Tobin South 6b70f99f76 docs(plugin-dev): deprecate commands/ in favor of skills/<name>/SKILL.md (#717)
P0 follow-up for EA-471. Updates plugin-dev teaching materials to stop
recommending the commands/ directory layout for new plugins:

- command-development/SKILL.md: add legacy banner at top pointing to
  skills/ format
- create-plugin.md: update scaffolding to create skills/<name>/SKILL.md
  instead of commands/; mark commands/ as acceptable legacy alternative;
  update all examples, tables, and testing instructions
- example-plugin: migrate example-command to skills/example-command/SKILL.md;
  keep commands/example-command.md with a legacy-format note; update README
  to reflect new preferred structure

Both formats remain loaded identically — this is a documentation change only.

Refs: anthropics/apps#26827

Co-authored-by: Henry Shi <henrys@anthropic.com>
2026-03-17 22:45:25 +00:00

70 lines
1.8 KiB
Markdown

# Example Plugin
A comprehensive example plugin demonstrating Claude Code extension options.
## Structure
```
example-plugin/
├── .claude-plugin/
│ └── plugin.json # Plugin metadata
├── .mcp.json # MCP server configuration
├── skills/
│ ├── example-skill/
│ │ └── SKILL.md # Model-invoked skill (contextual guidance)
│ └── example-command/
│ └── SKILL.md # User-invoked skill (slash command)
└── commands/
└── example-command.md # Legacy slash command format (see note below)
```
## Extension Options
### Skills (`skills/`)
Skills are the preferred format for both model-invoked capabilities and user-invoked slash commands. Create a `SKILL.md` in a subdirectory:
**Model-invoked skill** (activated by task context):
```yaml
---
name: skill-name
description: Trigger conditions for this skill
version: 1.0.0
---
```
**User-invoked skill** (slash command — `/skill-name`):
```yaml
---
name: skill-name
description: Short description for /help
argument-hint: <arg1> [optional-arg]
allowed-tools: [Read, Glob, Grep]
---
```
### Commands (`commands/`) — legacy
> **Note:** The `commands/*.md` layout is a legacy format. It is loaded identically to `skills/<name>/SKILL.md` — the only difference is file layout. For new plugins, prefer the `skills/` directory format. This plugin keeps `commands/example-command.md` as a reference for the legacy layout.
### MCP Servers (`.mcp.json`)
Configure external tool integration via Model Context Protocol:
```json
{
"server-name": {
"type": "http",
"url": "https://mcp.example.com/api"
}
}
```
## Usage
- `/example-command [args]` - Run the example slash command
- The example skill activates based on task context
- The example MCP activates based on task context