229 lines
4.2 KiB
Markdown
229 lines
4.2 KiB
Markdown
---
|
|
title: Plugin Structure Standards
|
|
description: File structure, naming conventions, and frontmatter requirements for marketplace plugins
|
|
tags: [structure, naming, frontmatter, conventions]
|
|
---
|
|
|
|
# Plugin Structure Standards
|
|
|
|
## Metadata
|
|
|
|
**Purpose**: Define file structure and naming conventions for marketplace plugins
|
|
**Applies to**: All Personal marketplace plugins
|
|
**Version**: 1.0.0
|
|
|
|
---
|
|
|
|
## Instructions
|
|
|
|
### Plugin Naming Conventions
|
|
|
|
**Plugin Directory Names**:
|
|
- Use kebab-case: `marketplace-dev`, `repo-investigator`
|
|
- Be descriptive but concise
|
|
- Avoid redundant "plugin" suffix
|
|
|
|
**Plugin Names in plugin.json**:
|
|
- Match directory name exactly
|
|
- Used in marketplace.json registration
|
|
- Used in command namespace (e.g., `/plugin-name:command`)
|
|
|
|
### Required Files
|
|
|
|
Every plugin MUST have:
|
|
1. **`.claude-plugin/plugin.json`** - Plugin metadata
|
|
2. **At least one**: Agent OR Command
|
|
|
|
**plugin.json Structure**:
|
|
```json
|
|
{
|
|
"name": "plugin-name",
|
|
"description": "Clear 5-10 word description",
|
|
"version": "X.Y.Z",
|
|
"author": {
|
|
"name": "Personal Team"
|
|
},
|
|
"tags": ["relevant", "searchable", "tags"]
|
|
}
|
|
```
|
|
|
|
### Directory Structure
|
|
|
|
**Standard Layout**:
|
|
```
|
|
plugin-name/
|
|
├── .claude-plugin/
|
|
│ └── plugin.json # Required
|
|
├── agents/ # Optional
|
|
│ └── expert-name.md
|
|
├── skills/ # Optional
|
|
│ ├── knowledge-area-1.md
|
|
│ └── knowledge-area-2.md
|
|
└── commands/ # Optional
|
|
├── action-1.md
|
|
└── action-2.md
|
|
```
|
|
|
|
**Personal**:
|
|
- All plugin development docs go in root `README.md`
|
|
- No nested plugin directories
|
|
- Flat structure within each component type
|
|
|
|
### File Naming Conventions
|
|
|
|
**Agents**: `{role}-{specialty}.md`
|
|
- Examples: `plugin-architect.md`, `documentation-validator.md`
|
|
- Lowercase, kebab-case
|
|
- Descriptive of expertise
|
|
|
|
**Skills**: `{domain}-{topic}.md`
|
|
- Examples: `plugin-architecture-principles.md`, `progressive-disclosure.md`
|
|
- Lowercase, kebab-case
|
|
- Noun-focused
|
|
|
|
**Commands**: `{action}-{target}.md`
|
|
- Examples: `validate-docs.md`, `design-plugin.md`
|
|
- Lowercase, kebab-case
|
|
- Verb-focused
|
|
|
|
### Frontmatter Requirements
|
|
|
|
**All component files** must have YAML frontmatter:
|
|
|
|
**Agents**:
|
|
```yaml
|
|
---
|
|
description: Brief description of agent expertise
|
|
---
|
|
```
|
|
|
|
**Skills**:
|
|
```yaml
|
|
---
|
|
title: Skill Name
|
|
description: One sentence description
|
|
tags: [category, topic, use-case]
|
|
---
|
|
```
|
|
|
|
**Commands**:
|
|
```yaml
|
|
---
|
|
description: What this command does (one sentence)
|
|
---
|
|
```
|
|
|
|
---
|
|
|
|
## Resources
|
|
|
|
### Complete Plugin Template
|
|
|
|
```
|
|
new-plugin/
|
|
├── .claude-plugin/
|
|
│ └── plugin.json
|
|
├── agents/
|
|
│ └── domain-expert.md
|
|
├── skills/
|
|
│ ├── domain-knowledge.md
|
|
│ └── methodology.md
|
|
└── commands/
|
|
├── quick-action.md
|
|
└── detailed-action.md
|
|
```
|
|
|
|
### plugin.json Template
|
|
|
|
```json
|
|
{
|
|
"name": "new-plugin",
|
|
"description": "Clear 5-10 word description of plugin purpose",
|
|
"version": "1.0.0",
|
|
"author": {
|
|
"name": "Personal Team"
|
|
},
|
|
"tags": [
|
|
"domain-tag",
|
|
"function-tag",
|
|
"personal"
|
|
]
|
|
}
|
|
```
|
|
|
|
### Agent File Template
|
|
|
|
```markdown
|
|
---
|
|
description: Expert in [domain] for [purpose]
|
|
---
|
|
|
|
# [Agent Name] Agent
|
|
|
|
You are a **[role description]** for Personal.
|
|
|
|
Your expertise: [specific domain knowledge and approach]
|
|
|
|
## Your Approach
|
|
1. [Step 1]
|
|
2. [Step 2]
|
|
...
|
|
|
|
## Skills Available
|
|
- `skill-name-1` - Use when [condition]
|
|
- `skill-name-2` - Use when [condition]
|
|
```
|
|
|
|
### Skill File Template
|
|
|
|
```markdown
|
|
---
|
|
title: Skill Name
|
|
description: One sentence description
|
|
tags: [category, topic]
|
|
---
|
|
|
|
# Skill Name
|
|
|
|
## Metadata
|
|
**Purpose**: What this provides
|
|
**Applies to**: When to use this
|
|
**Version**: X.Y.Z
|
|
|
|
---
|
|
|
|
## Instructions
|
|
[Core knowledge, always loaded when activated]
|
|
|
|
---
|
|
|
|
## Resources
|
|
[Detailed examples, loaded on explicit request]
|
|
```
|
|
|
|
### Command File Template
|
|
|
|
```markdown
|
|
---
|
|
description: What this command does
|
|
---
|
|
|
|
# Command Name
|
|
|
|
You are a [role] performing [task].
|
|
|
|
## Command Parameters
|
|
[Reference `marketplace-command-patterns` skill for standard parameters]
|
|
|
|
## Objective
|
|
[What this command accomplishes]
|
|
|
|
## Process
|
|
1. [Step 1]
|
|
2. Activate skill: `skill-name`
|
|
3. [Step 3]
|
|
|
|
## Output Format
|
|
[How to structure the output]
|
|
```
|