Initial commit
This commit is contained in:
228
skills/plugin-structure-standards.md
Normal file
228
skills/plugin-structure-standards.md
Normal file
@@ -0,0 +1,228 @@
|
||||
---
|
||||
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]
|
||||
```
|
||||
Reference in New Issue
Block a user