Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 18:02:00 +08:00
commit ae3f71707a
14 changed files with 2944 additions and 0 deletions

View 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]
```