mirror of
https://github.com/anthropics/claude-code.git
synced 2025-11-28 16:50:27 +08:00
Adds the plugin-dev plugin to public marketplace. A comprehensive toolkit for
developing Claude Code plugins with 7 expert skills, 3 AI-assisted agents, and
extensive documentation covering the complete plugin development lifecycle.
Key features:
- 7 skills: hook-development, mcp-integration, plugin-structure, plugin-settings,
command-development, agent-development, skill-development
- 3 agents: agent-creator (AI-assisted generation), plugin-validator (structure
validation), skill-reviewer (quality review)
- 1 command: /plugin-dev:create-plugin (guided 8-phase workflow)
- 10 utility scripts for validation and testing
- 21 reference docs with deep-dive guidance (~11k words)
- 9 working examples demonstrating best practices
Changes for public release:
- Replaced all references to internal repositories with "Claude Code"
- Updated MCP examples: internal.company.com → api.example.com
- Updated token variables: ${INTERNAL_TOKEN} → ${API_TOKEN}
- Reframed agent-creation-system-prompt as "proven in production"
- Preserved all ${CLAUDE_PLUGIN_ROOT} references (186 total)
- Preserved valuable test blocks in core modules
Validation:
- All 3 agents validated successfully with validate-agent.sh
- All JSON files validated with jq
- Zero internal references remaining
- 59 files migrated, 21,971 lines added
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
272 lines
7.5 KiB
Markdown
272 lines
7.5 KiB
Markdown
# Command Development Skill
|
|
|
|
Comprehensive guidance on creating Claude Code slash commands, including file format, frontmatter options, dynamic arguments, and best practices.
|
|
|
|
## Overview
|
|
|
|
This skill provides knowledge about:
|
|
- Slash command file format and structure
|
|
- YAML frontmatter configuration fields
|
|
- Dynamic arguments ($ARGUMENTS, $1, $2, etc.)
|
|
- File references with @ syntax
|
|
- Bash execution with !` syntax
|
|
- Command organization and namespacing
|
|
- Best practices for command development
|
|
- Plugin-specific features (${CLAUDE_PLUGIN_ROOT}, plugin patterns)
|
|
- Integration with plugin components (agents, skills, hooks)
|
|
- Validation patterns and error handling
|
|
|
|
## Skill Structure
|
|
|
|
### SKILL.md (~2,470 words)
|
|
|
|
Core skill content covering:
|
|
|
|
**Fundamentals:**
|
|
- Command basics and locations
|
|
- File format (Markdown with optional frontmatter)
|
|
- YAML frontmatter fields overview
|
|
- Dynamic arguments ($ARGUMENTS and positional)
|
|
- File references (@ syntax)
|
|
- Bash execution (!` syntax)
|
|
- Command organization patterns
|
|
- Best practices and common patterns
|
|
- Troubleshooting
|
|
|
|
**Plugin-Specific:**
|
|
- ${CLAUDE_PLUGIN_ROOT} environment variable
|
|
- Plugin command discovery and organization
|
|
- Plugin command patterns (configuration, template, multi-script)
|
|
- Integration with plugin components (agents, skills, hooks)
|
|
- Validation patterns (argument, file, resource, error handling)
|
|
|
|
### References
|
|
|
|
Detailed documentation:
|
|
|
|
- **frontmatter-reference.md**: Complete YAML frontmatter field specifications
|
|
- All field descriptions with types and defaults
|
|
- When to use each field
|
|
- Examples and best practices
|
|
- Validation and common errors
|
|
|
|
- **plugin-features-reference.md**: Plugin-specific command features
|
|
- Plugin command discovery and organization
|
|
- ${CLAUDE_PLUGIN_ROOT} environment variable usage
|
|
- Plugin command patterns (configuration, template, multi-script)
|
|
- Integration with plugin agents, skills, and hooks
|
|
- Validation patterns and error handling
|
|
|
|
### Examples
|
|
|
|
Practical command examples:
|
|
|
|
- **simple-commands.md**: 10 complete command examples
|
|
- Code review commands
|
|
- Testing commands
|
|
- Deployment commands
|
|
- Documentation generators
|
|
- Git integration commands
|
|
- Analysis and research commands
|
|
|
|
- **plugin-commands.md**: 10 plugin-specific command examples
|
|
- Simple plugin commands with scripts
|
|
- Multi-script workflows
|
|
- Template-based generation
|
|
- Configuration-driven deployment
|
|
- Agent and skill integration
|
|
- Multi-component workflows
|
|
- Validated input commands
|
|
- Environment-aware commands
|
|
|
|
## When This Skill Triggers
|
|
|
|
Claude Code activates this skill when users:
|
|
- Ask to "create a slash command" or "add a command"
|
|
- Need to "write a custom command"
|
|
- Want to "define command arguments"
|
|
- Ask about "command frontmatter" or YAML configuration
|
|
- Need to "organize commands" or use namespacing
|
|
- Want to create commands with file references
|
|
- Ask about "bash execution in commands"
|
|
- Need command development best practices
|
|
|
|
## Progressive Disclosure
|
|
|
|
The skill uses progressive disclosure:
|
|
|
|
1. **SKILL.md** (~2,470 words): Core concepts, common patterns, and plugin features overview
|
|
2. **References** (~13,500 words total): Detailed specifications
|
|
- frontmatter-reference.md (~1,200 words)
|
|
- plugin-features-reference.md (~1,800 words)
|
|
- interactive-commands.md (~2,500 words)
|
|
- advanced-workflows.md (~1,700 words)
|
|
- testing-strategies.md (~2,200 words)
|
|
- documentation-patterns.md (~2,000 words)
|
|
- marketplace-considerations.md (~2,200 words)
|
|
3. **Examples** (~6,000 words total): Complete working command examples
|
|
- simple-commands.md
|
|
- plugin-commands.md
|
|
|
|
Claude loads references and examples as needed based on task.
|
|
|
|
## Command Basics Quick Reference
|
|
|
|
### File Format
|
|
|
|
```markdown
|
|
---
|
|
description: Brief description
|
|
argument-hint: [arg1] [arg2]
|
|
allowed-tools: Read, Bash(git:*)
|
|
---
|
|
|
|
Command prompt content with:
|
|
- Arguments: $1, $2, or $ARGUMENTS
|
|
- Files: @path/to/file
|
|
- Bash: !`command here`
|
|
```
|
|
|
|
### Locations
|
|
|
|
- **Project**: `.claude/commands/` (shared with team)
|
|
- **Personal**: `~/.claude/commands/` (your commands)
|
|
- **Plugin**: `plugin-name/commands/` (plugin-specific)
|
|
|
|
### Key Features
|
|
|
|
**Dynamic arguments:**
|
|
- `$ARGUMENTS` - All arguments as single string
|
|
- `$1`, `$2`, `$3` - Positional arguments
|
|
|
|
**File references:**
|
|
- `@path/to/file` - Include file contents
|
|
|
|
**Bash execution:**
|
|
- `!`command`` - Execute and include output
|
|
|
|
## Frontmatter Fields Quick Reference
|
|
|
|
| Field | Purpose | Example |
|
|
|-------|---------|---------|
|
|
| `description` | Brief description for /help | `"Review code for issues"` |
|
|
| `allowed-tools` | Restrict tool access | `Read, Bash(git:*)` |
|
|
| `model` | Specify model | `sonnet`, `opus`, `haiku` |
|
|
| `argument-hint` | Document arguments | `[pr-number] [priority]` |
|
|
| `disable-model-invocation` | Manual-only command | `true` |
|
|
|
|
## Common Patterns
|
|
|
|
### Simple Review Command
|
|
|
|
```markdown
|
|
---
|
|
description: Review code for issues
|
|
---
|
|
|
|
Review this code for quality and potential bugs.
|
|
```
|
|
|
|
### Command with Arguments
|
|
|
|
```markdown
|
|
---
|
|
description: Deploy to environment
|
|
argument-hint: [environment] [version]
|
|
---
|
|
|
|
Deploy to $1 environment using version $2
|
|
```
|
|
|
|
### Command with File Reference
|
|
|
|
```markdown
|
|
---
|
|
description: Document file
|
|
argument-hint: [file-path]
|
|
---
|
|
|
|
Generate documentation for @$1
|
|
```
|
|
|
|
### Command with Bash Execution
|
|
|
|
```markdown
|
|
---
|
|
description: Show Git status
|
|
allowed-tools: Bash(git:*)
|
|
---
|
|
|
|
Current status: !`git status`
|
|
Recent commits: !`git log --oneline -5`
|
|
```
|
|
|
|
## Development Workflow
|
|
|
|
1. **Design command:**
|
|
- Define purpose and scope
|
|
- Determine required arguments
|
|
- Identify needed tools
|
|
|
|
2. **Create file:**
|
|
- Choose appropriate location
|
|
- Create `.md` file with command name
|
|
- Write basic prompt
|
|
|
|
3. **Add frontmatter:**
|
|
- Start minimal (just description)
|
|
- Add fields as needed (allowed-tools, etc.)
|
|
- Document arguments with argument-hint
|
|
|
|
4. **Test command:**
|
|
- Invoke with `/command-name`
|
|
- Verify arguments work
|
|
- Check bash execution
|
|
- Test file references
|
|
|
|
5. **Refine:**
|
|
- Improve prompt clarity
|
|
- Handle edge cases
|
|
- Add examples in comments
|
|
- Document requirements
|
|
|
|
## Best Practices Summary
|
|
|
|
1. **Single responsibility**: One command, one clear purpose
|
|
2. **Clear descriptions**: Make discoverable in `/help`
|
|
3. **Document arguments**: Always use argument-hint
|
|
4. **Minimal tools**: Use most restrictive allowed-tools
|
|
5. **Test thoroughly**: Verify all features work
|
|
6. **Add comments**: Explain complex logic
|
|
7. **Handle errors**: Consider missing arguments/files
|
|
|
|
## Status
|
|
|
|
**Completed enhancements:**
|
|
- ✓ Plugin command patterns (${CLAUDE_PLUGIN_ROOT}, discovery, organization)
|
|
- ✓ Integration patterns (agents, skills, hooks coordination)
|
|
- ✓ Validation patterns (input, file, resource validation, error handling)
|
|
|
|
**Remaining enhancements (in progress):**
|
|
- Advanced workflows (multi-step command sequences)
|
|
- Testing strategies (how to test commands effectively)
|
|
- Documentation patterns (command documentation best practices)
|
|
- Marketplace considerations (publishing and distribution)
|
|
|
|
## Maintenance
|
|
|
|
To update this skill:
|
|
1. Keep SKILL.md focused on core fundamentals
|
|
2. Move detailed specifications to references/
|
|
3. Add new examples/ for different use cases
|
|
4. Update frontmatter when new fields added
|
|
5. Ensure imperative/infinitive form throughout
|
|
6. Test examples work with current Claude Code
|
|
|
|
## Version History
|
|
|
|
**v0.1.0** (2025-01-15):
|
|
- Initial release with basic command fundamentals
|
|
- Frontmatter field reference
|
|
- 10 simple command examples
|
|
- Ready for plugin-specific pattern additions
|