feat: Convert to Claude Code plugin marketplace
Transform repository into a plugin marketplace structure with two plugins: - claude-code plugin: Complete toolkit with 5 skills * claude-code-plugins * claude-code-slash-commands * claude-code-hooks * claude-code-subagents * claude-code-memory - claude-skills plugin: Meta-skill for creating Agent Skills * Comprehensive best practices guide * Templates and examples * Progressive disclosure patterns Infrastructure: - Add marketplace.json manifest - Create plugin.json for each plugin - Update documentation for marketplace structure - Add contribution and testing guides Installation: - /plugin install claude-code@claude-skills - /plugin install claude-skills@claude-skills 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
19
.claude-plugin/marketplace.json
Normal file
19
.claude-plugin/marketplace.json
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"name": "claude-skills-marketplace",
|
||||||
|
"owner": {
|
||||||
|
"name": "Claude Skills Contributors"
|
||||||
|
},
|
||||||
|
"description": "A curated collection of Agent Skills and plugins for Claude Code and Claude.ai",
|
||||||
|
"plugins": [
|
||||||
|
{
|
||||||
|
"name": "claude-code",
|
||||||
|
"source": "./claude-code",
|
||||||
|
"description": "Complete toolkit for Claude Code: plugins, slash commands, hooks, subagents, and memory management"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "claude-skills",
|
||||||
|
"source": "./claude-skills-plugin",
|
||||||
|
"description": "Meta-skill for creating effective Agent Skills with best practices and templates"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
57
.gitignore
vendored
57
.gitignore
vendored
@@ -1 +1,58 @@
|
|||||||
|
# Claude Code local settings
|
||||||
.claude/settings.local.json
|
.claude/settings.local.json
|
||||||
|
|
||||||
|
# macOS
|
||||||
|
.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
|
||||||
|
# Temporary files
|
||||||
|
*.tmp
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
.*.sw?
|
||||||
|
|
||||||
|
# Test artifacts
|
||||||
|
tmp/
|
||||||
|
temp/
|
||||||
|
test-output/
|
||||||
|
|
||||||
|
# Compressed skill packages
|
||||||
|
*.zip
|
||||||
|
*.tar.gz
|
||||||
|
|
||||||
|
# IDE
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.sublime-*
|
||||||
|
|
||||||
|
# Python (if testing skills)
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
.pytest_cache/
|
||||||
|
.coverage
|
||||||
|
htmlcov/
|
||||||
|
.venv/
|
||||||
|
venv/
|
||||||
|
ENV/
|
||||||
|
|
||||||
|
# Node (if testing skills)
|
||||||
|
node_modules/
|
||||||
|
npm-debug.log
|
||||||
|
yarn-error.log
|
||||||
|
.npm/
|
||||||
|
|
||||||
|
# Build outputs
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
*.egg-info/
|
||||||
|
|
||||||
|
# Sensitive data
|
||||||
|
*.key
|
||||||
|
*.pem
|
||||||
|
*.cert
|
||||||
|
secrets/
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
|||||||
484
CONTRIBUTING.md
Normal file
484
CONTRIBUTING.md
Normal file
@@ -0,0 +1,484 @@
|
|||||||
|
# Contributing to Claude Skills Marketplace
|
||||||
|
|
||||||
|
Thank you for contributing! This guide helps you add plugins, skills, and improvements to the marketplace.
|
||||||
|
|
||||||
|
## Types of Contributions
|
||||||
|
|
||||||
|
1. **Add skills to existing plugins** - Extend claude-code or claude-skills
|
||||||
|
2. **Create new plugins** - Package related skills together
|
||||||
|
3. **Improve existing skills** - Refine content, fix bugs, add examples
|
||||||
|
4. **Update documentation** - Improve guides and READMEs
|
||||||
|
|
||||||
|
## Before You Start
|
||||||
|
|
||||||
|
1. **Use the claude-skills plugin** - Get guidance on skill creation
|
||||||
|
2. **Review existing plugins** - Check claude-code and claude-skills-plugin
|
||||||
|
3. **Test thoroughly** - See [TESTING.md](./TESTING.md)
|
||||||
|
|
||||||
|
## Adding a Skill to an Existing Plugin
|
||||||
|
|
||||||
|
### Option 1: Add to claude-code Plugin
|
||||||
|
|
||||||
|
Add Claude Code-specific skills (features, tools, workflows):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Create skill directory
|
||||||
|
cd claude-code/skills
|
||||||
|
mkdir my-claude-code-skill
|
||||||
|
|
||||||
|
# 2. Create SKILL.md
|
||||||
|
cat > my-claude-code-skill/SKILL.md << 'EOF'
|
||||||
|
---
|
||||||
|
name: My Claude Code Feature
|
||||||
|
description: [Specific description with trigger scenarios]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Content here
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# 3. Update plugin README
|
||||||
|
vim claude-code/README.md
|
||||||
|
# Add your skill to the "What's Included" section
|
||||||
|
```
|
||||||
|
|
||||||
|
**Best for:**
|
||||||
|
- Claude Code features (like our existing 5 skills)
|
||||||
|
- Development workflows
|
||||||
|
- Tool integrations
|
||||||
|
|
||||||
|
### Option 2: Add to claude-skills Plugin
|
||||||
|
|
||||||
|
Add skill-creation guidance (templates, patterns, best practices):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Create skill directory
|
||||||
|
cd claude-skills-plugin/skills
|
||||||
|
mkdir my-skill-pattern
|
||||||
|
|
||||||
|
# 2. Create SKILL.md
|
||||||
|
# Follow claude-skills format (see existing skill)
|
||||||
|
|
||||||
|
# 3. Update plugin README
|
||||||
|
```
|
||||||
|
|
||||||
|
**Best for:**
|
||||||
|
- New skill templates
|
||||||
|
- Skill-creation patterns
|
||||||
|
- Meta-guidance on skills
|
||||||
|
|
||||||
|
## Creating a New Plugin
|
||||||
|
|
||||||
|
For a collection of related skills that don't fit existing plugins:
|
||||||
|
|
||||||
|
### 1. Create Plugin Structure
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Create plugin directory
|
||||||
|
mkdir my-plugin
|
||||||
|
|
||||||
|
# Create required directories
|
||||||
|
mkdir -p my-plugin/.claude-plugin
|
||||||
|
mkdir -p my-plugin/skills
|
||||||
|
|
||||||
|
# Optional: commands, agents, hooks
|
||||||
|
mkdir -p my-plugin/commands
|
||||||
|
mkdir -p my-plugin/agents
|
||||||
|
mkdir -p my-plugin/hooks
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Create plugin.json
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat > my-plugin/.claude-plugin/plugin.json << 'EOF'
|
||||||
|
{
|
||||||
|
"name": "my-plugin",
|
||||||
|
"description": "Clear description of plugin purpose",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": {
|
||||||
|
"name": "Your Name",
|
||||||
|
"email": "you@example.com"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"keyword1",
|
||||||
|
"keyword2"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
**Required fields:**
|
||||||
|
- `name` - Lowercase, kebab-case identifier
|
||||||
|
- `description` - Clear, concise purpose
|
||||||
|
- `version` - Semantic versioning (1.0.0)
|
||||||
|
- `author.name` - Creator name
|
||||||
|
|
||||||
|
**Optional fields:**
|
||||||
|
- `author.email` - Contact email
|
||||||
|
- `author.url` - Website or profile
|
||||||
|
- `repository` - Git repository info
|
||||||
|
- `license` - License identifier
|
||||||
|
- `keywords` - Search/discovery terms
|
||||||
|
|
||||||
|
### 3. Add Skills to Plugin
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Create skill directory
|
||||||
|
mkdir my-plugin/skills/my-skill
|
||||||
|
|
||||||
|
# Create SKILL.md with frontmatter
|
||||||
|
cat > my-plugin/skills/my-skill/SKILL.md << 'EOF'
|
||||||
|
---
|
||||||
|
name: Skill Name
|
||||||
|
description: [Specific description]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Skill content
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Create Plugin README
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat > my-plugin/README.md << 'EOF'
|
||||||
|
# My Plugin
|
||||||
|
|
||||||
|
Brief description.
|
||||||
|
|
||||||
|
## What's Included
|
||||||
|
|
||||||
|
List of skills/features
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
/plugin install my-plugin@claude-skills
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Examples of how to use
|
||||||
|
|
||||||
|
[More sections...]
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Update Marketplace Manifest
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Edit .claude-plugin/marketplace.json
|
||||||
|
vim .claude-plugin/marketplace.json
|
||||||
|
```
|
||||||
|
|
||||||
|
Add your plugin:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"plugins": [
|
||||||
|
{
|
||||||
|
"name": "my-plugin",
|
||||||
|
"source": "./my-plugin",
|
||||||
|
"description": "Brief plugin description"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6. Test Plugin Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Test local installation
|
||||||
|
/plugin install /path/to/Skills/my-plugin@local
|
||||||
|
|
||||||
|
# Verify skills load
|
||||||
|
# Try triggering scenarios
|
||||||
|
```
|
||||||
|
|
||||||
|
## Skill Creation Guidelines
|
||||||
|
|
||||||
|
### Required: SKILL.md Structure
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: Skill Name (max 64 chars)
|
||||||
|
description: Specific description with triggers (max 1024 chars)
|
||||||
|
---
|
||||||
|
|
||||||
|
# Skill Name
|
||||||
|
|
||||||
|
## When to Use This Skill
|
||||||
|
|
||||||
|
Use this skill when:
|
||||||
|
- [Primary scenario]
|
||||||
|
- [Secondary scenario]
|
||||||
|
|
||||||
|
Do NOT use this skill for:
|
||||||
|
- [Confusion case]
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
[Minimal example]
|
||||||
|
|
||||||
|
## Core Workflows
|
||||||
|
|
||||||
|
[Step-by-step guides]
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
[Concrete examples]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Writing Effective Descriptions
|
||||||
|
|
||||||
|
**Template:**
|
||||||
|
```
|
||||||
|
[Action] [domain/task] [with/for] [capabilities].
|
||||||
|
Use when [trigger scenario].
|
||||||
|
[Optional: PROACTIVELY/MUST BE USED if needed]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Good Examples:**
|
||||||
|
```yaml
|
||||||
|
# Specific, clear triggers
|
||||||
|
description: Create and structure Claude Code plugins with commands, agents, skills, hooks, and MCP servers. Use when building plugins for Claude Code, setting up plugin structure, or configuring plugin manifests.
|
||||||
|
|
||||||
|
# Domain-specific
|
||||||
|
description: Optimize and troubleshoot Claude Code memory files (CLAUDE.md) for efficiency, token management, and team collaboration. Use when memory isn't loading, context is bloated, or organizing memory hierarchy.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Bad Examples:**
|
||||||
|
```yaml
|
||||||
|
# Too vague
|
||||||
|
description: Helps with development
|
||||||
|
|
||||||
|
# No triggers
|
||||||
|
description: Python tools and utilities
|
||||||
|
```
|
||||||
|
|
||||||
|
### Progressive Disclosure
|
||||||
|
|
||||||
|
**Layer 1: Metadata (100 tokens)**
|
||||||
|
- Skill name and description in frontmatter
|
||||||
|
- Triggers skill selection
|
||||||
|
|
||||||
|
**Layer 2: SKILL.md (2000-5000 tokens)**
|
||||||
|
- Core workflows and common examples
|
||||||
|
- Loaded when skill activates
|
||||||
|
|
||||||
|
**Layer 3: Additional Files (on-demand)**
|
||||||
|
- Detailed docs in separate .md files
|
||||||
|
- Scripts, templates, references
|
||||||
|
- Loaded only when needed
|
||||||
|
|
||||||
|
### Content Best Practices
|
||||||
|
|
||||||
|
**DO:**
|
||||||
|
- Be specific, not vague
|
||||||
|
- Use bullet points, not paragraphs
|
||||||
|
- Include concrete, working examples
|
||||||
|
- Provide step-by-step workflows
|
||||||
|
- Add troubleshooting sections
|
||||||
|
- Test trigger scenarios
|
||||||
|
|
||||||
|
**DON'T:**
|
||||||
|
- Include sensitive data (API keys, credentials)
|
||||||
|
- Use generic advice ("write good code")
|
||||||
|
- Create novel-length content
|
||||||
|
- Duplicate information
|
||||||
|
- Skip testing
|
||||||
|
|
||||||
|
## Quality Checklist
|
||||||
|
|
||||||
|
Before submitting:
|
||||||
|
|
||||||
|
### Metadata
|
||||||
|
- [ ] Name ≤ 64 characters
|
||||||
|
- [ ] Description ≤ 1024 characters
|
||||||
|
- [ ] Description includes specific triggers
|
||||||
|
- [ ] YAML frontmatter is valid
|
||||||
|
|
||||||
|
### Content
|
||||||
|
- [ ] "When to Use This Skill" section present
|
||||||
|
- [ ] At least one concrete example
|
||||||
|
- [ ] Examples are runnable/testable
|
||||||
|
- [ ] File references are accurate
|
||||||
|
- [ ] No sensitive data hardcoded
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
- [ ] Skill triggers on target scenarios
|
||||||
|
- [ ] Doesn't trigger on unrelated scenarios
|
||||||
|
- [ ] Examples work as documented
|
||||||
|
- [ ] No conflicts with existing skills
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
- [ ] Plugin README updated
|
||||||
|
- [ ] Marketplace manifest updated (if new plugin)
|
||||||
|
- [ ] Clear installation instructions
|
||||||
|
- [ ] Usage examples provided
|
||||||
|
|
||||||
|
## Testing Your Contribution
|
||||||
|
|
||||||
|
See [TESTING.md](./TESTING.md) for:
|
||||||
|
- Trigger accuracy testing
|
||||||
|
- Content quality validation
|
||||||
|
- Token efficiency measurement
|
||||||
|
- Team collaboration testing
|
||||||
|
|
||||||
|
Quick test:
|
||||||
|
```bash
|
||||||
|
# 1. Install locally
|
||||||
|
/plugin install /path/to/your-plugin@local
|
||||||
|
|
||||||
|
# 2. Test trigger scenarios
|
||||||
|
# Ask questions that should trigger the skill
|
||||||
|
|
||||||
|
# 3. Test exclusion scenarios
|
||||||
|
# Ask questions that should NOT trigger
|
||||||
|
|
||||||
|
# 4. Verify quality
|
||||||
|
# Review Claude's responses for accuracy
|
||||||
|
```
|
||||||
|
|
||||||
|
## Submission Process
|
||||||
|
|
||||||
|
### For Small Changes (Skills to Existing Plugins)
|
||||||
|
|
||||||
|
1. Create skill in appropriate plugin
|
||||||
|
2. Update plugin README
|
||||||
|
3. Test locally
|
||||||
|
4. Submit PR with:
|
||||||
|
- Skill files
|
||||||
|
- Updated README
|
||||||
|
- Test results
|
||||||
|
|
||||||
|
### For New Plugins
|
||||||
|
|
||||||
|
1. Create complete plugin structure
|
||||||
|
2. Update marketplace.json
|
||||||
|
3. Create plugin README
|
||||||
|
4. Test installation and usage
|
||||||
|
5. Submit PR with:
|
||||||
|
- Full plugin directory
|
||||||
|
- Updated marketplace.json
|
||||||
|
- Documentation
|
||||||
|
- Test results
|
||||||
|
|
||||||
|
## Common Patterns
|
||||||
|
|
||||||
|
### Plugin Organization
|
||||||
|
|
||||||
|
```
|
||||||
|
my-plugin/
|
||||||
|
├── .claude-plugin/
|
||||||
|
│ └── plugin.json
|
||||||
|
├── skills/ # Related skills grouped together
|
||||||
|
│ ├── skill-1/
|
||||||
|
│ ├── skill-2/
|
||||||
|
│ └── skill-3/
|
||||||
|
├── commands/ # Optional: slash commands
|
||||||
|
├── agents/ # Optional: subagent configs
|
||||||
|
├── hooks/ # Optional: automation hooks
|
||||||
|
└── README.md
|
||||||
|
```
|
||||||
|
|
||||||
|
### Skill Naming Conventions
|
||||||
|
|
||||||
|
**For Claude Code features:**
|
||||||
|
- `claude-code-[feature]` (e.g., claude-code-plugins)
|
||||||
|
|
||||||
|
**For domain-specific:**
|
||||||
|
- `[domain]-[purpose]` (e.g., python-testing, api-documentation)
|
||||||
|
|
||||||
|
**For meta/general:**
|
||||||
|
- `[category]-[action]` (e.g., skill-creator, code-reviewer)
|
||||||
|
|
||||||
|
### Version Bumping
|
||||||
|
|
||||||
|
Follow semantic versioning:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"version": "1.2.3"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- **Major (1.x.x)**: Breaking changes
|
||||||
|
- **Minor (x.2.x)**: New features, backward compatible
|
||||||
|
- **Patch (x.x.3)**: Bug fixes
|
||||||
|
|
||||||
|
Update version in plugin.json when:
|
||||||
|
- Adding new skills → Minor
|
||||||
|
- Changing skill structure → Major
|
||||||
|
- Fixing bugs → Patch
|
||||||
|
|
||||||
|
## Example: Adding a Skill
|
||||||
|
|
||||||
|
### Scenario: Add "claude-code-mcp" skill
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Navigate to plugin
|
||||||
|
cd claude-code/skills
|
||||||
|
|
||||||
|
# 2. Create skill
|
||||||
|
mkdir claude-code-mcp
|
||||||
|
|
||||||
|
# 3. Create SKILL.md
|
||||||
|
cat > claude-code-mcp/SKILL.md << 'EOF'
|
||||||
|
---
|
||||||
|
name: Claude Code MCP Servers
|
||||||
|
description: Configure and troubleshoot Model Context Protocol servers for Claude Code. Use when setting up MCP servers, debugging connections, or integrating external tools.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Claude Code MCP Server Management
|
||||||
|
|
||||||
|
## When to Use This Skill
|
||||||
|
[Content here...]
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# 4. Update plugin README
|
||||||
|
vim ../README.md
|
||||||
|
# Add claude-code-mcp to "What's Included"
|
||||||
|
|
||||||
|
# 5. Bump version in plugin.json
|
||||||
|
vim ../.claude-plugin/plugin.json
|
||||||
|
# Change: "version": "1.0.0" → "1.1.0"
|
||||||
|
|
||||||
|
# 6. Test
|
||||||
|
/plugin install /path/to/Skills/claude-code@local
|
||||||
|
# Test trigger scenarios
|
||||||
|
|
||||||
|
# 7. Submit PR
|
||||||
|
```
|
||||||
|
|
||||||
|
## Security Considerations
|
||||||
|
|
||||||
|
### Never Include
|
||||||
|
|
||||||
|
- API keys, tokens, or credentials
|
||||||
|
- Personal identifying information
|
||||||
|
- Proprietary code without permission
|
||||||
|
- Hardcoded paths to user-specific locations
|
||||||
|
- Malicious scripts or commands
|
||||||
|
|
||||||
|
### Always Review
|
||||||
|
|
||||||
|
- External dependencies (trusted sources only)
|
||||||
|
- File system access patterns
|
||||||
|
- Network requests
|
||||||
|
- Bash commands in examples
|
||||||
|
|
||||||
|
## Getting Help
|
||||||
|
|
||||||
|
- **Skill creation guidance** - Use claude-skills plugin
|
||||||
|
- **Plugin structure questions** - Use claude-code-plugins skill
|
||||||
|
- **Testing help** - See TESTING.md
|
||||||
|
- **Questions** - Open an issue
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
|
||||||
|
- [Agent Skills Documentation](https://docs.claude.com/en/docs/agents-and-tools/agent-skills/overview)
|
||||||
|
- [Plugin Documentation](https://docs.claude.com/en/docs/claude-code/plugins)
|
||||||
|
- [claude-skills Plugin](./claude-skills-plugin/README.md)
|
||||||
|
- [claude-code Plugin](./claude-code/README.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Thank you for contributing!** Your skills help the entire Claude community work more effectively.
|
||||||
363
README.md
Normal file
363
README.md
Normal file
@@ -0,0 +1,363 @@
|
|||||||
|
# Claude Skills Marketplace
|
||||||
|
|
||||||
|
A curated marketplace of Agent Skills and plugins for Claude Code and Claude.ai, designed to extend Claude's capabilities with specialized knowledge and workflows.
|
||||||
|
|
||||||
|
## What's in This Marketplace
|
||||||
|
|
||||||
|
### 🔧 claude-code Plugin
|
||||||
|
Complete toolkit for mastering Claude Code features.
|
||||||
|
|
||||||
|
**Includes 5 specialized skills:**
|
||||||
|
- **claude-code-plugins** - Create and structure plugins
|
||||||
|
- **claude-code-slash-commands** - Build custom commands
|
||||||
|
- **claude-code-hooks** - Set up event-driven automation
|
||||||
|
- **claude-code-subagents** - Refine and troubleshoot subagents
|
||||||
|
- **claude-code-memory** - Optimize CLAUDE.md files
|
||||||
|
|
||||||
|
[View Plugin Details](./claude-code/README.md)
|
||||||
|
|
||||||
|
### 📚 claude-skills Plugin
|
||||||
|
Meta-skill for creating effective Agent Skills.
|
||||||
|
|
||||||
|
**Comprehensive guide covering:**
|
||||||
|
- Progressive disclosure architecture
|
||||||
|
- Trigger optimization techniques
|
||||||
|
- Token efficiency strategies
|
||||||
|
- Development workflows
|
||||||
|
- Templates and examples
|
||||||
|
|
||||||
|
[View Plugin Details](./claude-skills-plugin/README.md)
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
### For Claude Code
|
||||||
|
|
||||||
|
Install individual plugins from this marketplace:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install Claude Code plugin
|
||||||
|
/plugin install claude-code@local --path /path/to/Skills
|
||||||
|
|
||||||
|
# Install Claude Skills plugin
|
||||||
|
/plugin install claude-skills@local --path /path/to/Skills
|
||||||
|
```
|
||||||
|
|
||||||
|
Or configure the marketplace in your settings:
|
||||||
|
|
||||||
|
```json
|
||||||
|
// ~/.claude/settings.json or .claude/settings.json
|
||||||
|
{
|
||||||
|
"plugin-marketplaces": {
|
||||||
|
"claude-skills": {
|
||||||
|
"url": "file:///path/to/Skills"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Then install from the marketplace:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
/plugin install claude-code@claude-skills
|
||||||
|
/plugin install claude-skills@claude-skills
|
||||||
|
```
|
||||||
|
|
||||||
|
### For Claude.ai
|
||||||
|
|
||||||
|
Each plugin can be zipped and uploaded individually:
|
||||||
|
|
||||||
|
1. Zip a plugin directory (e.g., `claude-code/`)
|
||||||
|
2. Go to Settings > Capabilities > Upload skill
|
||||||
|
3. Upload the zip file
|
||||||
|
4. Enable the plugin
|
||||||
|
|
||||||
|
## Available Plugins
|
||||||
|
|
||||||
|
| Plugin | Version | Skills | Description |
|
||||||
|
|--------|---------|--------|-------------|
|
||||||
|
| [claude-code](./claude-code/) | 1.0.0 | 5 | Complete Claude Code toolkit |
|
||||||
|
| [claude-skills](./claude-skills-plugin/) | 1.0.0 | 1 | Skill creation meta-guide |
|
||||||
|
|
||||||
|
## Plugin Details
|
||||||
|
|
||||||
|
### claude-code
|
||||||
|
|
||||||
|
**Best for:** Claude Code users who want to master plugins, commands, hooks, subagents, and memory management.
|
||||||
|
|
||||||
|
**Skills included:**
|
||||||
|
1. `claude-code-plugins` - Plugin development
|
||||||
|
2. `claude-code-slash-commands` - Custom command creation
|
||||||
|
3. `claude-code-hooks` - Event-driven automation
|
||||||
|
4. `claude-code-subagents` - Subagent optimization
|
||||||
|
5. `claude-code-memory` - Memory file management
|
||||||
|
|
||||||
|
**Installation:**
|
||||||
|
```bash
|
||||||
|
/plugin install claude-code@claude-skills
|
||||||
|
```
|
||||||
|
|
||||||
|
### claude-skills
|
||||||
|
|
||||||
|
**Best for:** Anyone creating Agent Skills for Claude Code or Claude.ai.
|
||||||
|
|
||||||
|
**What it teaches:**
|
||||||
|
- How to structure skills effectively
|
||||||
|
- Writing descriptions that trigger correctly
|
||||||
|
- Optimizing for token efficiency
|
||||||
|
- Progressive disclosure patterns
|
||||||
|
- Testing and validation
|
||||||
|
|
||||||
|
**Installation:**
|
||||||
|
```bash
|
||||||
|
/plugin install claude-skills@claude-skills
|
||||||
|
```
|
||||||
|
|
||||||
|
## How This Marketplace Works
|
||||||
|
|
||||||
|
### Marketplace Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
claude-skills-marketplace/
|
||||||
|
├── .claude-plugin/
|
||||||
|
│ └── marketplace.json # Marketplace manifest
|
||||||
|
├── claude-code/ # Plugin 1
|
||||||
|
│ ├── .claude-plugin/
|
||||||
|
│ │ └── plugin.json
|
||||||
|
│ ├── skills/ # 5 Claude Code skills
|
||||||
|
│ └── README.md
|
||||||
|
├── claude-skills-plugin/ # Plugin 2
|
||||||
|
│ ├── .claude-plugin/
|
||||||
|
│ │ └── plugin.json
|
||||||
|
│ ├── skills/ # Skill creation guide
|
||||||
|
│ └── README.md
|
||||||
|
├── README.md # This file
|
||||||
|
├── CONTRIBUTING.md # How to add plugins/skills
|
||||||
|
└── TESTING.md # Validation guide
|
||||||
|
```
|
||||||
|
|
||||||
|
### Plugin Installation Flow
|
||||||
|
|
||||||
|
1. **Marketplace Configuration** - Add marketplace to settings
|
||||||
|
2. **Discovery** - Claude Code reads marketplace.json
|
||||||
|
3. **Installation** - `/plugin install [plugin-name]@[marketplace-name]`
|
||||||
|
4. **Activation** - Skills load automatically based on context
|
||||||
|
|
||||||
|
## Usage Examples
|
||||||
|
|
||||||
|
### Working with Claude Code Features
|
||||||
|
|
||||||
|
```
|
||||||
|
# Plugin development
|
||||||
|
"Help me create a plugin for my team"
|
||||||
|
→ claude-code-plugins skill activates
|
||||||
|
|
||||||
|
# Custom commands
|
||||||
|
"I want to create a slash command for code review"
|
||||||
|
→ claude-code-slash-commands skill activates
|
||||||
|
|
||||||
|
# Setting up automation
|
||||||
|
"How do I run tests automatically after file edits?"
|
||||||
|
→ claude-code-hooks skill activates
|
||||||
|
|
||||||
|
# Subagent issues
|
||||||
|
"My security analyzer subagent isn't triggering"
|
||||||
|
→ claude-code-subagents skill activates
|
||||||
|
|
||||||
|
# Memory optimization
|
||||||
|
"My CLAUDE.md file is too long and wastes tokens"
|
||||||
|
→ claude-code-memory skill activates
|
||||||
|
```
|
||||||
|
|
||||||
|
### Creating New Skills
|
||||||
|
|
||||||
|
```
|
||||||
|
"I want to create a skill for React testing"
|
||||||
|
→ claude-skills skill activates
|
||||||
|
→ Guides you through templates and best practices
|
||||||
|
```
|
||||||
|
|
||||||
|
## Team Setup
|
||||||
|
|
||||||
|
Share this marketplace with your team:
|
||||||
|
|
||||||
|
### Option 1: Git Repository (Recommended)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Team members clone the repo
|
||||||
|
git clone https://your-repo/claude-skills-marketplace.git
|
||||||
|
|
||||||
|
# Add to Claude Code settings
|
||||||
|
# .claude/settings.json (committed to repo)
|
||||||
|
{
|
||||||
|
"plugin-marketplaces": {
|
||||||
|
"team-skills": {
|
||||||
|
"url": "file:///path/to/claude-skills-marketplace"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plugins": [
|
||||||
|
"claude-code@team-skills",
|
||||||
|
"claude-skills@team-skills"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Benefits:
|
||||||
|
- Version control for skills
|
||||||
|
- Team consistency
|
||||||
|
- Easy updates via `git pull`
|
||||||
|
|
||||||
|
### Option 2: Network Share
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"plugin-marketplaces": {
|
||||||
|
"team-skills": {
|
||||||
|
"url": "file://network-share/claude-skills"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Option 3: Individual Installation
|
||||||
|
|
||||||
|
Team members install plugins locally:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
/plugin install /local/path/to/claude-code@local
|
||||||
|
/plugin install /local/path/to/claude-skills@local
|
||||||
|
```
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
### For Plugin Users
|
||||||
|
|
||||||
|
1. **Start with claude-skills** if you're creating skills
|
||||||
|
2. **Install claude-code** if you use Claude Code regularly
|
||||||
|
3. **Keep plugins updated** - Check for new versions
|
||||||
|
4. **Test in local settings** before team-wide deployment
|
||||||
|
|
||||||
|
### For Skill Creators
|
||||||
|
|
||||||
|
1. Follow [CONTRIBUTING.md](./CONTRIBUTING.md) guidelines
|
||||||
|
2. Test skills thoroughly (see [TESTING.md](./TESTING.md))
|
||||||
|
3. Use progressive disclosure (keep main content lean)
|
||||||
|
4. Include concrete examples
|
||||||
|
5. Write specific trigger descriptions
|
||||||
|
|
||||||
|
### For Teams
|
||||||
|
|
||||||
|
1. **Share marketplace via git** for version control
|
||||||
|
2. **Document custom workflows** in team CLAUDE.md
|
||||||
|
3. **Create team-specific plugins** for your stack
|
||||||
|
4. **Regular reviews** of skill effectiveness
|
||||||
|
|
||||||
|
## Customization
|
||||||
|
|
||||||
|
### Adding Your Own Plugins
|
||||||
|
|
||||||
|
1. Create plugin directory with structure:
|
||||||
|
```
|
||||||
|
your-plugin/
|
||||||
|
├── .claude-plugin/
|
||||||
|
│ └── plugin.json
|
||||||
|
├── skills/
|
||||||
|
│ └── your-skill/
|
||||||
|
│ └── SKILL.md
|
||||||
|
└── README.md
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Update marketplace.json:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"plugins": [
|
||||||
|
{
|
||||||
|
"name": "your-plugin",
|
||||||
|
"source": "./your-plugin",
|
||||||
|
"description": "Your plugin description"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
3. See [CONTRIBUTING.md](./CONTRIBUTING.md) for detailed guidelines
|
||||||
|
|
||||||
|
### Creating Custom Skills
|
||||||
|
|
||||||
|
Use the **claude-skills** plugin to guide you:
|
||||||
|
|
||||||
|
```
|
||||||
|
"Help me create a skill for [your domain]"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Plugins Not Installing
|
||||||
|
|
||||||
|
**Check marketplace configuration:**
|
||||||
|
```bash
|
||||||
|
# Verify marketplace.json exists
|
||||||
|
cat .claude-plugin/marketplace.json
|
||||||
|
|
||||||
|
# Check file paths are correct
|
||||||
|
ls claude-code/.claude-plugin/plugin.json
|
||||||
|
ls claude-skills-plugin/.claude-plugin/plugin.json
|
||||||
|
```
|
||||||
|
|
||||||
|
### Skills Not Triggering
|
||||||
|
|
||||||
|
**Verify installation:**
|
||||||
|
```bash
|
||||||
|
/plugin list
|
||||||
|
# Should show: claude-code, claude-skills
|
||||||
|
```
|
||||||
|
|
||||||
|
**Check descriptions:** Skills may not match your use case
|
||||||
|
- Read plugin READMEs for trigger scenarios
|
||||||
|
- Try explicit skill references in prompts
|
||||||
|
|
||||||
|
### Updates Not Applying
|
||||||
|
|
||||||
|
**Reload plugins:**
|
||||||
|
```bash
|
||||||
|
# Restart Claude Code session
|
||||||
|
# Or reinstall plugin
|
||||||
|
/plugin uninstall claude-code
|
||||||
|
/plugin install claude-code@claude-skills
|
||||||
|
```
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
We welcome contributions! See [CONTRIBUTING.md](./CONTRIBUTING.md) for:
|
||||||
|
- Adding new skills
|
||||||
|
- Improving existing skills
|
||||||
|
- Creating new plugins
|
||||||
|
- Documentation improvements
|
||||||
|
- Bug reports
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
|
||||||
|
### Official Documentation
|
||||||
|
- [Agent Skills Overview](https://docs.claude.com/en/docs/agents-and-tools/agent-skills/overview)
|
||||||
|
- [Claude Code Plugins](https://docs.claude.com/en/docs/claude-code/plugins)
|
||||||
|
- [Sub-agents](https://docs.claude.com/en/docs/claude-code/sub-agents)
|
||||||
|
- [Memory Management](https://docs.claude.com/en/docs/claude-code/memory)
|
||||||
|
|
||||||
|
### Community
|
||||||
|
- [Engineering Blog: Agent Skills](https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills)
|
||||||
|
- [Engineering Blog: Claude Code Best Practices](https://www.anthropic.com/engineering/claude-code-best-practices)
|
||||||
|
|
||||||
|
## Version History
|
||||||
|
|
||||||
|
### 1.0.0 (Initial Release)
|
||||||
|
- claude-code plugin (5 skills)
|
||||||
|
- claude-skills plugin (meta-skill)
|
||||||
|
- Marketplace infrastructure
|
||||||
|
- Documentation and guides
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Individual plugins may have their own licenses. Check each plugin directory for details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Get Started**: Install the plugins, explore the skills, and level up your Claude Code workflow!
|
||||||
446
TESTING.md
Normal file
446
TESTING.md
Normal file
@@ -0,0 +1,446 @@
|
|||||||
|
# Testing and Validating Skills
|
||||||
|
|
||||||
|
This guide helps you validate skills before adding them to the repository or using them in production.
|
||||||
|
|
||||||
|
## Quick Validation Checklist
|
||||||
|
|
||||||
|
Run through this checklist before submitting a skill:
|
||||||
|
|
||||||
|
```
|
||||||
|
Metadata
|
||||||
|
[ ] SKILL.md exists
|
||||||
|
[ ] YAML frontmatter is valid
|
||||||
|
[ ] Name ≤ 64 characters
|
||||||
|
[ ] Description ≤ 1024 characters
|
||||||
|
[ ] Description includes trigger scenarios
|
||||||
|
|
||||||
|
Content Quality
|
||||||
|
[ ] "When to Use This Skill" section present
|
||||||
|
[ ] At least one concrete example
|
||||||
|
[ ] Examples are runnable/testable
|
||||||
|
[ ] File references are accurate
|
||||||
|
[ ] No sensitive data hardcoded
|
||||||
|
|
||||||
|
Triggering Tests
|
||||||
|
[ ] Triggers on target scenarios
|
||||||
|
[ ] Doesn't trigger on unrelated scenarios
|
||||||
|
[ ] No conflicts with similar skills
|
||||||
|
|
||||||
|
Security
|
||||||
|
[ ] No credentials or API keys
|
||||||
|
[ ] No personal information
|
||||||
|
[ ] Safe file system access only
|
||||||
|
[ ] External dependencies verified
|
||||||
|
```
|
||||||
|
|
||||||
|
## Detailed Testing Process
|
||||||
|
|
||||||
|
### 1. Metadata Validation
|
||||||
|
|
||||||
|
#### Test YAML Parsing
|
||||||
|
|
||||||
|
Try parsing the frontmatter:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Extract and validate YAML
|
||||||
|
head -n 10 SKILL.md | grep -A 3 "^---$"
|
||||||
|
```
|
||||||
|
|
||||||
|
Verify:
|
||||||
|
- YAML is valid (no syntax errors)
|
||||||
|
- Both `name` and `description` are present
|
||||||
|
- Values are within character limits
|
||||||
|
|
||||||
|
#### Character Limits
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Count characters in name (must be ≤ 64)
|
||||||
|
grep "^name:" SKILL.md | sed 's/name: //' | wc -c
|
||||||
|
|
||||||
|
# Count characters in description (must be ≤ 1024)
|
||||||
|
grep "^description:" SKILL.md | sed 's/description: //' | wc -c
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Content Quality Testing
|
||||||
|
|
||||||
|
#### Check Required Sections
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Verify "When to Use This Skill" section exists
|
||||||
|
grep -i "when to use" SKILL.md
|
||||||
|
|
||||||
|
# Verify examples exist
|
||||||
|
grep -i "example" SKILL.md
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Test File References
|
||||||
|
|
||||||
|
If skill references other files, verify they exist:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Find markdown links
|
||||||
|
grep -o '\[.*\]([^)]*\.md)' SKILL.md
|
||||||
|
|
||||||
|
# Check if referenced files exist
|
||||||
|
# (manually verify each one)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Validate Examples
|
||||||
|
|
||||||
|
For each example in the skill:
|
||||||
|
1. Try running the code/commands
|
||||||
|
2. Verify output matches expectations
|
||||||
|
3. Check for edge cases
|
||||||
|
4. Ensure examples are complete (no placeholders)
|
||||||
|
|
||||||
|
### 3. Trigger Testing
|
||||||
|
|
||||||
|
This is the most important validation step.
|
||||||
|
|
||||||
|
#### Create Test Scenarios
|
||||||
|
|
||||||
|
**Positive Tests (SHOULD trigger)**
|
||||||
|
|
||||||
|
Create a list of scenarios where the skill should activate:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
Test Scenario 1: [Describe task that should trigger]
|
||||||
|
Expected: Skill activates
|
||||||
|
Actual: [Test result]
|
||||||
|
|
||||||
|
Test Scenario 2: [Another trigger case]
|
||||||
|
Expected: Skill activates
|
||||||
|
Actual: [Test result]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Negative Tests (SHOULD NOT trigger)**
|
||||||
|
|
||||||
|
Create scenarios where the skill should NOT activate:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
Test Scenario 3: [Similar but different task]
|
||||||
|
Expected: Skill does NOT activate
|
||||||
|
Actual: [Test result]
|
||||||
|
|
||||||
|
Test Scenario 4: [Unrelated task]
|
||||||
|
Expected: Skill does NOT activate
|
||||||
|
Actual: [Test result]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Example Testing Session
|
||||||
|
|
||||||
|
For a "Python Testing with pytest" skill:
|
||||||
|
|
||||||
|
**Should Trigger:**
|
||||||
|
- "Help me write tests for my Python function"
|
||||||
|
- "How do I use pytest fixtures?"
|
||||||
|
- "Create unit tests for this class"
|
||||||
|
|
||||||
|
**Should NOT Trigger:**
|
||||||
|
- "Help me test my JavaScript code" (different language)
|
||||||
|
- "Debug my pytest installation" (installation, not testing)
|
||||||
|
- "Explain what unit testing is" (concept, not implementation)
|
||||||
|
|
||||||
|
#### Run Tests with Claude
|
||||||
|
|
||||||
|
1. Load the skill
|
||||||
|
2. Ask Claude each test question
|
||||||
|
3. Observe if skill triggers (check response for skill context)
|
||||||
|
4. Document results
|
||||||
|
|
||||||
|
### 4. Token Efficiency Testing
|
||||||
|
|
||||||
|
#### Measure Content Size
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Count tokens (approximate: words × 1.3)
|
||||||
|
wc -w SKILL.md
|
||||||
|
|
||||||
|
# Or use a proper token counter
|
||||||
|
# (tokens ≈ characters ÷ 4 for rough estimate)
|
||||||
|
wc -c SKILL.md
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Evaluate Split Points
|
||||||
|
|
||||||
|
Ask yourself:
|
||||||
|
- Is content loaded only when needed?
|
||||||
|
- Could mutually exclusive sections be split?
|
||||||
|
- Are examples concise but complete?
|
||||||
|
- Is reference material in separate files?
|
||||||
|
|
||||||
|
Target sizes:
|
||||||
|
- **SKILL.md**: Under 3000 tokens (core workflows)
|
||||||
|
- **Additional files**: Load only when referenced
|
||||||
|
- **Total metadata**: ~100 tokens
|
||||||
|
|
||||||
|
### 5. Security Validation
|
||||||
|
|
||||||
|
#### Automated Checks
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Check for potential secrets
|
||||||
|
grep -iE "(password|api[_-]?key|secret|token|credential)" SKILL.md
|
||||||
|
|
||||||
|
# Check for hardcoded paths
|
||||||
|
grep -E "(/Users/|/home/|C:\\\\)" SKILL.md
|
||||||
|
|
||||||
|
# Check for sensitive file extensions
|
||||||
|
grep -E "\.(key|pem|cert|p12|pfx)( |$)" SKILL.md
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Manual Review
|
||||||
|
|
||||||
|
Review each file for:
|
||||||
|
- [ ] No credentials in examples
|
||||||
|
- [ ] No personal information
|
||||||
|
- [ ] File paths are generic/relative
|
||||||
|
- [ ] Network access is documented
|
||||||
|
- [ ] External dependencies are from trusted sources
|
||||||
|
- [ ] Scripts don't make unsafe system changes
|
||||||
|
|
||||||
|
### 6. Cross-Skill Conflict Testing
|
||||||
|
|
||||||
|
If you have multiple skills installed:
|
||||||
|
|
||||||
|
1. **Similar domain overlap**: Test that specific skills trigger (not generic ones)
|
||||||
|
2. **Keyword conflicts**: Check if multiple skills trigger on same query
|
||||||
|
3. **Description clarity**: Ensure each skill's domain is distinct
|
||||||
|
|
||||||
|
Example conflicts to avoid:
|
||||||
|
- "Python Helper" (too generic) vs "Python Testing with pytest" (specific)
|
||||||
|
- Both trigger on "Help with Python" → Fix by making descriptions more specific
|
||||||
|
|
||||||
|
## Testing Workflows
|
||||||
|
|
||||||
|
### Quick Test (5 minutes)
|
||||||
|
|
||||||
|
For minor updates or simple skills:
|
||||||
|
|
||||||
|
1. ✓ Validate metadata (YAML, character limits)
|
||||||
|
2. ✓ Check one example works
|
||||||
|
3. ✓ Test one positive trigger
|
||||||
|
4. ✓ Test one negative trigger
|
||||||
|
5. ✓ Scan for secrets
|
||||||
|
|
||||||
|
### Standard Test (15 minutes)
|
||||||
|
|
||||||
|
For new skills or significant changes:
|
||||||
|
|
||||||
|
1. ✓ Complete metadata validation
|
||||||
|
2. ✓ Test all examples
|
||||||
|
3. ✓ Run 3-5 trigger tests (positive + negative)
|
||||||
|
4. ✓ Check token efficiency
|
||||||
|
5. ✓ Full security review
|
||||||
|
6. ✓ Verify file references
|
||||||
|
|
||||||
|
### Comprehensive Test (30+ minutes)
|
||||||
|
|
||||||
|
For complex skills or pre-release:
|
||||||
|
|
||||||
|
1. ✓ All standard tests
|
||||||
|
2. ✓ Test with different Claude models
|
||||||
|
3. ✓ Test conflict scenarios with other skills
|
||||||
|
4. ✓ Have someone else try the skill
|
||||||
|
5. ✓ Test edge cases in examples
|
||||||
|
6. ✓ Review progressive disclosure strategy
|
||||||
|
7. ✓ Load test (simulate typical usage)
|
||||||
|
|
||||||
|
## Common Issues and Fixes
|
||||||
|
|
||||||
|
### Skill Doesn't Trigger
|
||||||
|
|
||||||
|
**Symptoms**: Claude doesn't load skill context when expected
|
||||||
|
|
||||||
|
**Diagnose**:
|
||||||
|
1. Description too vague?
|
||||||
|
2. Description missing trigger keywords?
|
||||||
|
3. Name too generic?
|
||||||
|
|
||||||
|
**Fix**:
|
||||||
|
```yaml
|
||||||
|
# Before
|
||||||
|
description: Python development helpers
|
||||||
|
|
||||||
|
# After
|
||||||
|
description: Create Python projects using Hatch and Hatchling for dependency management. Use when initializing new Python packages or configuring build systems.
|
||||||
|
```
|
||||||
|
|
||||||
|
### Skill Triggers Too Often
|
||||||
|
|
||||||
|
**Symptoms**: Skill loads for unrelated queries
|
||||||
|
|
||||||
|
**Diagnose**:
|
||||||
|
1. Description too broad?
|
||||||
|
2. Keywords too common?
|
||||||
|
|
||||||
|
**Fix**:
|
||||||
|
```yaml
|
||||||
|
# Add specificity and exclusions
|
||||||
|
description: Debug Swift applications using LLDB for crashes, memory issues, and runtime errors. Use when investigating Swift bugs or analyzing app behavior. NOT for general Swift coding or learning.
|
||||||
|
```
|
||||||
|
|
||||||
|
### Examples Don't Work
|
||||||
|
|
||||||
|
**Symptoms**: Users can't reproduce examples
|
||||||
|
|
||||||
|
**Diagnose**:
|
||||||
|
1. Missing prerequisites?
|
||||||
|
2. Placeholders not explained?
|
||||||
|
3. Environment-specific code?
|
||||||
|
|
||||||
|
**Fix**:
|
||||||
|
- Add prerequisites section
|
||||||
|
- Make examples self-contained
|
||||||
|
- Use generic paths and values
|
||||||
|
|
||||||
|
### High Token Usage
|
||||||
|
|
||||||
|
**Symptoms**: Skill loads too much content
|
||||||
|
|
||||||
|
**Diagnose**:
|
||||||
|
1. Too much in SKILL.md?
|
||||||
|
2. No progressive disclosure?
|
||||||
|
3. Verbose examples?
|
||||||
|
|
||||||
|
**Fix**:
|
||||||
|
- Split reference material to separate files
|
||||||
|
- Link to external resources
|
||||||
|
- Condense examples
|
||||||
|
- Move advanced content to on-demand files
|
||||||
|
|
||||||
|
## Automated Testing (Advanced)
|
||||||
|
|
||||||
|
For repositories with many skills, consider automation:
|
||||||
|
|
||||||
|
### Validate All Skills
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
# validate-skills.sh
|
||||||
|
|
||||||
|
for skill_dir in */; do
|
||||||
|
if [ -f "$skill_dir/SKILL.md" ]; then
|
||||||
|
echo "Validating $skill_dir..."
|
||||||
|
|
||||||
|
# Check frontmatter exists
|
||||||
|
if ! grep -q "^---$" "$skill_dir/SKILL.md"; then
|
||||||
|
echo "❌ Missing YAML frontmatter"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check name length
|
||||||
|
name=$(grep "^name:" "$skill_dir/SKILL.md" | sed 's/name: //')
|
||||||
|
if [ ${#name} -gt 64 ]; then
|
||||||
|
echo "❌ Name too long: ${#name} chars"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for secrets
|
||||||
|
if grep -qiE "(password|api[_-]?key|secret)" "$skill_dir/SKILL.md"; then
|
||||||
|
echo "⚠️ Potential secrets found"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "✓ $skill_dir validated"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
```
|
||||||
|
|
||||||
|
### CI/CD Integration
|
||||||
|
|
||||||
|
Add to GitHub Actions or similar:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
name: Validate Skills
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
validate:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Run validation
|
||||||
|
run: |
|
||||||
|
chmod +x validate-skills.sh
|
||||||
|
./validate-skills.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Documentation Testing
|
||||||
|
|
||||||
|
Ensure documentation is accurate:
|
||||||
|
|
||||||
|
1. **Links work**: All markdown links resolve
|
||||||
|
2. **Paths are correct**: File references are accurate
|
||||||
|
3. **Examples are current**: Code samples match latest versions
|
||||||
|
4. **Formatting is consistent**: Markdown renders correctly
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Check for broken internal links
|
||||||
|
grep -r '\[.*\](.*\.md)' . | while read line; do
|
||||||
|
# Extract and verify file exists
|
||||||
|
# (implementation left as exercise)
|
||||||
|
done
|
||||||
|
```
|
||||||
|
|
||||||
|
## User Acceptance Testing
|
||||||
|
|
||||||
|
The ultimate test is real usage:
|
||||||
|
|
||||||
|
1. **Give skill to others**: Have colleagues test it
|
||||||
|
2. **Monitor usage**: See when it triggers in practice
|
||||||
|
3. **Gather feedback**: Ask users about clarity and usefulness
|
||||||
|
4. **Iterate**: Refine based on real-world usage
|
||||||
|
|
||||||
|
## Testing Checklist Template
|
||||||
|
|
||||||
|
Copy this for each skill you test:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Testing Report: [Skill Name]
|
||||||
|
|
||||||
|
Date: [YYYY-MM-DD]
|
||||||
|
Tester: [Name]
|
||||||
|
|
||||||
|
## Metadata
|
||||||
|
- [ ] YAML valid
|
||||||
|
- [ ] Name ≤ 64 chars
|
||||||
|
- [ ] Description ≤ 1024 chars
|
||||||
|
- [ ] Trigger scenarios in description
|
||||||
|
|
||||||
|
## Content
|
||||||
|
- [ ] "When to Use" section present
|
||||||
|
- [ ] Examples runnable
|
||||||
|
- [ ] File references accurate
|
||||||
|
- [ ] No secrets
|
||||||
|
|
||||||
|
## Triggering
|
||||||
|
Positive tests:
|
||||||
|
1. [Scenario] - Result: [ ] Pass [ ] Fail
|
||||||
|
2. [Scenario] - Result: [ ] Pass [ ] Fail
|
||||||
|
|
||||||
|
Negative tests:
|
||||||
|
1. [Scenario] - Result: [ ] Pass [ ] Fail
|
||||||
|
2. [Scenario] - Result: [ ] Pass [ ] Fail
|
||||||
|
|
||||||
|
## Security
|
||||||
|
- [ ] No credentials
|
||||||
|
- [ ] No personal data
|
||||||
|
- [ ] Safe file access
|
||||||
|
- [ ] Dependencies verified
|
||||||
|
|
||||||
|
## Overall
|
||||||
|
- [ ] Ready for production
|
||||||
|
- [ ] Needs revision
|
||||||
|
- [ ] Rejected
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
[Any additional observations]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
|
||||||
|
- [claude-skills/SKILL.md](./claude-skills/SKILL.md) - Best practices guide
|
||||||
|
- [claude-skills/checklist.md](./claude-skills/checklist.md) - Quality checklist
|
||||||
|
- [CONTRIBUTING.md](./CONTRIBUTING.md) - Contribution guidelines
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Remember**: Testing isn't just about finding bugs—it's about ensuring your skill provides real value and triggers at the right time.
|
||||||
17
claude-code/.claude-plugin/plugin.json
Normal file
17
claude-code/.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"name": "claude-code",
|
||||||
|
"description": "Comprehensive skills for mastering Claude Code features: plugins, slash commands, hooks, subagents, and memory management",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": {
|
||||||
|
"name": "Claude Skills Contributors"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"claude-code",
|
||||||
|
"plugins",
|
||||||
|
"slash-commands",
|
||||||
|
"hooks",
|
||||||
|
"subagents",
|
||||||
|
"memory",
|
||||||
|
"productivity"
|
||||||
|
]
|
||||||
|
}
|
||||||
202
claude-code/README.md
Normal file
202
claude-code/README.md
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
# Claude Code Plugin
|
||||||
|
|
||||||
|
Comprehensive skills for mastering Claude Code features including plugins, slash commands, hooks, subagents, and memory management.
|
||||||
|
|
||||||
|
## What's Included
|
||||||
|
|
||||||
|
This plugin provides five specialized skills that help you work more effectively with Claude Code:
|
||||||
|
|
||||||
|
### 1. claude-code-plugins
|
||||||
|
Create and structure Claude Code plugins with commands, agents, skills, hooks, and MCP servers.
|
||||||
|
|
||||||
|
**Use when:**
|
||||||
|
- Building plugins for Claude Code
|
||||||
|
- Setting up plugin structure
|
||||||
|
- Configuring plugin manifests
|
||||||
|
|
||||||
|
### 2. claude-code-slash-commands
|
||||||
|
Create custom slash commands with argument handling, bash execution, and file references.
|
||||||
|
|
||||||
|
**Use when:**
|
||||||
|
- Building reusable prompts
|
||||||
|
- Automating workflows
|
||||||
|
- Creating project-specific commands
|
||||||
|
|
||||||
|
### 3. claude-code-hooks
|
||||||
|
Configure event-driven hooks for automating workflows, validating code, and controlling tool execution.
|
||||||
|
|
||||||
|
**Use when:**
|
||||||
|
- Setting up automation
|
||||||
|
- Enforcing standards
|
||||||
|
- Injecting context
|
||||||
|
- Integrating external tools
|
||||||
|
|
||||||
|
### 4. claude-code-subagents
|
||||||
|
Refine and troubleshoot Claude Code subagents by optimizing prompts, tool access, and delegation patterns.
|
||||||
|
|
||||||
|
**Use when:**
|
||||||
|
- Improving existing subagents (NOT initial creation - use `/agents` command)
|
||||||
|
- Debugging activation issues
|
||||||
|
- Optimizing performance
|
||||||
|
|
||||||
|
### 5. claude-code-memory
|
||||||
|
Optimize and troubleshoot Claude Code memory files (CLAUDE.md) for efficiency, token management, and team collaboration.
|
||||||
|
|
||||||
|
**Use when:**
|
||||||
|
- Memory isn't loading
|
||||||
|
- Context is bloated
|
||||||
|
- Organizing memory hierarchy
|
||||||
|
- Setting up team collaboration (NOT initial setup - use `/init` command)
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### For Claude Code
|
||||||
|
|
||||||
|
Install from marketplace:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
/plugin install claude-code@claude-skills-marketplace
|
||||||
|
```
|
||||||
|
|
||||||
|
Or install from local directory:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
/plugin install /path/to/Skills/claude-code@local
|
||||||
|
```
|
||||||
|
|
||||||
|
### For Claude.ai
|
||||||
|
|
||||||
|
1. Zip this plugin directory
|
||||||
|
2. Go to Settings > Capabilities > Upload skill
|
||||||
|
3. Upload the zip file
|
||||||
|
4. Enable the plugin
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Once installed, these skills activate automatically when you work on related tasks:
|
||||||
|
|
||||||
|
- **Working on a plugin?** → claude-code-plugins skill activates
|
||||||
|
- **Creating slash commands?** → claude-code-slash-commands skill activates
|
||||||
|
- **Setting up hooks?** → claude-code-hooks skill activates
|
||||||
|
- **Refining a subagent?** → claude-code-subagents skill activates
|
||||||
|
- **Troubleshooting CLAUDE.md?** → claude-code-memory skill activates
|
||||||
|
|
||||||
|
You can also explicitly reference skills:
|
||||||
|
```
|
||||||
|
"Help me optimize my CLAUDE.md file"
|
||||||
|
"My subagent isn't triggering correctly"
|
||||||
|
"How do I create a hook that runs after file writes?"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Skills Details
|
||||||
|
|
||||||
|
### claude-code-plugins
|
||||||
|
|
||||||
|
**Covers:**
|
||||||
|
- Plugin manifest configuration (plugin.json)
|
||||||
|
- Component setup (commands/agents/skills/hooks)
|
||||||
|
- Distribution and marketplace publishing
|
||||||
|
- Best practices and troubleshooting
|
||||||
|
|
||||||
|
[View Details](./skills/claude-code-plugins/SKILL.md)
|
||||||
|
|
||||||
|
### claude-code-slash-commands
|
||||||
|
|
||||||
|
**Covers:**
|
||||||
|
- Command syntax and frontmatter options
|
||||||
|
- Argument patterns ($ARGUMENTS, $1, $2...)
|
||||||
|
- Bash integration with ! prefix
|
||||||
|
- File references with @ prefix
|
||||||
|
- Complete examples and patterns
|
||||||
|
|
||||||
|
[View Details](./skills/claude-code-slash-commands/SKILL.md)
|
||||||
|
|
||||||
|
### claude-code-hooks
|
||||||
|
|
||||||
|
**Covers:**
|
||||||
|
- All hook types (SessionStart, PreToolUse, PostToolUse, etc.)
|
||||||
|
- Matcher patterns for tool filtering
|
||||||
|
- Exit codes and control flow
|
||||||
|
- Environment variables
|
||||||
|
- Complete working examples
|
||||||
|
|
||||||
|
[View Details](./skills/claude-code-hooks/SKILL.md)
|
||||||
|
|
||||||
|
### claude-code-subagents
|
||||||
|
|
||||||
|
**Covers:**
|
||||||
|
- Common problems and solutions
|
||||||
|
- System prompt optimization
|
||||||
|
- Tool access strategies
|
||||||
|
- Model selection guide
|
||||||
|
- Testing and validation
|
||||||
|
- Migration from ad-hoc prompts
|
||||||
|
|
||||||
|
[View Details](./skills/claude-code-subagents/SKILL.md)
|
||||||
|
|
||||||
|
### claude-code-memory
|
||||||
|
|
||||||
|
**Covers:**
|
||||||
|
- Memory hierarchy (project/user/subfolder)
|
||||||
|
- Token management and optimization
|
||||||
|
- Import system (@path/to/file)
|
||||||
|
- Team collaboration patterns
|
||||||
|
- Troubleshooting loading issues
|
||||||
|
- Template examples
|
||||||
|
|
||||||
|
[View Details](./skills/claude-code-memory/SKILL.md)
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
### Initial Setup
|
||||||
|
1. Use built-in commands first:
|
||||||
|
- `/init` for memory setup
|
||||||
|
- `/agents` for subagent creation
|
||||||
|
2. Use these skills to refine and optimize afterward
|
||||||
|
|
||||||
|
### Progressive Learning
|
||||||
|
Start with one skill at a time:
|
||||||
|
1. Begin with **memory** - establish good context management
|
||||||
|
2. Add **slash commands** for common workflows
|
||||||
|
3. Implement **hooks** for automation
|
||||||
|
4. Create **subagents** for specialized tasks
|
||||||
|
5. Package everything in **plugins** for reusability
|
||||||
|
|
||||||
|
### Team Collaboration
|
||||||
|
- Share this plugin with your team for consistent workflows
|
||||||
|
- Use memory files for team standards
|
||||||
|
- Create project-specific slash commands
|
||||||
|
- Document subagent usage patterns
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
**Skills not activating?**
|
||||||
|
- Verify plugin is installed: `/plugin list`
|
||||||
|
- Check descriptions match your use case
|
||||||
|
- Try explicit skill references in prompts
|
||||||
|
|
||||||
|
**Need help with specific features?**
|
||||||
|
- Memory issues → Use claude-code-memory skill
|
||||||
|
- Subagent problems → Use claude-code-subagents skill
|
||||||
|
- Hook debugging → Use claude-code-hooks skill
|
||||||
|
|
||||||
|
## Version History
|
||||||
|
|
||||||
|
### 1.0.0 (Initial Release)
|
||||||
|
- claude-code-plugins skill
|
||||||
|
- claude-code-slash-commands skill
|
||||||
|
- claude-code-hooks skill
|
||||||
|
- claude-code-subagents skill
|
||||||
|
- claude-code-memory skill
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Found an issue or have improvements? See the main marketplace [CONTRIBUTING.md](../CONTRIBUTING.md).
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
See main marketplace repository for license information.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Remember**: These skills are for refinement and troubleshooting. Use Claude Code's built-in commands (`/init`, `/agents`, `/memory`) for initial setup, then use these skills to optimize.
|
||||||
1049
claude-code/skills/claude-code-hooks/SKILL.md
Normal file
1049
claude-code/skills/claude-code-hooks/SKILL.md
Normal file
File diff suppressed because it is too large
Load Diff
1032
claude-code/skills/claude-code-memory/SKILL.md
Normal file
1032
claude-code/skills/claude-code-memory/SKILL.md
Normal file
File diff suppressed because it is too large
Load Diff
546
claude-code/skills/claude-code-plugins/SKILL.md
Normal file
546
claude-code/skills/claude-code-plugins/SKILL.md
Normal file
@@ -0,0 +1,546 @@
|
|||||||
|
---
|
||||||
|
name: Claude Code Plugin Developer
|
||||||
|
description: Create and structure Claude Code plugins with commands, agents, skills, hooks, and MCP servers. Use when building plugins for Claude Code, setting up plugin structure, or configuring plugin manifests.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Claude Code Plugin Development
|
||||||
|
|
||||||
|
## When to Use This Skill
|
||||||
|
|
||||||
|
Use this skill when:
|
||||||
|
- Creating a new Claude Code plugin from scratch
|
||||||
|
- Adding components to an existing plugin (commands, agents, skills, hooks)
|
||||||
|
- Configuring plugin manifests and metadata
|
||||||
|
- Setting up plugin distribution and marketplaces
|
||||||
|
- Troubleshooting plugin structure or installation issues
|
||||||
|
|
||||||
|
Do NOT use this skill for:
|
||||||
|
- Creating standalone MCP servers (use MCP-specific documentation)
|
||||||
|
- General Claude Code usage (not plugin development)
|
||||||
|
- Creating individual skills without plugin context
|
||||||
|
|
||||||
|
## Quick Start: Creating a Plugin
|
||||||
|
|
||||||
|
### 1. Basic Plugin Structure
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Create plugin directory
|
||||||
|
mkdir my-plugin
|
||||||
|
cd my-plugin
|
||||||
|
|
||||||
|
# Create required manifest directory
|
||||||
|
mkdir -p .claude-plugin
|
||||||
|
|
||||||
|
# Create plugin.json manifest
|
||||||
|
cat > .claude-plugin/plugin.json << 'EOF'
|
||||||
|
{
|
||||||
|
"name": "my-plugin",
|
||||||
|
"description": "Description of what your plugin does",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": {
|
||||||
|
"name": "Your Name"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Add Component Directories
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Create directories for plugin components
|
||||||
|
mkdir -p commands # Slash commands
|
||||||
|
mkdir -p agents # Custom agents
|
||||||
|
mkdir -p skills # Agent Skills
|
||||||
|
mkdir -p hooks # Event handlers
|
||||||
|
```
|
||||||
|
|
||||||
|
**Result**: Basic plugin structure ready for adding components.
|
||||||
|
|
||||||
|
## Plugin Manifest (plugin.json)
|
||||||
|
|
||||||
|
### Required Fields
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "plugin-name", // Lowercase, kebab-case
|
||||||
|
"description": "What it does", // Clear, concise description
|
||||||
|
"version": "1.0.0", // Semantic versioning
|
||||||
|
"author": {
|
||||||
|
"name": "Author Name" // Your name or organization
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Optional Fields
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "my-plugin",
|
||||||
|
"description": "Advanced features",
|
||||||
|
"version": "1.2.0",
|
||||||
|
"author": {
|
||||||
|
"name": "Your Name",
|
||||||
|
"email": "you@example.com",
|
||||||
|
"url": "https://yoursite.com"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/user/repo"
|
||||||
|
},
|
||||||
|
"license": "MIT",
|
||||||
|
"keywords": ["productivity", "automation"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Plugin Components
|
||||||
|
|
||||||
|
### 1. Commands (Slash Commands)
|
||||||
|
|
||||||
|
Create markdown files in `commands/` directory:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# commands/review-security.md
|
||||||
|
---
|
||||||
|
description: Review code for security vulnerabilities
|
||||||
|
allowed-tools: Read(*), Grep(*)
|
||||||
|
---
|
||||||
|
|
||||||
|
Review the following files for common security issues:
|
||||||
|
- SQL injection vulnerabilities
|
||||||
|
- XSS vulnerabilities
|
||||||
|
- Hardcoded credentials
|
||||||
|
- Unsafe deserialization
|
||||||
|
|
||||||
|
$ARGUMENTS
|
||||||
|
```
|
||||||
|
|
||||||
|
**Usage**: `/review-security @src/auth.js`
|
||||||
|
|
||||||
|
### 2. Agents
|
||||||
|
|
||||||
|
Create agent configurations in `agents/` directory:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# agents/code-reviewer.md
|
||||||
|
---
|
||||||
|
description: Reviews code for best practices
|
||||||
|
tools: [Read, Grep, Bash]
|
||||||
|
model: claude-sonnet-4
|
||||||
|
---
|
||||||
|
|
||||||
|
You are a code review specialist. When reviewing code:
|
||||||
|
1. Check for common patterns and anti-patterns
|
||||||
|
2. Verify error handling
|
||||||
|
3. Look for security issues
|
||||||
|
4. Suggest improvements
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Skills
|
||||||
|
|
||||||
|
Create skill directories in `skills/`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p skills/my-skill
|
||||||
|
# Then create skills/my-skill/SKILL.md with proper frontmatter
|
||||||
|
```
|
||||||
|
|
||||||
|
See the `claude-skills` skill for comprehensive skill creation guidance.
|
||||||
|
|
||||||
|
### 4. Hooks
|
||||||
|
|
||||||
|
Create `hooks/hooks.json` to define event handlers:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"PostToolUse": [
|
||||||
|
{
|
||||||
|
"matcher": "Edit|Write",
|
||||||
|
"hooks": [
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"command": "echo 'File modified: $TOOL_ARGS' >> .claude/activity.log"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. MCP Servers
|
||||||
|
|
||||||
|
Create `.mcp.json` for external tools:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"mcpServers": {
|
||||||
|
"my-server": {
|
||||||
|
"command": "node",
|
||||||
|
"args": ["server.js"],
|
||||||
|
"env": {
|
||||||
|
"API_KEY": "env:MY_API_KEY"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Complete Plugin Example
|
||||||
|
|
||||||
|
### File Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
weather-plugin/
|
||||||
|
├── .claude-plugin/
|
||||||
|
│ └── plugin.json
|
||||||
|
├── commands/
|
||||||
|
│ └── weather.md
|
||||||
|
├── agents/
|
||||||
|
│ └── forecast-analyst.md
|
||||||
|
├── skills/
|
||||||
|
│ └── weather-api/
|
||||||
|
│ └── SKILL.md
|
||||||
|
└── README.md
|
||||||
|
```
|
||||||
|
|
||||||
|
### plugin.json
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "weather-plugin",
|
||||||
|
"description": "Weather forecasting and analysis tools",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": {
|
||||||
|
"name": "Weather Team"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### commands/weather.md
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Get current weather for a location
|
||||||
|
argument-hint: <location>
|
||||||
|
---
|
||||||
|
|
||||||
|
Get the current weather conditions for: $ARGUMENTS
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- Temperature
|
||||||
|
- Conditions
|
||||||
|
- Humidity
|
||||||
|
- Wind speed
|
||||||
|
```
|
||||||
|
|
||||||
|
### agents/forecast-analyst.md
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Analyzes weather patterns and forecasts
|
||||||
|
tools: [WebFetch, Read]
|
||||||
|
---
|
||||||
|
|
||||||
|
You are a weather analysis specialist. When asked about weather:
|
||||||
|
1. Gather current conditions
|
||||||
|
2. Analyze patterns
|
||||||
|
3. Provide forecast insights
|
||||||
|
4. Suggest appropriate actions
|
||||||
|
```
|
||||||
|
|
||||||
|
## Distribution & Installation
|
||||||
|
|
||||||
|
### Local Development
|
||||||
|
|
||||||
|
Test your plugin locally:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install from local directory
|
||||||
|
/plugin install /path/to/my-plugin@local
|
||||||
|
|
||||||
|
# Verify installation
|
||||||
|
/plugin list
|
||||||
|
```
|
||||||
|
|
||||||
|
### Development Marketplace
|
||||||
|
|
||||||
|
Create a development marketplace for testing:
|
||||||
|
|
||||||
|
```json
|
||||||
|
// ~/.claude/settings.json
|
||||||
|
{
|
||||||
|
"plugin-marketplaces": {
|
||||||
|
"dev": {
|
||||||
|
"url": "file:///path/to/marketplace-dir"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Team Distribution
|
||||||
|
|
||||||
|
Add to project settings for automatic installation:
|
||||||
|
|
||||||
|
```json
|
||||||
|
// .claude/settings.json
|
||||||
|
{
|
||||||
|
"plugins": [
|
||||||
|
"my-plugin@company-marketplace"
|
||||||
|
],
|
||||||
|
"plugin-marketplaces": {
|
||||||
|
"company-marketplace": {
|
||||||
|
"url": "https://plugins.company.com"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
### Plugin Design
|
||||||
|
|
||||||
|
1. **Single responsibility**: Each plugin should have a focused purpose
|
||||||
|
2. **Clear naming**: Use descriptive, kebab-case names
|
||||||
|
3. **Semantic versioning**: Follow SemVer for version numbers
|
||||||
|
4. **Documentation**: Include comprehensive README.md
|
||||||
|
|
||||||
|
### Directory Organization
|
||||||
|
|
||||||
|
```
|
||||||
|
my-plugin/
|
||||||
|
├── .claude-plugin/ # Manifest only
|
||||||
|
│ └── plugin.json
|
||||||
|
├── commands/ # At plugin root, not in .claude-plugin/
|
||||||
|
├── agents/ # At plugin root
|
||||||
|
├── skills/ # At plugin root
|
||||||
|
└── README.md # Usage documentation
|
||||||
|
```
|
||||||
|
|
||||||
|
**IMPORTANT**: Component directories go at the plugin root, NOT inside `.claude-plugin/`
|
||||||
|
|
||||||
|
### Testing Checklist
|
||||||
|
|
||||||
|
- [ ] Plugin.json is valid JSON
|
||||||
|
- [ ] All required fields present
|
||||||
|
- [ ] Component directories at plugin root
|
||||||
|
- [ ] Commands have valid frontmatter
|
||||||
|
- [ ] Skills follow proper structure
|
||||||
|
- [ ] Local installation works
|
||||||
|
- [ ] No sensitive data in files
|
||||||
|
- [ ] README documents all features
|
||||||
|
|
||||||
|
### Version Management
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Update version in plugin.json
|
||||||
|
{
|
||||||
|
"version": "1.1.0" // Increment for changes
|
||||||
|
}
|
||||||
|
|
||||||
|
# Breaking changes: 2.0.0
|
||||||
|
# New features: 1.1.0
|
||||||
|
# Bug fixes: 1.0.1
|
||||||
|
```
|
||||||
|
|
||||||
|
## Common Patterns
|
||||||
|
|
||||||
|
### Multi-Command Plugin
|
||||||
|
|
||||||
|
For related commands, use subdirectories:
|
||||||
|
|
||||||
|
```
|
||||||
|
git-tools/
|
||||||
|
├── .claude-plugin/plugin.json
|
||||||
|
└── commands/
|
||||||
|
├── commit.md
|
||||||
|
├── pr.md
|
||||||
|
└── review.md
|
||||||
|
```
|
||||||
|
|
||||||
|
**Usage**: `/commit`, `/pr`, `/review`
|
||||||
|
|
||||||
|
### Agent + Skill Combination
|
||||||
|
|
||||||
|
Combine agents with specialized skills:
|
||||||
|
|
||||||
|
```
|
||||||
|
api-plugin/
|
||||||
|
├── .claude-plugin/plugin.json
|
||||||
|
├── agents/
|
||||||
|
│ └── api-specialist.md
|
||||||
|
└── skills/
|
||||||
|
└── rest-api/
|
||||||
|
└── SKILL.md
|
||||||
|
```
|
||||||
|
|
||||||
|
The agent can leverage the skill for specialized knowledge.
|
||||||
|
|
||||||
|
### Hook-Based Automation
|
||||||
|
|
||||||
|
Use hooks for workflow automation:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"PostToolUse": [
|
||||||
|
{
|
||||||
|
"matcher": "Write",
|
||||||
|
"hooks": [
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"command": "npm run format $TOOL_ARGS"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Plugin Not Found
|
||||||
|
|
||||||
|
**Issue**: `/plugin install` can't find plugin
|
||||||
|
|
||||||
|
**Solutions**:
|
||||||
|
1. Check marketplace configuration in settings.json
|
||||||
|
2. Verify plugin name matches directory name
|
||||||
|
3. Ensure plugin.json exists in `.claude-plugin/`
|
||||||
|
|
||||||
|
### Commands Not Available
|
||||||
|
|
||||||
|
**Issue**: Slash commands don't appear
|
||||||
|
|
||||||
|
**Solutions**:
|
||||||
|
1. Verify commands are in `commands/` at plugin root
|
||||||
|
2. Check markdown files have `.md` extension
|
||||||
|
3. Restart Claude Code to refresh
|
||||||
|
|
||||||
|
### Invalid Structure Error
|
||||||
|
|
||||||
|
**Issue**: Plugin fails to load
|
||||||
|
|
||||||
|
**Solutions**:
|
||||||
|
1. Ensure `.claude-plugin/plugin.json` exists
|
||||||
|
2. Validate JSON syntax
|
||||||
|
3. Move component directories to plugin root (not in `.claude-plugin/`)
|
||||||
|
|
||||||
|
## Security Considerations
|
||||||
|
|
||||||
|
### Never Include
|
||||||
|
|
||||||
|
- API keys or credentials in plugin files
|
||||||
|
- Personal identifying information
|
||||||
|
- Proprietary code without permission
|
||||||
|
- Hardcoded paths to user-specific locations
|
||||||
|
|
||||||
|
### Use Environment Variables
|
||||||
|
|
||||||
|
```json
|
||||||
|
// .mcp.json
|
||||||
|
{
|
||||||
|
"mcpServers": {
|
||||||
|
"api-server": {
|
||||||
|
"env": {
|
||||||
|
"API_KEY": "env:MY_API_KEY" // Reference env var
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Command Permissions
|
||||||
|
|
||||||
|
Limit tool access in command frontmatter:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
allowed-tools: Read(src/**), Grep(src/**)
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
## Plugin Template
|
||||||
|
|
||||||
|
Use this as a starting point:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
# create-plugin.sh <plugin-name>
|
||||||
|
|
||||||
|
PLUGIN_NAME=$1
|
||||||
|
|
||||||
|
mkdir -p "$PLUGIN_NAME"/{.claude-plugin,commands,agents,skills,hooks}
|
||||||
|
|
||||||
|
cat > "$PLUGIN_NAME/.claude-plugin/plugin.json" << EOF
|
||||||
|
{
|
||||||
|
"name": "$PLUGIN_NAME",
|
||||||
|
"description": "TODO: Add description",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"author": {
|
||||||
|
"name": "TODO: Add author"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > "$PLUGIN_NAME/README.md" << EOF
|
||||||
|
# $PLUGIN_NAME
|
||||||
|
|
||||||
|
TODO: Add plugin description
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
\`\`\`
|
||||||
|
/plugin install $PLUGIN_NAME@marketplace
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
TODO: List features
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
TODO: Add usage examples
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "Plugin structure created in $PLUGIN_NAME/"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
|
||||||
|
- [Official Plugin Documentation](https://docs.claude.com/en/docs/claude-code/plugins)
|
||||||
|
- [Slash Commands Guide](../claude-code-slash-commands/SKILL.md)
|
||||||
|
- [Hooks Guide](../claude-code-hooks/SKILL.md)
|
||||||
|
- [Agent Skills Guide](../claude-skills/SKILL.md)
|
||||||
|
|
||||||
|
## Quick Reference
|
||||||
|
|
||||||
|
### Required Structure
|
||||||
|
```
|
||||||
|
plugin-name/
|
||||||
|
└── .claude-plugin/
|
||||||
|
└── plugin.json
|
||||||
|
```
|
||||||
|
|
||||||
|
### Common Commands
|
||||||
|
```bash
|
||||||
|
# Install
|
||||||
|
/plugin install plugin-name@marketplace
|
||||||
|
|
||||||
|
# List installed
|
||||||
|
/plugin list
|
||||||
|
|
||||||
|
# Uninstall
|
||||||
|
/plugin uninstall plugin-name
|
||||||
|
```
|
||||||
|
|
||||||
|
### Manifest Template
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "plugin-name",
|
||||||
|
"description": "What it does",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": {"name": "Your Name"}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Remember**: Plugins extend Claude Code with persistent, reusable functionality. Start simple with one or two components, test thoroughly, then expand based on actual needs.
|
||||||
698
claude-code/skills/claude-code-slash-commands/SKILL.md
Normal file
698
claude-code/skills/claude-code-slash-commands/SKILL.md
Normal file
@@ -0,0 +1,698 @@
|
|||||||
|
---
|
||||||
|
name: Slash Command Creator
|
||||||
|
description: Create custom slash commands for Claude Code with argument handling, bash execution, and file references. Use when building reusable prompts, automating workflows, or creating project-specific commands.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Slash Command Development
|
||||||
|
|
||||||
|
## When to Use This Skill
|
||||||
|
|
||||||
|
Use this skill when:
|
||||||
|
- Creating custom slash commands for Claude Code
|
||||||
|
- Building reusable prompt templates
|
||||||
|
- Automating repetitive tasks with commands
|
||||||
|
- Setting up project-specific workflows
|
||||||
|
- Converting manual prompts to slash commands
|
||||||
|
|
||||||
|
Do NOT use this skill for:
|
||||||
|
- Creating full plugins (use claude-code-plugins skill)
|
||||||
|
- Setting up hooks (use claude-code-hooks skill)
|
||||||
|
- General Claude Code usage
|
||||||
|
|
||||||
|
## Quick Start: Creating a Command
|
||||||
|
|
||||||
|
### 1. Create Command File
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Project-specific command (shared with team)
|
||||||
|
mkdir -p .claude/commands
|
||||||
|
cat > .claude/commands/review.md << 'EOF'
|
||||||
|
---
|
||||||
|
description: Review code for common issues
|
||||||
|
---
|
||||||
|
|
||||||
|
Review the following code for:
|
||||||
|
- Bugs and logic errors
|
||||||
|
- Code style issues
|
||||||
|
- Performance problems
|
||||||
|
- Security vulnerabilities
|
||||||
|
|
||||||
|
$ARGUMENTS
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
**Usage**: `/review @src/main.js`
|
||||||
|
|
||||||
|
### 2. Personal Command (Your Use Only)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Personal command (not shared)
|
||||||
|
mkdir -p ~/.claude/commands
|
||||||
|
cat > ~/.claude/commands/explain.md << 'EOF'
|
||||||
|
---
|
||||||
|
description: Explain code in detail
|
||||||
|
argument-hint: <file-path>
|
||||||
|
---
|
||||||
|
|
||||||
|
Provide a detailed explanation of: $ARGUMENTS
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- What the code does
|
||||||
|
- How it works
|
||||||
|
- Key design decisions
|
||||||
|
- Potential improvements
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
**Usage**: `/explain @utils/parser.ts`
|
||||||
|
|
||||||
|
## Command Locations
|
||||||
|
|
||||||
|
### Project Commands (.claude/commands/)
|
||||||
|
|
||||||
|
**Location**: `.claude/commands/` in your project
|
||||||
|
**Scope**: Available to everyone working on the project
|
||||||
|
**Version Control**: Commit to git for team sharing
|
||||||
|
**Use For**: Project-specific workflows, team standards
|
||||||
|
|
||||||
|
### Personal Commands (~/.claude/commands/)
|
||||||
|
|
||||||
|
**Location**: `~/.claude/commands/`
|
||||||
|
**Scope**: Available in all your projects
|
||||||
|
**Version Control**: Not in git (user-specific)
|
||||||
|
**Use For**: Personal productivity, custom preferences
|
||||||
|
|
||||||
|
## Command Syntax
|
||||||
|
|
||||||
|
### Basic Structure
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Brief description for /help
|
||||||
|
---
|
||||||
|
|
||||||
|
Prompt content here
|
||||||
|
```
|
||||||
|
|
||||||
|
### Command Name
|
||||||
|
|
||||||
|
The filename (without `.md`) becomes the command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# File: .claude/commands/test.md
|
||||||
|
# Command: /test
|
||||||
|
|
||||||
|
# File: .claude/commands/commit-push.md
|
||||||
|
# Command: /commit-push
|
||||||
|
```
|
||||||
|
|
||||||
|
## Frontmatter Options
|
||||||
|
|
||||||
|
### description
|
||||||
|
|
||||||
|
Shows in `/help` output:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
description: Generate unit tests for a function
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
### argument-hint
|
||||||
|
|
||||||
|
Shows expected arguments in autocomplete:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
description: Compare two files
|
||||||
|
argument-hint: <file1> <file2>
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
### allowed-tools
|
||||||
|
|
||||||
|
Specifies which tools the command can use:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
description: Review and commit changes
|
||||||
|
allowed-tools: Bash(git status:*), Bash(git add:*), Bash(git commit:*)
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
**Patterns**:
|
||||||
|
- `Bash(git status:*)` - Specific command with any args
|
||||||
|
- `Read(*)` - Tool with any args
|
||||||
|
- `*` - All tools allowed
|
||||||
|
|
||||||
|
### model
|
||||||
|
|
||||||
|
Override default model for this command:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
description: Simple task
|
||||||
|
model: claude-haiku-4
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
### disable-model-invocation
|
||||||
|
|
||||||
|
Prevent SlashCommand tool from calling this:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
description: Internal helper command
|
||||||
|
disable-model-invocation: true
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
## Argument Handling
|
||||||
|
|
||||||
|
### $ARGUMENTS - All Arguments
|
||||||
|
|
||||||
|
Captures everything passed to the command:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Explain multiple files
|
||||||
|
---
|
||||||
|
|
||||||
|
Explain these files: $ARGUMENTS
|
||||||
|
```
|
||||||
|
|
||||||
|
**Usage**: `/explain @src/a.js @src/b.js @src/c.js`
|
||||||
|
**Result**: All three file paths captured
|
||||||
|
|
||||||
|
### Positional Arguments ($1, $2, $3...)
|
||||||
|
|
||||||
|
Individual arguments like shell scripts:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Compare two approaches
|
||||||
|
argument-hint: <approach1> <approach2>
|
||||||
|
---
|
||||||
|
|
||||||
|
Compare approach "$1" versus "$2" and recommend which is better.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Usage**: `/compare REST GraphQL`
|
||||||
|
**$1** = "REST"
|
||||||
|
**$2** = "GraphQL"
|
||||||
|
|
||||||
|
### Combining Arguments
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Test specific function
|
||||||
|
argument-hint: <file> <function-name>
|
||||||
|
---
|
||||||
|
|
||||||
|
In file $1, create comprehensive tests for the function: $2
|
||||||
|
|
||||||
|
$ARGUMENTS
|
||||||
|
```
|
||||||
|
|
||||||
|
## File References with @
|
||||||
|
|
||||||
|
### Single File
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Review a file
|
||||||
|
---
|
||||||
|
|
||||||
|
Review @$1 for code quality issues.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Usage**: `/review src/auth.js`
|
||||||
|
Claude will read `src/auth.js` automatically
|
||||||
|
|
||||||
|
### Multiple Files
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Compare implementations
|
||||||
|
---
|
||||||
|
|
||||||
|
Compare the implementation approaches in:
|
||||||
|
$ARGUMENTS
|
||||||
|
|
||||||
|
Which approach is better and why?
|
||||||
|
```
|
||||||
|
|
||||||
|
**Usage**: `/compare @old/version.js @new/version.js`
|
||||||
|
|
||||||
|
### Inline File References
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
Review @src/config.js and ensure it follows @docs/style-guide.md
|
||||||
|
```
|
||||||
|
|
||||||
|
The `@` prefix tells Claude to read those files before processing.
|
||||||
|
|
||||||
|
## Bash Execution with !
|
||||||
|
|
||||||
|
### Prefix Commands with !
|
||||||
|
|
||||||
|
Run bash before the slash command executes:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Show git status and suggest next steps
|
||||||
|
allowed-tools: Bash(git status:*), Bash(git diff:*)
|
||||||
|
---
|
||||||
|
|
||||||
|
!git status
|
||||||
|
!git diff --stat
|
||||||
|
|
||||||
|
Based on the current git state, suggest what I should do next.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Important**: Must include `allowed-tools` with Bash tool specification.
|
||||||
|
|
||||||
|
### Why Use ! Prefix?
|
||||||
|
|
||||||
|
Without `!`, bash commands are just text in the prompt.
|
||||||
|
With `!`, they execute and results are included in context.
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# This doesn't work (just text):
|
||||||
|
git status
|
||||||
|
What should I commit?
|
||||||
|
|
||||||
|
# This works (executes first):
|
||||||
|
---
|
||||||
|
allowed-tools: Bash(git status:*)
|
||||||
|
---
|
||||||
|
|
||||||
|
!git status
|
||||||
|
What should I commit?
|
||||||
|
```
|
||||||
|
|
||||||
|
## Namespacing with Directories
|
||||||
|
|
||||||
|
### Organize Related Commands
|
||||||
|
|
||||||
|
```
|
||||||
|
.claude/commands/
|
||||||
|
├── git/
|
||||||
|
│ ├── commit.md
|
||||||
|
│ ├── review.md
|
||||||
|
│ └── sync.md
|
||||||
|
└── test/
|
||||||
|
├── unit.md
|
||||||
|
└── integration.md
|
||||||
|
```
|
||||||
|
|
||||||
|
**Commands**: `/commit`, `/review`, `/sync`, `/unit`, `/integration`
|
||||||
|
|
||||||
|
**Note**: Directory structure is for organization only - it doesn't affect command names.
|
||||||
|
|
||||||
|
## Complete Examples
|
||||||
|
|
||||||
|
### 1. Security Review Command
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Comprehensive security review of code files
|
||||||
|
allowed-tools: Read(*), Grep(*), Bash(grep:*)
|
||||||
|
argument-hint: <files...>
|
||||||
|
---
|
||||||
|
|
||||||
|
Perform a security audit on: $ARGUMENTS
|
||||||
|
|
||||||
|
Check for:
|
||||||
|
1. SQL injection vulnerabilities
|
||||||
|
2. XSS vulnerabilities
|
||||||
|
3. Authentication/authorization issues
|
||||||
|
4. Hardcoded secrets or credentials
|
||||||
|
5. Unsafe deserialization
|
||||||
|
6. Path traversal vulnerabilities
|
||||||
|
7. Insecure cryptography
|
||||||
|
8. Information disclosure
|
||||||
|
|
||||||
|
For each issue found:
|
||||||
|
- Severity level (Critical/High/Medium/Low)
|
||||||
|
- Location (file:line)
|
||||||
|
- Explanation of the vulnerability
|
||||||
|
- Recommended fix with code example
|
||||||
|
```
|
||||||
|
|
||||||
|
**Usage**: `/security-review @src/auth.js @src/api.js`
|
||||||
|
|
||||||
|
### 2. Commit + Push Command
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Review changes, commit, and push to remote
|
||||||
|
allowed-tools: Bash(git:*)
|
||||||
|
---
|
||||||
|
|
||||||
|
!git status
|
||||||
|
!git diff
|
||||||
|
|
||||||
|
Review the changes above and:
|
||||||
|
1. Create an appropriate commit message
|
||||||
|
2. Commit the changes
|
||||||
|
3. Push to remote
|
||||||
|
|
||||||
|
Ask for confirmation before pushing.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Usage**: `/commit-push`
|
||||||
|
|
||||||
|
### 3. Test Generator
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Generate comprehensive tests for a function
|
||||||
|
argument-hint: <file> <function-name>
|
||||||
|
model: claude-sonnet-4
|
||||||
|
---
|
||||||
|
|
||||||
|
For the function "$2" in @$1:
|
||||||
|
|
||||||
|
1. Analyze the function's behavior
|
||||||
|
2. Identify edge cases
|
||||||
|
3. Generate comprehensive unit tests including:
|
||||||
|
- Happy path tests
|
||||||
|
- Edge case tests
|
||||||
|
- Error condition tests
|
||||||
|
- Boundary value tests
|
||||||
|
|
||||||
|
Use the project's existing test framework and patterns.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Usage**: `/test-gen src/parser.js parseQuery`
|
||||||
|
|
||||||
|
### 4. API Documentation
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Generate API documentation for endpoints
|
||||||
|
allowed-tools: Read(*), Grep(*)
|
||||||
|
---
|
||||||
|
|
||||||
|
Generate API documentation for: $ARGUMENTS
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- Endpoint URL and method
|
||||||
|
- Request parameters (query, body, headers)
|
||||||
|
- Response format and status codes
|
||||||
|
- Example requests and responses
|
||||||
|
- Error conditions
|
||||||
|
- Authentication requirements
|
||||||
|
|
||||||
|
Format as OpenAPI/Swagger compatible YAML.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Usage**: `/api-docs @routes/users.js @routes/posts.js`
|
||||||
|
|
||||||
|
### 5. Performance Analysis
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Analyze code for performance issues
|
||||||
|
argument-hint: <file>
|
||||||
|
---
|
||||||
|
|
||||||
|
Analyze @$1 for performance issues:
|
||||||
|
|
||||||
|
1. **Time Complexity**: Identify algorithms and their complexity
|
||||||
|
2. **Space Complexity**: Memory usage patterns
|
||||||
|
3. **Bottlenecks**: Potential performance problems
|
||||||
|
4. **Optimization Opportunities**: Specific improvements with examples
|
||||||
|
|
||||||
|
For each issue:
|
||||||
|
- Current implementation
|
||||||
|
- Why it's problematic
|
||||||
|
- Optimized version
|
||||||
|
- Performance impact estimate
|
||||||
|
```
|
||||||
|
|
||||||
|
**Usage**: `/perf @src/data-processor.js`
|
||||||
|
|
||||||
|
## Command Patterns
|
||||||
|
|
||||||
|
### Review Pattern
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Review X for Y
|
||||||
|
---
|
||||||
|
|
||||||
|
Review $ARGUMENTS for [specific criteria]
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- [Aspect 1]
|
||||||
|
- [Aspect 2]
|
||||||
|
- [Aspect 3]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Generate Pattern
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Generate X from Y
|
||||||
|
---
|
||||||
|
|
||||||
|
Generate [output type] for: $ARGUMENTS
|
||||||
|
|
||||||
|
Requirements:
|
||||||
|
- [Requirement 1]
|
||||||
|
- [Requirement 2]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Compare Pattern
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Compare X and Y
|
||||||
|
argument-hint: <option1> <option2>
|
||||||
|
---
|
||||||
|
|
||||||
|
Compare "$1" versus "$2"
|
||||||
|
|
||||||
|
Analyze:
|
||||||
|
- [Comparison aspect 1]
|
||||||
|
- [Comparison aspect 2]
|
||||||
|
|
||||||
|
Recommendation: [Which is better and why]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Workflow Pattern
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Execute multi-step workflow
|
||||||
|
allowed-tools: Bash(*), Read(*), Write(*)
|
||||||
|
---
|
||||||
|
|
||||||
|
Execute the following workflow:
|
||||||
|
|
||||||
|
1. [Step 1]
|
||||||
|
2. [Step 2]
|
||||||
|
3. [Step 3]
|
||||||
|
|
||||||
|
After each step, confirm before proceeding.
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing Commands
|
||||||
|
|
||||||
|
### 1. Check Command List
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# See all available commands
|
||||||
|
/help
|
||||||
|
|
||||||
|
# Your command should appear in the list
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Test Argument Handling
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Test with different argument patterns
|
||||||
|
/mycommand arg1
|
||||||
|
/mycommand arg1 arg2
|
||||||
|
/mycommand @file.js
|
||||||
|
/mycommand @file1.js @file2.js
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Verify Bash Execution
|
||||||
|
|
||||||
|
If using `!` prefix, confirm commands execute:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Test bash execution
|
||||||
|
allowed-tools: Bash(echo:*)
|
||||||
|
---
|
||||||
|
|
||||||
|
!echo "This should show before prompt processing"
|
||||||
|
|
||||||
|
Did the echo work?
|
||||||
|
```
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
### 1. Clear Descriptions
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Good
|
||||||
|
description: Generate unit tests for a specific function
|
||||||
|
|
||||||
|
# Bad
|
||||||
|
description: Testing
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Explicit Arguments
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Good
|
||||||
|
argument-hint: <file-path> <function-name>
|
||||||
|
|
||||||
|
# Bad (no hint)
|
||||||
|
argument-hint:
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Specific Tool Permissions
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Good - minimal permissions
|
||||||
|
allowed-tools: Bash(git status:*), Bash(git diff:*)
|
||||||
|
|
||||||
|
# Risky - too permissive
|
||||||
|
allowed-tools: *
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Meaningful Names
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Good
|
||||||
|
/generate-tests
|
||||||
|
/review-security
|
||||||
|
/commit-and-push
|
||||||
|
|
||||||
|
# Bad
|
||||||
|
/gt
|
||||||
|
/rs
|
||||||
|
/cap
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Self-Documenting Content
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
Review code for:
|
||||||
|
1. Logic errors
|
||||||
|
2. Style issues
|
||||||
|
3. Performance problems
|
||||||
|
|
||||||
|
$ARGUMENTS
|
||||||
|
```
|
||||||
|
|
||||||
|
Better than:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
Review: $ARGUMENTS
|
||||||
|
```
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Command Not Found
|
||||||
|
|
||||||
|
**Issue**: `/mycommand` says command not found
|
||||||
|
|
||||||
|
**Solutions**:
|
||||||
|
1. Check file is in `.claude/commands/` or `~/.claude/commands/`
|
||||||
|
2. Verify filename ends with `.md`
|
||||||
|
3. Restart Claude Code to refresh command list
|
||||||
|
|
||||||
|
### Arguments Not Working
|
||||||
|
|
||||||
|
**Issue**: `$ARGUMENTS` or `$1` showing literally
|
||||||
|
|
||||||
|
**Solutions**:
|
||||||
|
1. Ensure proper syntax: `$ARGUMENTS`, `$1`, `$2` (not `${ARGUMENTS}`)
|
||||||
|
2. Check for typos in variable names
|
||||||
|
3. Test with simple command first
|
||||||
|
|
||||||
|
### Bash Commands Not Executing
|
||||||
|
|
||||||
|
**Issue**: `!command` not running
|
||||||
|
|
||||||
|
**Solutions**:
|
||||||
|
1. Add `allowed-tools` to frontmatter
|
||||||
|
2. Include specific tool pattern: `Bash(git:*)`
|
||||||
|
3. Test with simple command: `!echo test`
|
||||||
|
|
||||||
|
### File References Not Loading
|
||||||
|
|
||||||
|
**Issue**: `@file.js` not including file content
|
||||||
|
|
||||||
|
**Solutions**:
|
||||||
|
1. Verify file path is correct (relative to project root)
|
||||||
|
2. Check file exists: `ls @file.js`
|
||||||
|
3. Ensure no typos in file path
|
||||||
|
|
||||||
|
## Security Considerations
|
||||||
|
|
||||||
|
### Limit Tool Access
|
||||||
|
|
||||||
|
Only grant necessary permissions:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Specific commands only
|
||||||
|
allowed-tools: Bash(git status:*), Bash(git log:*)
|
||||||
|
|
||||||
|
# Never use unless absolutely required
|
||||||
|
allowed-tools: *
|
||||||
|
```
|
||||||
|
|
||||||
|
### No Hardcoded Secrets
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Bad - hardcoded API key
|
||||||
|
!curl -H "API-Key: sk-abc123..." api.example.com
|
||||||
|
|
||||||
|
# Good - use environment variables
|
||||||
|
!curl -H "API-Key: $MY_API_KEY" api.example.com
|
||||||
|
```
|
||||||
|
|
||||||
|
### Validate User Input
|
||||||
|
|
||||||
|
If using arguments in bash:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Risky - no validation
|
||||||
|
!rm -rf $1
|
||||||
|
|
||||||
|
# Better - validate first
|
||||||
|
Confirm you want to delete: $1
|
||||||
|
(Then use interactive confirmation before executing)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Command Template
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: [Clear, concise description of what this command does]
|
||||||
|
argument-hint: [Expected arguments format]
|
||||||
|
allowed-tools: [Specific tool patterns if needed]
|
||||||
|
---
|
||||||
|
|
||||||
|
[Command prompt template]
|
||||||
|
|
||||||
|
$ARGUMENTS
|
||||||
|
```
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
|
||||||
|
- [Official Slash Commands Documentation](https://docs.claude.com/en/docs/claude-code/slash-commands)
|
||||||
|
- [Plugin Development](../claude-code-plugins/SKILL.md) - For packaging commands in plugins
|
||||||
|
- [Hooks](../claude-code-hooks/SKILL.md) - For event-based automation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Remember**: Slash commands are for reusable prompts. Start with manual prompts, identify patterns you repeat, then codify them as commands.
|
||||||
934
claude-code/skills/claude-code-subagents/SKILL.md
Normal file
934
claude-code/skills/claude-code-subagents/SKILL.md
Normal file
@@ -0,0 +1,934 @@
|
|||||||
|
---
|
||||||
|
name: Claude Code Subagent Specialist
|
||||||
|
description: Refine and troubleshoot Claude Code subagents by optimizing prompts, tool access, descriptions, and performance. Use when improving existing subagents, debugging activation issues, or optimizing delegation patterns. NOT for initial creation - use /agents command first.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Claude Code Subagent Refinement & Troubleshooting
|
||||||
|
|
||||||
|
## When to Use This Skill
|
||||||
|
|
||||||
|
Use this skill when:
|
||||||
|
- Refining existing subagent prompts for better performance
|
||||||
|
- Troubleshooting why a subagent isn't activating
|
||||||
|
- Optimizing tool access and permissions
|
||||||
|
- Improving subagent descriptions for better delegation
|
||||||
|
- Debugging context management issues
|
||||||
|
- Testing and validating subagent behavior
|
||||||
|
- Converting ad-hoc workflows to reusable subagents
|
||||||
|
|
||||||
|
Do NOT use this skill for:
|
||||||
|
- **Initial creation** - Use `/agents` command instead (it provides interactive UI)
|
||||||
|
- Creating slash commands (use claude-code-slash-commands skill)
|
||||||
|
- General Claude Code troubleshooting
|
||||||
|
|
||||||
|
**Important**: Always start with `/agents` to create subagents. Use this skill to refine them afterward.
|
||||||
|
|
||||||
|
## Quick Reference: Subagent Structure
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: agent-name # Lowercase, kebab-case identifier
|
||||||
|
description: When to use # Triggers automatic delegation
|
||||||
|
tools: Tool1, Tool2 # Optional: omit to inherit all
|
||||||
|
model: sonnet # Optional: sonnet/opus/haiku/inherit
|
||||||
|
---
|
||||||
|
|
||||||
|
System prompt defining role, capabilities, and behavior.
|
||||||
|
Include specific instructions, constraints, and examples.
|
||||||
|
```
|
||||||
|
|
||||||
|
**File Locations**:
|
||||||
|
- Project: `.claude/agents/` (highest priority)
|
||||||
|
- User: `~/.claude/agents/` (shared across projects)
|
||||||
|
- Plugin: `agents/` in plugin directory
|
||||||
|
|
||||||
|
## Common Problems & Solutions
|
||||||
|
|
||||||
|
### Problem 1: Subagent Never Activates
|
||||||
|
|
||||||
|
**Symptoms**: Claude doesn't delegate to your subagent
|
||||||
|
|
||||||
|
**Diagnose**:
|
||||||
|
```yaml
|
||||||
|
# Check your description field
|
||||||
|
---
|
||||||
|
description: Helper agent # ❌ Too vague
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
**Fix - Make Description Specific**:
|
||||||
|
```yaml
|
||||||
|
# Before (vague)
|
||||||
|
---
|
||||||
|
description: Helps with security
|
||||||
|
---
|
||||||
|
|
||||||
|
# After (specific)
|
||||||
|
---
|
||||||
|
description: Analyze code for security vulnerabilities including SQL injection, XSS, authentication flaws, and hardcoded secrets. Use PROACTIVELY when reviewing code for security issues.
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
**Best Practices for Descriptions**:
|
||||||
|
- Include specific trigger words and scenarios
|
||||||
|
- Add "use PROACTIVELY" or "MUST BE USED" for automatic activation
|
||||||
|
- Mention the domain/context clearly
|
||||||
|
- List key capabilities or checks
|
||||||
|
|
||||||
|
### Problem 2: Subagent Has Wrong Tools
|
||||||
|
|
||||||
|
**Symptoms**: Subagent can't complete tasks or has too many permissions
|
||||||
|
|
||||||
|
**Diagnose**:
|
||||||
|
```bash
|
||||||
|
# Check current tool configuration
|
||||||
|
cat .claude/agents/my-agent.md | grep "tools:"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Fix - Whitelist Specific Tools**:
|
||||||
|
```yaml
|
||||||
|
# Inherits all tools (may be too permissive)
|
||||||
|
---
|
||||||
|
name: security-analyzer
|
||||||
|
description: Security analysis
|
||||||
|
---
|
||||||
|
|
||||||
|
# Restricted to read-only tools (better)
|
||||||
|
---
|
||||||
|
name: security-analyzer
|
||||||
|
description: Security analysis
|
||||||
|
tools: Read, Grep, Glob
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
**Tool Access Strategies**:
|
||||||
|
|
||||||
|
**1. Inherit All (Default)**:
|
||||||
|
```yaml
|
||||||
|
# Omit 'tools' field entirely
|
||||||
|
---
|
||||||
|
name: general-helper
|
||||||
|
description: General assistance
|
||||||
|
---
|
||||||
|
```
|
||||||
|
Use when: Agent needs full flexibility
|
||||||
|
|
||||||
|
**2. Read-Only Access**:
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
tools: Read, Grep, Glob, Bash(git log:*), Bash(git diff:*)
|
||||||
|
---
|
||||||
|
```
|
||||||
|
Use when: Analysis, review, documentation
|
||||||
|
|
||||||
|
**3. Specific Permissions**:
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
tools: Read, Write, Edit, Bash(npm test:*)
|
||||||
|
---
|
||||||
|
```
|
||||||
|
Use when: Implementation with validation
|
||||||
|
|
||||||
|
**4. No File Access**:
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
tools: WebFetch, WebSearch, Bash
|
||||||
|
---
|
||||||
|
```
|
||||||
|
Use when: Research, external data gathering
|
||||||
|
|
||||||
|
### Problem 3: Poor Quality Output
|
||||||
|
|
||||||
|
**Symptoms**: Subagent completes tasks but results are inconsistent or low-quality
|
||||||
|
|
||||||
|
**Diagnose**: Check system prompt specificity
|
||||||
|
|
||||||
|
**Fix - Enhance System Prompt**:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Before (vague)
|
||||||
|
---
|
||||||
|
name: code-reviewer
|
||||||
|
---
|
||||||
|
|
||||||
|
You review code for issues.
|
||||||
|
```
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# After (specific)
|
||||||
|
---
|
||||||
|
name: code-reviewer
|
||||||
|
---
|
||||||
|
|
||||||
|
You are a senior code reviewer specializing in production-ready code quality.
|
||||||
|
|
||||||
|
## Your Responsibilities
|
||||||
|
|
||||||
|
1. **Logic & Correctness**
|
||||||
|
- Verify algorithm correctness
|
||||||
|
- Check edge case handling
|
||||||
|
- Validate error conditions
|
||||||
|
|
||||||
|
2. **Code Quality**
|
||||||
|
- Ensure single responsibility principle
|
||||||
|
- Check for code duplication (DRY)
|
||||||
|
- Verify meaningful naming
|
||||||
|
|
||||||
|
3. **Security**
|
||||||
|
- Identify injection vulnerabilities
|
||||||
|
- Check authentication/authorization
|
||||||
|
- Flag hardcoded secrets
|
||||||
|
|
||||||
|
4. **Performance**
|
||||||
|
- Spot O(n²) or worse algorithms
|
||||||
|
- Identify unnecessary loops
|
||||||
|
- Check resource cleanup
|
||||||
|
|
||||||
|
## Output Format
|
||||||
|
|
||||||
|
For each issue found:
|
||||||
|
- **Severity**: Critical/High/Medium/Low
|
||||||
|
- **Location**: file:line
|
||||||
|
- **Issue**: Clear description
|
||||||
|
- **Fix**: Specific code example
|
||||||
|
|
||||||
|
## Constraints
|
||||||
|
|
||||||
|
- Only report actionable issues
|
||||||
|
- Provide code examples for fixes
|
||||||
|
- Focus on high-impact problems first
|
||||||
|
- No nitpicking style issues unless severe
|
||||||
|
```
|
||||||
|
|
||||||
|
**System Prompt Best Practices**:
|
||||||
|
- Define role and expertise level
|
||||||
|
- List specific responsibilities
|
||||||
|
- Include output format requirements
|
||||||
|
- Add examples of good/bad cases
|
||||||
|
- Specify constraints and boundaries
|
||||||
|
- Use headings for scannability
|
||||||
|
|
||||||
|
### Problem 4: Context Pollution
|
||||||
|
|
||||||
|
**Symptoms**: Main conversation gets cluttered with subagent details
|
||||||
|
|
||||||
|
**Understand**: Subagents have isolated context windows - only their final output returns
|
||||||
|
|
||||||
|
**Fix - Structure Output Properly**:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# System prompt guidance
|
||||||
|
---
|
||||||
|
name: research-agent
|
||||||
|
---
|
||||||
|
|
||||||
|
Research [topic] and return ONLY:
|
||||||
|
1. Key findings (3-5 bullet points)
|
||||||
|
2. Relevant URLs
|
||||||
|
3. Recommendation
|
||||||
|
|
||||||
|
Do NOT include:
|
||||||
|
- Full article text
|
||||||
|
- Research methodology
|
||||||
|
- Intermediate thoughts
|
||||||
|
```
|
||||||
|
|
||||||
|
**Best Practices**:
|
||||||
|
- Explicitly tell subagent what to return
|
||||||
|
- Request summaries, not full details
|
||||||
|
- Have subagent filter before returning
|
||||||
|
- Use structured output formats
|
||||||
|
|
||||||
|
### Problem 5: Activation Too Broad/Narrow
|
||||||
|
|
||||||
|
**Symptoms**: Subagent activates for wrong tasks OR misses relevant tasks
|
||||||
|
|
||||||
|
**Diagnose - Test Trigger Scenarios**:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Test cases for a "security-analyzer" subagent
|
||||||
|
|
||||||
|
Should Activate:
|
||||||
|
- "Review this auth code for vulnerabilities"
|
||||||
|
- "Check if we're handling passwords securely"
|
||||||
|
- "Scan for SQL injection risks"
|
||||||
|
|
||||||
|
Should NOT Activate:
|
||||||
|
- "Write unit tests" (different concern)
|
||||||
|
- "Refactor this function" (not security-focused)
|
||||||
|
- "Add logging" (different task)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Fix - Refine Description**:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Too narrow
|
||||||
|
---
|
||||||
|
description: Checks for SQL injection only
|
||||||
|
---
|
||||||
|
|
||||||
|
# Too broad
|
||||||
|
---
|
||||||
|
description: Helps with code
|
||||||
|
---
|
||||||
|
|
||||||
|
# Just right
|
||||||
|
---
|
||||||
|
description: Analyze code for security vulnerabilities including SQL injection, XSS, CSRF, authentication issues, and secrets exposure. Use when reviewing code for security concerns or compliance requirements.
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
### Problem 6: Model Selection Issues
|
||||||
|
|
||||||
|
**Symptoms**: Subagent too slow/expensive OR too simple for task
|
||||||
|
|
||||||
|
**Fix - Choose Right Model**:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Fast, simple tasks (formatting, linting)
|
||||||
|
---
|
||||||
|
model: haiku
|
||||||
|
---
|
||||||
|
|
||||||
|
# Complex reasoning (architecture, design)
|
||||||
|
---
|
||||||
|
model: opus
|
||||||
|
---
|
||||||
|
|
||||||
|
# Balanced (most cases)
|
||||||
|
---
|
||||||
|
model: sonnet
|
||||||
|
---
|
||||||
|
|
||||||
|
# Same as main conversation
|
||||||
|
---
|
||||||
|
model: inherit
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
**Model Selection Guide**:
|
||||||
|
|
||||||
|
| Model | Use For | Avoid For |
|
||||||
|
|-------|---------|-----------|
|
||||||
|
| haiku | Simple transforms, quick checks | Complex reasoning, creativity |
|
||||||
|
| sonnet | General tasks, balanced quality | When opus is specifically needed |
|
||||||
|
| opus | Complex architecture, creative work | Simple/repetitive tasks (cost) |
|
||||||
|
| inherit | Task complexity matches main thread | When you need different capability |
|
||||||
|
|
||||||
|
## Optimization Patterns
|
||||||
|
|
||||||
|
### Pattern 1: Role-Based Pipeline
|
||||||
|
|
||||||
|
Create specialized agents for each workflow stage:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# 1. Spec Agent
|
||||||
|
---
|
||||||
|
name: product-spec-writer
|
||||||
|
description: Create detailed product specifications from user requirements
|
||||||
|
tools: Read, Write, WebSearch
|
||||||
|
model: opus
|
||||||
|
---
|
||||||
|
|
||||||
|
You convert user requirements into detailed product specs.
|
||||||
|
|
||||||
|
[Detailed prompt...]
|
||||||
|
```
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# 2. Architect Agent
|
||||||
|
---
|
||||||
|
name: solution-architect
|
||||||
|
description: Design system architecture from product specs
|
||||||
|
tools: Read, Write, Grep, Glob
|
||||||
|
model: opus
|
||||||
|
---
|
||||||
|
|
||||||
|
You design scalable system architectures.
|
||||||
|
|
||||||
|
[Detailed prompt...]
|
||||||
|
```
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# 3. Implementer Agent
|
||||||
|
---
|
||||||
|
name: code-implementer
|
||||||
|
description: Implement features from architectural designs
|
||||||
|
tools: Read, Write, Edit, Bash(npm test:*)
|
||||||
|
model: sonnet
|
||||||
|
---
|
||||||
|
|
||||||
|
You implement features following architectural guidelines.
|
||||||
|
|
||||||
|
[Detailed prompt...]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Usage**: Chain with hooks or explicit handoffs
|
||||||
|
|
||||||
|
### Pattern 2: Domain Specialists
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Frontend Specialist
|
||||||
|
---
|
||||||
|
name: frontend-specialist
|
||||||
|
description: React/TypeScript UI development and component design. Use PROACTIVELY for frontend work.
|
||||||
|
tools: Read, Write, Edit, Grep, Bash(npm:*)
|
||||||
|
---
|
||||||
|
|
||||||
|
You are a React/TypeScript expert specializing in modern frontend development.
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
- React 18+ with hooks
|
||||||
|
- TypeScript (strict mode)
|
||||||
|
- Tailwind CSS
|
||||||
|
- Component-driven architecture
|
||||||
|
|
||||||
|
## Principles
|
||||||
|
- Functional components only
|
||||||
|
- Custom hooks for logic reuse
|
||||||
|
- Accessibility (WCAG AA)
|
||||||
|
- Performance (lazy loading, memoization)
|
||||||
|
|
||||||
|
[More specific guidance...]
|
||||||
|
```
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Backend Specialist
|
||||||
|
---
|
||||||
|
name: backend-specialist
|
||||||
|
description: Node.js/Express API development, database design, and server architecture. Use PROACTIVELY for backend work.
|
||||||
|
tools: Read, Write, Edit, Grep, Bash(npm:*), Bash(docker:*)
|
||||||
|
---
|
||||||
|
|
||||||
|
You are a Node.js backend expert.
|
||||||
|
|
||||||
|
[Similar detailed structure...]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Pattern 3: Security-First Architecture
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Security Analyzer (Read-Only)
|
||||||
|
---
|
||||||
|
name: security-analyzer
|
||||||
|
description: Analyze code for security vulnerabilities before allowing modifications. MUST BE USED before code changes in sensitive areas.
|
||||||
|
tools: Read, Grep, Glob, Bash(git diff:*)
|
||||||
|
---
|
||||||
|
|
||||||
|
You are a security analyst. Review code for vulnerabilities BEFORE changes are made.
|
||||||
|
|
||||||
|
## Security Checks
|
||||||
|
1. Authentication/Authorization
|
||||||
|
2. Input validation
|
||||||
|
3. SQL injection
|
||||||
|
4. XSS vulnerabilities
|
||||||
|
5. CSRF protection
|
||||||
|
6. Secrets management
|
||||||
|
|
||||||
|
## Output
|
||||||
|
Return ONLY:
|
||||||
|
- Security score (1-10)
|
||||||
|
- Critical issues (block changes)
|
||||||
|
- Warnings (allow with caution)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Pattern 4: Test-Driven Subagent
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: test-first-developer
|
||||||
|
description: Write comprehensive tests before implementing features. Use PROACTIVELY for TDD workflows.
|
||||||
|
tools: Read, Write, Bash(npm test:*)
|
||||||
|
model: sonnet
|
||||||
|
---
|
||||||
|
|
||||||
|
You are a TDD expert. For every feature request:
|
||||||
|
|
||||||
|
1. **Analyze Requirements**
|
||||||
|
- Extract testable behaviors
|
||||||
|
- Identify edge cases
|
||||||
|
|
||||||
|
2. **Write Tests FIRST**
|
||||||
|
- Unit tests for logic
|
||||||
|
- Integration tests for workflows
|
||||||
|
- Edge case coverage
|
||||||
|
|
||||||
|
3. **Run Tests** (they should fail)
|
||||||
|
```bash
|
||||||
|
npm test
|
||||||
|
```
|
||||||
|
|
||||||
|
4. **Implement ONLY Enough** to pass tests
|
||||||
|
|
||||||
|
5. **Refactor** while keeping tests green
|
||||||
|
|
||||||
|
## Test Structure
|
||||||
|
```javascript
|
||||||
|
describe('Feature', () => {
|
||||||
|
it('handles happy path', () => {})
|
||||||
|
it('handles edge case 1', () => {})
|
||||||
|
it('throws on invalid input', () => {})
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
Never implement before tests exist.
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing & Validation
|
||||||
|
|
||||||
|
### 1. Test Trigger Accuracy
|
||||||
|
|
||||||
|
Create test scenarios:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Test Plan for "api-developer" subagent
|
||||||
|
|
||||||
|
## Positive Tests (Should Activate)
|
||||||
|
1. "Create a REST endpoint for user authentication"
|
||||||
|
- Expected: Activates
|
||||||
|
- Actual: ___
|
||||||
|
|
||||||
|
2. "Add GraphQL mutation for updating profile"
|
||||||
|
- Expected: Activates
|
||||||
|
- Actual: ___
|
||||||
|
|
||||||
|
## Negative Tests (Should NOT Activate)
|
||||||
|
1. "Write unit tests for the API"
|
||||||
|
- Expected: Does not activate (testing concern)
|
||||||
|
- Actual: ___
|
||||||
|
|
||||||
|
2. "Review API security"
|
||||||
|
- Expected: Does not activate (security concern)
|
||||||
|
- Actual: ___
|
||||||
|
|
||||||
|
## Results
|
||||||
|
- Precision: X% (correct activations / total activations)
|
||||||
|
- Recall: Y% (correct activations / should activate)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Test Output Quality
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Quality Checklist
|
||||||
|
|
||||||
|
Task: "Review auth.js for security issues"
|
||||||
|
|
||||||
|
Subagent Output Should Include:
|
||||||
|
- [ ] Specific vulnerabilities identified
|
||||||
|
- [ ] File:line locations
|
||||||
|
- [ ] Severity ratings
|
||||||
|
- [ ] Concrete fix suggestions
|
||||||
|
- [ ] Code examples for fixes
|
||||||
|
|
||||||
|
Should NOT Include:
|
||||||
|
- [ ] Generic advice
|
||||||
|
- [ ] Full file listings
|
||||||
|
- [ ] Unrelated issues
|
||||||
|
- [ ] Style nitpicks
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Test Tool Access
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Verify tool restrictions work
|
||||||
|
# Give subagent a task requiring forbidden tool
|
||||||
|
|
||||||
|
# Example: Read-only subagent shouldn't be able to edit
|
||||||
|
# Test by asking it to "fix the security issue"
|
||||||
|
# Should fail or request permission
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Performance Testing
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Performance Metrics
|
||||||
|
|
||||||
|
Task: "Generate API documentation"
|
||||||
|
|
||||||
|
Metrics:
|
||||||
|
- Time to complete: ___
|
||||||
|
- Tokens used: ___
|
||||||
|
- Quality score (1-10): ___
|
||||||
|
- Required follow-ups: ___
|
||||||
|
|
||||||
|
Optimization targets:
|
||||||
|
- < 30 seconds for docs
|
||||||
|
- < 5000 tokens
|
||||||
|
- Quality >= 8
|
||||||
|
- 0 follow-ups needed
|
||||||
|
```
|
||||||
|
|
||||||
|
## Refinement Workflow
|
||||||
|
|
||||||
|
### Step 1: Baseline Performance
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Document current behavior
|
||||||
|
echo "Task: [Specific task]
|
||||||
|
Expected: [What should happen]
|
||||||
|
Actual: [What actually happens]
|
||||||
|
Issues: [Problems observed]
|
||||||
|
" > .claude/agents/refinement-notes.md
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 2: Identify Root Cause
|
||||||
|
|
||||||
|
Common causes:
|
||||||
|
- Description too vague → Won't activate
|
||||||
|
- Prompt lacks specificity → Poor output
|
||||||
|
- Wrong tools → Can't complete task
|
||||||
|
- Wrong model → Too slow/simple
|
||||||
|
- Output not filtered → Context pollution
|
||||||
|
|
||||||
|
### Step 3: Make Targeted Changes
|
||||||
|
|
||||||
|
**Only change ONE thing at a time**:
|
||||||
|
1. Update description OR
|
||||||
|
2. Refine prompt OR
|
||||||
|
3. Adjust tools OR
|
||||||
|
4. Change model
|
||||||
|
|
||||||
|
### Step 4: Test Changes
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Test with same scenarios
|
||||||
|
# Compare before/after results
|
||||||
|
# Document improvements
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 5: Iterate
|
||||||
|
|
||||||
|
Repeat until subagent meets quality bar.
|
||||||
|
|
||||||
|
## Best Practices Summary
|
||||||
|
|
||||||
|
### Description Writing
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Template
|
||||||
|
description: [Action verb] [domain/task] [including specific capabilities]. Use [trigger condition]. PROACTIVELY when [scenario].
|
||||||
|
```
|
||||||
|
|
||||||
|
**Examples**:
|
||||||
|
```yaml
|
||||||
|
description: Analyze Python code for performance bottlenecks including O(n²) algorithms, memory leaks, and inefficient database queries. Use PROACTIVELY when optimizing Python applications.
|
||||||
|
|
||||||
|
description: Generate comprehensive API documentation from code including endpoints, parameters, responses, and examples. Use when documenting REST or GraphQL APIs.
|
||||||
|
|
||||||
|
description: Review frontend code for accessibility issues following WCAG 2.1 AA standards. MUST BE USED for all UI component changes.
|
||||||
|
```
|
||||||
|
|
||||||
|
### System Prompt Structure
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Role Definition
|
||||||
|
You are a [role] specializing in [domain].
|
||||||
|
|
||||||
|
## Responsibilities
|
||||||
|
1. [Primary responsibility]
|
||||||
|
2. [Secondary responsibility]
|
||||||
|
3. [Additional responsibilities]
|
||||||
|
|
||||||
|
## Process
|
||||||
|
1. [Step 1]
|
||||||
|
2. [Step 2]
|
||||||
|
3. [Step 3]
|
||||||
|
|
||||||
|
## Output Format
|
||||||
|
[Specific structure required]
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Good Example
|
||||||
|
[Show what good looks like]
|
||||||
|
|
||||||
|
### Bad Example
|
||||||
|
[Show what to avoid]
|
||||||
|
|
||||||
|
## Constraints
|
||||||
|
- [Important limitation]
|
||||||
|
- [Another constraint]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Tool Selection Strategy
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
Decision Tree:
|
||||||
|
|
||||||
|
1. Does it need to modify files?
|
||||||
|
No → Read, Grep, Glob only
|
||||||
|
Yes → Continue
|
||||||
|
|
||||||
|
2. Does it need to run tests/builds?
|
||||||
|
No → Read, Write, Edit only
|
||||||
|
Yes → Add Bash(test:*), Bash(build:*)
|
||||||
|
|
||||||
|
3. Does it need external data?
|
||||||
|
Yes → Add WebFetch, WebSearch
|
||||||
|
No → Continue
|
||||||
|
|
||||||
|
4. Does it need git operations?
|
||||||
|
Yes → Add Bash(git:*) with specific commands
|
||||||
|
No → Done
|
||||||
|
```
|
||||||
|
|
||||||
|
### Model Selection
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
Choose model based on:
|
||||||
|
|
||||||
|
1. Task complexity
|
||||||
|
- Simple transforms → haiku
|
||||||
|
- Standard coding → sonnet
|
||||||
|
- Complex reasoning → opus
|
||||||
|
|
||||||
|
2. Cost sensitivity
|
||||||
|
- High volume, simple → haiku
|
||||||
|
- Balanced → sonnet
|
||||||
|
- Quality critical → opus
|
||||||
|
|
||||||
|
3. Speed requirements
|
||||||
|
- Real-time needed → haiku
|
||||||
|
- Standard → sonnet
|
||||||
|
- Can wait → opus
|
||||||
|
|
||||||
|
Default: sonnet (best balance)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Debugging Checklist
|
||||||
|
|
||||||
|
When subagent doesn't work as expected:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
- [ ] Description is specific and includes trigger words
|
||||||
|
- [ ] Description includes "PROACTIVELY" or "MUST BE USED" if needed
|
||||||
|
- [ ] System prompt defines role clearly
|
||||||
|
- [ ] System prompt includes process/steps
|
||||||
|
- [ ] System prompt specifies output format
|
||||||
|
- [ ] System prompt has examples
|
||||||
|
- [ ] Tools match required capabilities
|
||||||
|
- [ ] Tools follow least-privilege principle
|
||||||
|
- [ ] Model appropriate for task complexity
|
||||||
|
- [ ] File location correct (.claude/agents/)
|
||||||
|
- [ ] YAML frontmatter valid
|
||||||
|
- [ ] Name uses kebab-case
|
||||||
|
- [ ] Tested with positive/negative scenarios
|
||||||
|
```
|
||||||
|
|
||||||
|
## Common Anti-Patterns
|
||||||
|
|
||||||
|
### ❌ Anti-Pattern 1: Generic Description
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
description: Helps with coding
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
**Why Bad**: Won't trigger reliably
|
||||||
|
|
||||||
|
**Fix**: Be specific about domain and triggers
|
||||||
|
|
||||||
|
### ❌ Anti-Pattern 2: No Process Defined
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
You are a code reviewer. Review code.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Why Bad**: Inconsistent results
|
||||||
|
|
||||||
|
**Fix**: Define step-by-step process
|
||||||
|
|
||||||
|
### ❌ Anti-Pattern 3: All Tools Granted
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
# Omitting tools when only reads needed
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
**Why Bad**: Unnecessary permissions, security risk
|
||||||
|
|
||||||
|
**Fix**: Whitelist minimum required tools
|
||||||
|
|
||||||
|
### ❌ Anti-Pattern 4: Verbose System Prompt
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
You are an expert developer with 20 years of experience who has worked on numerous projects across different industries... [3000 words]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Why Bad**: Token waste, slower activation
|
||||||
|
|
||||||
|
**Fix**: Be concise, focus on process and format
|
||||||
|
|
||||||
|
### ❌ Anti-Pattern 5: No Output Structure
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
Review the code and tell me about issues.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Why Bad**: Inconsistent format, hard to parse
|
||||||
|
|
||||||
|
**Fix**: Define exact output format
|
||||||
|
|
||||||
|
## Advanced Techniques
|
||||||
|
|
||||||
|
### Technique 1: Chained Subagents
|
||||||
|
|
||||||
|
Use hooks or explicit handoffs:
|
||||||
|
|
||||||
|
```json
|
||||||
|
// .claude/settings.json
|
||||||
|
{
|
||||||
|
"hooks": {
|
||||||
|
"PostToolUse": [
|
||||||
|
{
|
||||||
|
"matcher": "Write",
|
||||||
|
"hooks": [
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"command": "echo 'Please use security-analyzer subagent to review this file' && exit 0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Technique 2: Context Injection
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: context-aware-developer
|
||||||
|
---
|
||||||
|
|
||||||
|
Before starting any task:
|
||||||
|
1. Read PROJECT_CONTEXT.md
|
||||||
|
2. Review ARCHITECTURE.md
|
||||||
|
3. Check CODING_STANDARDS.md
|
||||||
|
|
||||||
|
Then proceed with development following documented patterns.
|
||||||
|
```
|
||||||
|
|
||||||
|
### Technique 3: Quality Gates
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: pr-ready-checker
|
||||||
|
description: Verify code is PR-ready before submitting. MUST BE USED before creating pull requests.
|
||||||
|
tools: Read, Grep, Bash(npm test:*), Bash(npm run lint:*)
|
||||||
|
---
|
||||||
|
|
||||||
|
Verify PR readiness:
|
||||||
|
|
||||||
|
1. **Tests Pass**
|
||||||
|
```bash
|
||||||
|
npm test
|
||||||
|
```
|
||||||
|
All tests must pass.
|
||||||
|
|
||||||
|
2. **Linting Clean**
|
||||||
|
```bash
|
||||||
|
npm run lint
|
||||||
|
```
|
||||||
|
Zero warnings or errors.
|
||||||
|
|
||||||
|
3. **Coverage Adequate**
|
||||||
|
- New code > 80% covered
|
||||||
|
- Overall coverage not decreased
|
||||||
|
|
||||||
|
4. **Documentation Updated**
|
||||||
|
- README if public API changed
|
||||||
|
- Inline comments for complex logic
|
||||||
|
|
||||||
|
5. **No Debug Code**
|
||||||
|
- No console.log
|
||||||
|
- No debugger statements
|
||||||
|
- No commented code
|
||||||
|
|
||||||
|
Return: "PR Ready: Yes/No" + blockers list
|
||||||
|
```
|
||||||
|
|
||||||
|
### Technique 4: Iterative Refinement Prompt
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: iterative-implementer
|
||||||
|
---
|
||||||
|
|
||||||
|
When implementation fails or produces errors:
|
||||||
|
|
||||||
|
1. **Analyze Failure**
|
||||||
|
- What was the error?
|
||||||
|
- Why did it happen?
|
||||||
|
- What was I trying to achieve?
|
||||||
|
|
||||||
|
2. **Adjust Approach**
|
||||||
|
- How should I do it differently?
|
||||||
|
- What did I learn?
|
||||||
|
|
||||||
|
3. **Re-implement**
|
||||||
|
- Apply new approach
|
||||||
|
- Test immediately
|
||||||
|
|
||||||
|
4. **Verify**
|
||||||
|
- Did it work?
|
||||||
|
- If not, repeat from step 1
|
||||||
|
|
||||||
|
Never give up after one failure. Iterate until success.
|
||||||
|
```
|
||||||
|
|
||||||
|
## Migration: Ad-Hoc to Subagent
|
||||||
|
|
||||||
|
### When to Migrate
|
||||||
|
|
||||||
|
Migrate repetitive prompts to subagents when:
|
||||||
|
- You've used the same prompt 3+ times
|
||||||
|
- Prompt has clear pattern/structure
|
||||||
|
- Task benefits from isolation
|
||||||
|
- Multiple team members need it
|
||||||
|
|
||||||
|
### Migration Process
|
||||||
|
|
||||||
|
**Step 1: Extract Pattern**
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Repeated prompts you've used:
|
||||||
|
|
||||||
|
1. "Review auth.js for security issues including SQL injection, XSS, and auth flaws"
|
||||||
|
2. "Check payment.js for security vulnerabilities like injection and secrets"
|
||||||
|
3. "Analyze api.js for security problems including validation and auth"
|
||||||
|
|
||||||
|
# Common pattern:
|
||||||
|
Review [file] for security [vulnerability types]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Step 2: Generalize**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: security-reviewer
|
||||||
|
description: Review code for security vulnerabilities including SQL injection, XSS, authentication flaws, and hardcoded secrets. Use PROACTIVELY for security reviews.
|
||||||
|
tools: Read, Grep, Glob
|
||||||
|
---
|
||||||
|
|
||||||
|
Review provided files for security vulnerabilities:
|
||||||
|
|
||||||
|
[Extract common structure from your prompts]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Step 3: Test & Refine**
|
||||||
|
|
||||||
|
Test with previous use cases, refine until quality matches or exceeds manual prompts.
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
|
||||||
|
- [Official Subagents Documentation](https://docs.claude.com/en/docs/claude-code/sub-agents)
|
||||||
|
- [Claude Code Plugins](../claude-code-plugins/SKILL.md) - For packaging subagents
|
||||||
|
- [Slash Commands](../claude-code-slash-commands/SKILL.md) - Alternative for simpler patterns
|
||||||
|
- [Hooks](../claude-code-hooks/SKILL.md) - For automating subagent workflows
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Remember**: Start with `/agents` command for creation. Use this skill for refinement. Iterate based on real usage. Test thoroughly. Document learnings.
|
||||||
15
claude-skills-plugin/.claude-plugin/plugin.json
Normal file
15
claude-skills-plugin/.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"name": "claude-skills",
|
||||||
|
"description": "Meta-skill for creating effective Agent Skills with best practices, templates, and progressive disclosure principles",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": {
|
||||||
|
"name": "Claude Skills Contributors"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"agent-skills",
|
||||||
|
"skill-creation",
|
||||||
|
"best-practices",
|
||||||
|
"templates",
|
||||||
|
"progressive-disclosure"
|
||||||
|
]
|
||||||
|
}
|
||||||
250
claude-skills-plugin/README.md
Normal file
250
claude-skills-plugin/README.md
Normal file
@@ -0,0 +1,250 @@
|
|||||||
|
# Claude Skills Plugin
|
||||||
|
|
||||||
|
Meta-skill for creating effective Agent Skills with best practices, structure guidelines, and progressive disclosure principles.
|
||||||
|
|
||||||
|
## What's Included
|
||||||
|
|
||||||
|
The **claude-skills** skill provides comprehensive guidance for building high-quality Agent Skills that work efficiently with Claude Code and Claude.ai.
|
||||||
|
|
||||||
|
### claude-skills (Skill Creator)
|
||||||
|
|
||||||
|
A comprehensive guide covering:
|
||||||
|
- **Progressive disclosure** - Three-layer architecture (metadata → instructions → resources)
|
||||||
|
- **Trigger optimization** - Writing descriptions that activate at the right time
|
||||||
|
- **Token efficiency** - Strategic file splitting and on-demand loading
|
||||||
|
- **Development workflow** - Iterative approach to skill creation
|
||||||
|
- **Security considerations** - Best practices for safe skill creation and usage
|
||||||
|
|
||||||
|
**Includes:**
|
||||||
|
- `SKILL.md` - Complete best practices guide
|
||||||
|
- `examples.md` - Working examples across different domains
|
||||||
|
- `templates.md` - Ready-to-use templates for common skill types
|
||||||
|
- `checklist.md` - Quality assurance checklist
|
||||||
|
- `README.md` - Skill-specific overview
|
||||||
|
|
||||||
|
## When to Use This Skill
|
||||||
|
|
||||||
|
Use this skill when:
|
||||||
|
- Creating a new Agent Skill from scratch
|
||||||
|
- Improving or refactoring an existing skill
|
||||||
|
- Debugging why a skill isn't triggering correctly
|
||||||
|
- Understanding skill architecture and design patterns
|
||||||
|
- Optimizing skill structure for token efficiency
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### For Claude Code
|
||||||
|
|
||||||
|
Install from marketplace:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
/plugin install claude-skills@claude-skills-marketplace
|
||||||
|
```
|
||||||
|
|
||||||
|
Or install from local directory:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
/plugin install /path/to/Skills/claude-skills-plugin@local
|
||||||
|
```
|
||||||
|
|
||||||
|
### For Claude.ai
|
||||||
|
|
||||||
|
1. Zip this plugin directory
|
||||||
|
2. Go to Settings > Capabilities > Upload skill
|
||||||
|
3. Upload the zip file
|
||||||
|
4. Enable the plugin
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Once installed, the skill activates automatically when you work on skill-related tasks:
|
||||||
|
|
||||||
|
```
|
||||||
|
"Help me create a skill for Python testing"
|
||||||
|
"Why isn't my skill triggering?"
|
||||||
|
"How do I optimize my skill for token usage?"
|
||||||
|
"Review my skill structure"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Key Concepts
|
||||||
|
|
||||||
|
### Progressive Disclosure
|
||||||
|
|
||||||
|
Skills use a three-layer architecture:
|
||||||
|
|
||||||
|
**Layer 1: Metadata (Always Loaded)**
|
||||||
|
- YAML frontmatter with `name` and `description`
|
||||||
|
- ~100 tokens per skill
|
||||||
|
- Used for trigger detection
|
||||||
|
|
||||||
|
**Layer 2: Instructions (Triggered)**
|
||||||
|
- Main SKILL.md content
|
||||||
|
- Procedural guidance and workflows
|
||||||
|
- Loaded when skill is relevant
|
||||||
|
|
||||||
|
**Layer 3: Resources (On-Demand)**
|
||||||
|
- Additional files, scripts, reference materials
|
||||||
|
- Loaded only when explicitly needed
|
||||||
|
- Maximizes token efficiency
|
||||||
|
|
||||||
|
### Writing Effective Descriptions
|
||||||
|
|
||||||
|
The description field determines when your skill triggers:
|
||||||
|
|
||||||
|
**Good Descriptions:**
|
||||||
|
```yaml
|
||||||
|
description: Create and analyze Excel spreadsheets with formulas, formatting, and pivot tables. Use when working with .xlsx files, data analysis, or generating reports.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Poor Descriptions:**
|
||||||
|
```yaml
|
||||||
|
description: Helps with coding tasks
|
||||||
|
```
|
||||||
|
|
||||||
|
### Skill Structure
|
||||||
|
|
||||||
|
Every skill MUST have:
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: Your Skill Name (max 64 chars)
|
||||||
|
description: Clear description with use cases (max 1024 chars)
|
||||||
|
---
|
||||||
|
|
||||||
|
# Skill content
|
||||||
|
```
|
||||||
|
|
||||||
|
## What You'll Learn
|
||||||
|
|
||||||
|
### From SKILL.md
|
||||||
|
- When to use progressive disclosure
|
||||||
|
- How to write effective descriptions
|
||||||
|
- Structuring content for scannability
|
||||||
|
- Token optimization techniques
|
||||||
|
- Development workflow best practices
|
||||||
|
- Security considerations
|
||||||
|
|
||||||
|
### From examples.md
|
||||||
|
- Python testing with pytest
|
||||||
|
- REST API integration patterns
|
||||||
|
- Technical documentation writing
|
||||||
|
- Real-world skill structures
|
||||||
|
|
||||||
|
### From templates.md
|
||||||
|
- Code framework skill template
|
||||||
|
- Workflow/process skill template
|
||||||
|
- Reference/lookup skill template
|
||||||
|
- Tool/utility skill template
|
||||||
|
|
||||||
|
### From checklist.md
|
||||||
|
- Metadata requirements
|
||||||
|
- Content quality checks
|
||||||
|
- Trigger testing scenarios
|
||||||
|
- Security review items
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
### Creating Your First Skill
|
||||||
|
|
||||||
|
1. Ask Claude: "Help me create a skill for [your topic]"
|
||||||
|
2. Claude will guide you through:
|
||||||
|
- Choosing the right template
|
||||||
|
- Writing an effective description
|
||||||
|
- Structuring content efficiently
|
||||||
|
- Adding concrete examples
|
||||||
|
|
||||||
|
### Improving an Existing Skill
|
||||||
|
|
||||||
|
1. Ask Claude: "Review my skill at [path]"
|
||||||
|
2. Claude will analyze:
|
||||||
|
- Trigger accuracy
|
||||||
|
- Structure optimization
|
||||||
|
- Content clarity
|
||||||
|
- Best practices alignment
|
||||||
|
|
||||||
|
## Best Practices Summary
|
||||||
|
|
||||||
|
**DO:**
|
||||||
|
- Keep SKILL.md focused and concise
|
||||||
|
- Use clear, scannable hierarchies
|
||||||
|
- Include concrete, working examples
|
||||||
|
- Reference additional files explicitly
|
||||||
|
- Start simple, expand based on need
|
||||||
|
|
||||||
|
**DON'T:**
|
||||||
|
- Create vague descriptions
|
||||||
|
- Add unnecessary complexity upfront
|
||||||
|
- Hardcode sensitive data
|
||||||
|
- Skip testing trigger scenarios
|
||||||
|
|
||||||
|
## Development Workflow
|
||||||
|
|
||||||
|
1. **Start with Evaluation** - Work with Claude on tasks, identify patterns
|
||||||
|
2. **Iterate Collaboratively** - Let Claude help structure the skill
|
||||||
|
3. **Test Triggering** - Verify activation with target scenarios
|
||||||
|
4. **Start Simple** - Begin minimal, expand based on actual needs
|
||||||
|
|
||||||
|
## Skills Checklist
|
||||||
|
|
||||||
|
Before finalizing a skill:
|
||||||
|
|
||||||
|
- [ ] Name ≤ 64 characters
|
||||||
|
- [ ] Description ≤ 1024 characters and specific
|
||||||
|
- [ ] Description includes trigger scenarios
|
||||||
|
- [ ] SKILL.md has valid YAML frontmatter
|
||||||
|
- [ ] "When to Use This Skill" section present
|
||||||
|
- [ ] At least one concrete example included
|
||||||
|
- [ ] No sensitive information hardcoded
|
||||||
|
- [ ] File references are accurate
|
||||||
|
- [ ] Tested triggering with target scenarios
|
||||||
|
- [ ] Tested NOT triggering with unrelated scenarios
|
||||||
|
|
||||||
|
## Common Patterns
|
||||||
|
|
||||||
|
### Code Development Skills
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: [Framework] Development Guide
|
||||||
|
description: Build [framework] applications following [patterns]. Use when building [type] with [requirements].
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
### Workflow Skills
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: [Task] Workflow
|
||||||
|
description: Execute [task] following [methodology]. Use when [scenario].
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
### Reference Skills
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: [Topic] Reference
|
||||||
|
description: Quick reference for [domain]. Use when looking up [specific aspects].
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
|
||||||
|
- [Official Documentation](https://docs.claude.com/en/docs/agents-and-tools/agent-skills/overview)
|
||||||
|
- [Engineering Blog](https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills)
|
||||||
|
- [Using Skills Guide](https://support.claude.com/en/articles/12512180-using-skills-in-claude)
|
||||||
|
|
||||||
|
## Version History
|
||||||
|
|
||||||
|
### 1.0.0 (Initial Release)
|
||||||
|
- Complete best practices guide (SKILL.md)
|
||||||
|
- Working examples across domains (examples.md)
|
||||||
|
- Ready-to-use templates (templates.md)
|
||||||
|
- Quality assurance checklist (checklist.md)
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Found an issue or have improvements? See the main marketplace [CONTRIBUTING.md](../CONTRIBUTING.md).
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
See main marketplace repository for license information.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Remember**: The best skills emerge from real usage patterns. Start simple, iterate based on actual needs, and prioritize clarity over comprehensiveness.
|
||||||
Reference in New Issue
Block a user