Initial commit
This commit is contained in:
13
.claude-plugin/plugin.json
Normal file
13
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "meta",
|
||||
"description": "Meta-tools for creating and managing Claude Code components. Generate skills, commands, agents, hooks, and plugins with proper structure and validation.",
|
||||
"version": "0.4.0",
|
||||
"author": {
|
||||
"name": "Jace Babin",
|
||||
"email": "jbabin91@gmail.com",
|
||||
"url": "https://github.com/jbabin91"
|
||||
},
|
||||
"skills": [
|
||||
"./skills"
|
||||
]
|
||||
}
|
||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# meta
|
||||
|
||||
Meta-tools for creating and managing Claude Code components. Generate skills, commands, agents, hooks, and plugins with proper structure and validation.
|
||||
73
plugin.lock.json
Normal file
73
plugin.lock.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"$schema": "internal://schemas/plugin.lock.v1.json",
|
||||
"pluginId": "gh:jbabin91/super-claude:plugins/meta",
|
||||
"normalized": {
|
||||
"repo": null,
|
||||
"ref": "refs/tags/v20251128.0",
|
||||
"commit": "de5395772c9415bead27ac144359b723803f78a9",
|
||||
"treeHash": "40e7e349f413d8784d05702cbaba742ff5e6ba4ef13ea8965f32e2ad4b2e258f",
|
||||
"generatedAt": "2025-11-28T10:17:57.964890Z",
|
||||
"toolVersion": "publish_plugins.py@0.2.0"
|
||||
},
|
||||
"origin": {
|
||||
"remote": "git@github.com:zhongweili/42plugin-data.git",
|
||||
"branch": "master",
|
||||
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
|
||||
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
|
||||
},
|
||||
"manifest": {
|
||||
"name": "meta",
|
||||
"description": "Meta-tools for creating and managing Claude Code components. Generate skills, commands, agents, hooks, and plugins with proper structure and validation.",
|
||||
"version": "0.4.0"
|
||||
},
|
||||
"content": {
|
||||
"files": [
|
||||
{
|
||||
"path": "README.md",
|
||||
"sha256": "6b26573306a5f8b925f7d54ab0ea99961f4032c2999812f8b1a226e98276c803"
|
||||
},
|
||||
{
|
||||
"path": ".claude-plugin/plugin.json",
|
||||
"sha256": "9ee4120ce034b35d31574dbde937acda749359ae07332d2e32834034f2c9039a"
|
||||
},
|
||||
{
|
||||
"path": "skills/skill-rules.json",
|
||||
"sha256": "5cb47ed661554f348c4eb932164690c8ba39d1026cb5904422330ff4b27cec6c"
|
||||
},
|
||||
{
|
||||
"path": "skills/skill-validator/SKILL.md",
|
||||
"sha256": "8351bfc1fb033c1241d85e791a9388b022e0d6aa395a4f5f6a03481ded51d4e3"
|
||||
},
|
||||
{
|
||||
"path": "skills/command-creator/SKILL.md",
|
||||
"sha256": "726f10870d1b3082a54e7d68fc92ef55d3ad66a7942477141ba71751dc132a19"
|
||||
},
|
||||
{
|
||||
"path": "skills/agent-creator/SKILL.md",
|
||||
"sha256": "284382cb7f570103467be99f656b271a2d8e6897e09c324b2662d821adbb39f1"
|
||||
},
|
||||
{
|
||||
"path": "skills/skill-creator/SKILL.md",
|
||||
"sha256": "aa4640285b36dff12bfa9f7b9f826649b13ba4d6a199eb9e1b0548f1570bcf55"
|
||||
},
|
||||
{
|
||||
"path": "skills/skill-creator/templates/skill_template.md",
|
||||
"sha256": "149d0daad7dcb59ce2da781f006fdb55e76d0a1923293a0102263e4a13df7e71"
|
||||
},
|
||||
{
|
||||
"path": "skills/plugin-creator/SKILL.md",
|
||||
"sha256": "25746b29d6055274f8209b4ff8a217e7a5f182a107bbca8dd44857c6af71d6c1"
|
||||
},
|
||||
{
|
||||
"path": "skills/hook-creator/SKILL.md",
|
||||
"sha256": "aea9faf1bf9a0a43a6d7bf575f966ecf1135bc1c6a7887a9cd871369f5eb1b6a"
|
||||
}
|
||||
],
|
||||
"dirSha256": "40e7e349f413d8784d05702cbaba742ff5e6ba4ef13ea8965f32e2ad4b2e258f"
|
||||
},
|
||||
"security": {
|
||||
"scannedAt": null,
|
||||
"scannerVersion": null,
|
||||
"flags": []
|
||||
}
|
||||
}
|
||||
575
skills/agent-creator/SKILL.md
Normal file
575
skills/agent-creator/SKILL.md
Normal file
@@ -0,0 +1,575 @@
|
||||
---
|
||||
name: agent-creator
|
||||
version: 1.0.0
|
||||
description: |
|
||||
Create specialized agents for Claude Code that handle specific tasks autonomously.
|
||||
Generate agent definitions with proper configuration and best practices.
|
||||
Use when: creating agents, generating sub-agents, setting up autonomous workflows.
|
||||
Activates for: "create agent", "generate agent", "new agent", "sub-agent", "make agent"
|
||||
---
|
||||
|
||||
# Agent Creator
|
||||
|
||||
Generate specialized agents for autonomous task handling in Claude Code.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Creating task-specific agents (code review, testing, research)
|
||||
- Building autonomous workflows
|
||||
- Specialized analysis agents
|
||||
- Multi-step task automation
|
||||
- Agent-driven development patterns
|
||||
|
||||
## Agent System Overview
|
||||
|
||||
Agents are specialized Claude instances with:
|
||||
|
||||
- **Focused purpose**: Specific task or domain
|
||||
- **Autonomy**: Can make decisions and use tools
|
||||
- **Context**: Loaded with relevant skills and knowledge
|
||||
- **Model selection**: Choose appropriate model (haiku, sonnet, opus)
|
||||
|
||||
## Core Workflow
|
||||
|
||||
### 1. Gather Requirements
|
||||
|
||||
Ask the user:
|
||||
|
||||
- **Purpose**: What specific task does this agent handle?
|
||||
- **Model**: Which model? (haiku=fast/cheap, sonnet=balanced, opus=complex)
|
||||
- **Skills**: Which skills should the agent have access to?
|
||||
- **Tools**: Which tools can the agent use?
|
||||
- **Constraints**: Any limitations or guardrails?
|
||||
- **Location**: Project-local or global?
|
||||
|
||||
### 2. Generate Agent Definition
|
||||
|
||||
**Location:**
|
||||
|
||||
- Global: `~/.claude/skills/super-claude/plugins/[plugin]/agents/agent-name.md`
|
||||
- Project: `/path/to/project/.claude/agents/agent-name.md`
|
||||
|
||||
**Format:**
|
||||
|
||||
```markdown
|
||||
---
|
||||
name: agent-name
|
||||
model: sonnet|haiku|opus
|
||||
description: Clear description of agent's purpose
|
||||
---
|
||||
|
||||
# Agent Name
|
||||
|
||||
## Purpose
|
||||
|
||||
Specific task this agent handles autonomously.
|
||||
|
||||
## Capabilities
|
||||
|
||||
- Capability 1
|
||||
- Capability 2
|
||||
- Capability 3
|
||||
|
||||
## Model
|
||||
|
||||
**sonnet** - Balanced performance and cost
|
||||
(or haiku for speed, opus for complex reasoning)
|
||||
|
||||
## Skills Used
|
||||
|
||||
- skill-1: Purpose
|
||||
- skill-2: Purpose
|
||||
|
||||
## Tools Available
|
||||
|
||||
- Read: For reading files
|
||||
- Write: For creating files
|
||||
- Bash: For running commands
|
||||
- etc.
|
||||
|
||||
## Operational Principles
|
||||
|
||||
1. Principle 1 (e.g., "Always verify before modifying")
|
||||
2. Principle 2 (e.g., "Test changes immediately")
|
||||
3. Principle 3 (e.g., "Provide detailed reports")
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Step 1: Action
|
||||
2. Step 2: Action
|
||||
3. Step 3: Action
|
||||
|
||||
## Quality Standards
|
||||
|
||||
- Standard 1
|
||||
- Standard 2
|
||||
- Standard 3
|
||||
|
||||
## Example Tasks
|
||||
|
||||
### Task 1: [Description]
|
||||
|
||||
Input: [what user provides]
|
||||
Process: [how agent handles it]
|
||||
Output: [what agent produces]
|
||||
|
||||
### Task 2: [Description]
|
||||
|
||||
Input: [what user provides]
|
||||
Process: [how agent handles it]
|
||||
Output: [what agent produces]
|
||||
|
||||
## Limitations
|
||||
|
||||
- Limitation 1
|
||||
- Limitation 2
|
||||
|
||||
## Success Criteria
|
||||
|
||||
- How to determine if agent completed task successfully
|
||||
```
|
||||
|
||||
### 3. Validate Agent
|
||||
|
||||
Ensure:
|
||||
|
||||
- ✅ Purpose is clear and focused
|
||||
- ✅ Model choice is appropriate
|
||||
- ✅ Skills and tools are relevant
|
||||
- ✅ Workflow is well-defined
|
||||
- ✅ Quality standards are specific
|
||||
|
||||
## Example Agents
|
||||
|
||||
### Code Review Agent
|
||||
|
||||
```markdown
|
||||
---
|
||||
name: code-reviewer
|
||||
model: sonnet
|
||||
description: Performs systematic code reviews with focus on quality, security, and best practices
|
||||
---
|
||||
|
||||
# Code Review Agent
|
||||
|
||||
## Purpose
|
||||
|
||||
Autonomous code review agent that provides comprehensive feedback on code quality, security, and adherence to best practices.
|
||||
|
||||
## Capabilities
|
||||
|
||||
- Static code analysis
|
||||
- Security vulnerability detection
|
||||
- Performance optimization suggestions
|
||||
- Best practice enforcement
|
||||
- Test coverage analysis
|
||||
|
||||
## Model
|
||||
|
||||
**sonnet** - Balanced reasoning for code analysis
|
||||
|
||||
## Skills Used
|
||||
|
||||
- typescript/tsc-validation: Type checking
|
||||
- testing/coverage-improve: Coverage analysis
|
||||
- security-checker: Vulnerability scanning
|
||||
|
||||
## Tools Available
|
||||
|
||||
- Read: Analyze source files
|
||||
- Grep: Search for patterns
|
||||
- Bash: Run linters and type checkers
|
||||
|
||||
## Operational Principles
|
||||
|
||||
1. Never modify code without explicit approval
|
||||
2. Provide specific, actionable feedback
|
||||
3. Include code examples in suggestions
|
||||
4. Prioritize security and type safety
|
||||
5. Be constructive, not critical
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Read files to review (git diff or specified files)
|
||||
2. Run static analysis tools (TypeScript, ESLint)
|
||||
3. Check for security vulnerabilities
|
||||
4. Analyze test coverage
|
||||
5. Review code patterns and best practices
|
||||
6. Generate detailed report with:
|
||||
- Issues found (categorized by severity)
|
||||
- Specific recommendations
|
||||
- Code examples for fixes
|
||||
- Overall assessment
|
||||
|
||||
## Quality Standards
|
||||
|
||||
- All suggestions must be specific and actionable
|
||||
- Include code examples for proposed changes
|
||||
- Categorize issues: critical, high, medium, low
|
||||
- Provide rationale for each recommendation
|
||||
|
||||
## Example Tasks
|
||||
|
||||
### Task 1: Review Pull Request
|
||||
|
||||
Input: PR number or branch name
|
||||
Process:
|
||||
|
||||
1. Get git diff
|
||||
2. Analyze changed files
|
||||
3. Run type checker and linters
|
||||
4. Check test coverage
|
||||
5. Generate review report
|
||||
Output: Detailed review with specific feedback
|
||||
|
||||
### Task 2: Security Audit
|
||||
|
||||
Input: Directory or file patterns
|
||||
Process:
|
||||
|
||||
1. Scan for common vulnerabilities
|
||||
2. Check dependency security
|
||||
3. Analyze authentication/authorization
|
||||
4. Review data handling
|
||||
Output: Security report with risk ratings
|
||||
|
||||
## Limitations
|
||||
|
||||
- Cannot execute code (static analysis only)
|
||||
- Requires tools to be installed (TypeScript, ESLint, etc.)
|
||||
- Limited to languages and tools specified in skills
|
||||
|
||||
## Success Criteria
|
||||
|
||||
- All code analyzed without errors
|
||||
- Report includes specific, actionable feedback
|
||||
- Recommendations include code examples
|
||||
- Issues categorized by severity
|
||||
```
|
||||
|
||||
### Test Generation Agent
|
||||
|
||||
```markdown
|
||||
---
|
||||
name: test-generator
|
||||
model: sonnet
|
||||
description: Automatically generates comprehensive test suites with high coverage
|
||||
---
|
||||
|
||||
# Test Generator Agent
|
||||
|
||||
## Purpose
|
||||
|
||||
Generate comprehensive test suites for TypeScript/React code with focus on coverage and edge cases.
|
||||
|
||||
## Capabilities
|
||||
|
||||
- Unit test generation
|
||||
- Integration test creation
|
||||
- Edge case identification
|
||||
- Mock generation
|
||||
- Test coverage analysis
|
||||
|
||||
## Model
|
||||
|
||||
**sonnet** - Balanced for code understanding and generation
|
||||
|
||||
## Skills Used
|
||||
|
||||
- testing/vitest-integration
|
||||
- typescript/tsc-validation
|
||||
- react-tools/component-testing
|
||||
|
||||
## Tools Available
|
||||
|
||||
- Read: Analyze source code
|
||||
- Write: Create test files
|
||||
- Bash: Run tests and check coverage
|
||||
|
||||
## Operational Principles
|
||||
|
||||
1. Achieve 80%+ coverage minimum
|
||||
2. Test happy path and edge cases
|
||||
3. Generate realistic test data
|
||||
4. Include accessibility tests for components
|
||||
5. Mock external dependencies properly
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Read source file to test
|
||||
2. Analyze:
|
||||
- Functions and methods
|
||||
- Edge cases and error paths
|
||||
- Dependencies to mock
|
||||
3. Generate test file with:
|
||||
- Proper imports and setup
|
||||
- Happy path tests
|
||||
- Edge case tests
|
||||
- Error handling tests
|
||||
- Mock configurations
|
||||
4. Run tests to verify they pass
|
||||
5. Check coverage and add tests if needed
|
||||
|
||||
## Quality Standards
|
||||
|
||||
- 80%+ code coverage
|
||||
- All public APIs tested
|
||||
- Edge cases covered
|
||||
- Mocks are realistic
|
||||
- Tests are maintainable
|
||||
|
||||
## Example Tasks
|
||||
|
||||
### Task 1: Generate Component Tests
|
||||
|
||||
Input: React component file
|
||||
Process:
|
||||
|
||||
1. Analyze component props and behavior
|
||||
2. Identify user interactions
|
||||
3. Generate test file with:
|
||||
- Render tests
|
||||
- Interaction tests
|
||||
- Prop variation tests
|
||||
- Accessibility tests
|
||||
4. Verify tests pass
|
||||
Output: Complete test file with high coverage
|
||||
|
||||
### Task 2: Generate API Tests
|
||||
|
||||
Input: API endpoint/handler file
|
||||
Process:
|
||||
|
||||
1. Analyze endpoint logic
|
||||
2. Identify request/response schemas
|
||||
3. Generate tests for:
|
||||
- Valid requests
|
||||
- Invalid requests
|
||||
- Error cases
|
||||
- Edge cases
|
||||
4. Mock dependencies
|
||||
Output: Complete API test suite
|
||||
|
||||
## Limitations
|
||||
|
||||
- Requires existing source code
|
||||
- Cannot test external integrations without mocks
|
||||
- Test quality depends on source code quality
|
||||
|
||||
## Success Criteria
|
||||
|
||||
- Tests are generated and pass
|
||||
- 80%+ coverage achieved
|
||||
- All edge cases considered
|
||||
- Mocks are properly configured
|
||||
```
|
||||
|
||||
### Research Agent
|
||||
|
||||
```markdown
|
||||
---
|
||||
name: researcher
|
||||
model: opus
|
||||
description: Conducts thorough research and analysis on technical topics
|
||||
---
|
||||
|
||||
# Research Agent
|
||||
|
||||
## Purpose
|
||||
|
||||
Autonomous research agent for in-depth technical investigation and analysis.
|
||||
|
||||
## Capabilities
|
||||
|
||||
- Codebase exploration
|
||||
- Pattern analysis
|
||||
- Dependency investigation
|
||||
- Best practice research
|
||||
- Technology comparison
|
||||
|
||||
## Model
|
||||
|
||||
**opus** - Complex reasoning for thorough analysis
|
||||
|
||||
## Skills Used
|
||||
|
||||
- All skills from typescript plugin
|
||||
- All skills from testing plugin
|
||||
- Documentation analysis skills
|
||||
|
||||
## Tools Available
|
||||
|
||||
- Read: Explore codebases
|
||||
- Grep: Search for patterns
|
||||
- Glob: Find files
|
||||
- Bash: Run analysis commands
|
||||
- WebFetch: Research external sources
|
||||
|
||||
## Operational Principles
|
||||
|
||||
1. Be thorough and systematic
|
||||
2. Document all findings
|
||||
3. Provide evidence for conclusions
|
||||
4. Consider multiple perspectives
|
||||
5. Organize information clearly
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Understand research question
|
||||
2. Plan investigation approach
|
||||
3. Gather information:
|
||||
- Explore codebase
|
||||
- Search for patterns
|
||||
- Research external sources
|
||||
4. Analyze findings
|
||||
5. Draw conclusions
|
||||
6. Generate comprehensive report
|
||||
|
||||
## Quality Standards
|
||||
|
||||
- Thorough investigation
|
||||
- Well-organized findings
|
||||
- Evidence-based conclusions
|
||||
- Clear, actionable recommendations
|
||||
|
||||
## Example Tasks
|
||||
|
||||
### Task 1: Technology Comparison
|
||||
|
||||
Input: "Compare date-fns vs dayjs for our use case"
|
||||
Process:
|
||||
|
||||
1. Research both libraries
|
||||
2. Compare:
|
||||
- Bundle sizes
|
||||
- Features
|
||||
- Timezone support
|
||||
- TypeScript support
|
||||
- Community/maintenance
|
||||
3. Analyze project requirements
|
||||
4. Make recommendation
|
||||
Output: Detailed comparison report with recommendation
|
||||
|
||||
### Task 2: Codebase Analysis
|
||||
|
||||
Input: "Analyze how authentication works in this codebase"
|
||||
Process:
|
||||
|
||||
1. Find authentication-related files
|
||||
2. Trace authentication flow
|
||||
3. Identify patterns and practices
|
||||
4. Document architecture
|
||||
5. Note potential issues
|
||||
Output: Architecture documentation with diagrams
|
||||
|
||||
## Limitations
|
||||
|
||||
- Time-intensive (use opus sparingly)
|
||||
- Requires good research skills configuration
|
||||
|
||||
## Success Criteria
|
||||
|
||||
- Question fully answered
|
||||
- Findings are comprehensive
|
||||
- Conclusions are evidence-based
|
||||
- Report is well-organized
|
||||
```
|
||||
|
||||
## Agent Categories
|
||||
|
||||
### Code Quality
|
||||
|
||||
- code-reviewer
|
||||
- refactoring-assistant
|
||||
- documentation-generator
|
||||
|
||||
### Testing
|
||||
|
||||
- test-generator
|
||||
- coverage-analyzer
|
||||
- e2e-test-creator
|
||||
|
||||
### Development
|
||||
|
||||
- feature-implementer
|
||||
- bug-fixer
|
||||
- api-designer
|
||||
|
||||
### Research
|
||||
|
||||
- researcher
|
||||
- technology-evaluator
|
||||
- pattern-analyzer
|
||||
|
||||
### Operations
|
||||
|
||||
- deployment-manager
|
||||
- dependency-updater
|
||||
- performance-optimizer
|
||||
|
||||
## Model Selection Guide
|
||||
|
||||
### Haiku (Fast & Cheap)
|
||||
|
||||
- Simple, repetitive tasks
|
||||
- Quick analysis
|
||||
- High-volume operations
|
||||
- Examples: formatter, simple validators
|
||||
|
||||
### Sonnet (Balanced)
|
||||
|
||||
- Most common choice
|
||||
- Code review
|
||||
- Test generation
|
||||
- Refactoring
|
||||
- Examples: code-reviewer, test-generator
|
||||
|
||||
### Opus (Complex Reasoning)
|
||||
|
||||
- Deep analysis
|
||||
- Research tasks
|
||||
- Architecture decisions
|
||||
- Complex problem-solving
|
||||
- Examples: researcher, architect
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Single Responsibility**: One clear purpose per agent
|
||||
2. **Clear Constraints**: Define what agent can/cannot do
|
||||
3. **Quality Standards**: Specific success criteria
|
||||
4. **Appropriate Model**: Match model to task complexity
|
||||
5. **Tool Access**: Only tools needed for the task
|
||||
|
||||
## Anti-Patterns
|
||||
|
||||
- ❌ Multi-purpose agents (do one thing well)
|
||||
- ❌ Vague purpose or workflow
|
||||
- ❌ No quality standards
|
||||
- ❌ Wrong model choice (opus for simple tasks)
|
||||
- ❌ Too many tool permissions
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Agent Not Performing Well
|
||||
|
||||
**Solution**:
|
||||
|
||||
- Check model selection (may need upgrade/downgrade)
|
||||
- Refine operational principles
|
||||
- Add more specific skills
|
||||
- Clarify success criteria
|
||||
|
||||
### Agent Taking Too Long
|
||||
|
||||
**Solution**:
|
||||
|
||||
- Use faster model (sonnet → haiku)
|
||||
- Narrow scope
|
||||
- Add time constraints
|
||||
- Break into smaller agents
|
||||
|
||||
## References
|
||||
|
||||
- [Claude Code Agents Documentation](https://docs.claude.com/en/docs/claude-code/agents)
|
||||
- [super-claude Agent Examples](../../agents/)
|
||||
- [obra/superpowers Agent Patterns](https://github.com/obra/superpowers)
|
||||
342
skills/command-creator/SKILL.md
Normal file
342
skills/command-creator/SKILL.md
Normal file
@@ -0,0 +1,342 @@
|
||||
---
|
||||
name: command-creator
|
||||
version: 1.0.0
|
||||
description: |
|
||||
Create custom slash commands for Claude Code with proper markdown structure and YAML frontmatter.
|
||||
Use when: creating commands, generating slash commands, making workflow automations.
|
||||
Activates for: "create command", "generate command", "new command", "slash command", "make command"
|
||||
---
|
||||
|
||||
# Command Creator
|
||||
|
||||
Generate custom slash commands for Claude Code with proper structure.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Creating project-specific commands
|
||||
- Automating repetitive workflows
|
||||
- Building team-shared commands
|
||||
- Standardizing common operations
|
||||
|
||||
## Command Structure
|
||||
|
||||
Commands are markdown files in the `commands/` directory with YAML frontmatter:
|
||||
|
||||
```markdown
|
||||
---
|
||||
description: Brief description of what this command does
|
||||
---
|
||||
|
||||
# Command instructions
|
||||
|
||||
Detailed instructions for Claude to follow when this command is executed.
|
||||
|
||||
## Context
|
||||
|
||||
Information about when and how to use this command.
|
||||
|
||||
## Examples
|
||||
|
||||
Example usage and expected outcomes.
|
||||
```
|
||||
|
||||
## Core Workflow
|
||||
|
||||
### 1. Gather Requirements
|
||||
|
||||
Ask the user:
|
||||
|
||||
- **Command name**: `/command-name` (what should user type?)
|
||||
- **Purpose**: What does this command do?
|
||||
- **Parameters**: Does it need arguments?
|
||||
- **Context**: When should it be used?
|
||||
- **Location**: Project-local or global?
|
||||
|
||||
### 2. Generate Command File
|
||||
|
||||
**Location:**
|
||||
|
||||
- Global: `~/.claude/skills/super-claude/plugins/[plugin]/commands/command-name.md`
|
||||
- Project: `/path/to/project/.claude/commands/command-name.md`
|
||||
|
||||
**Format:**
|
||||
|
||||
```markdown
|
||||
---
|
||||
description: One-line description (required)
|
||||
---
|
||||
|
||||
# Command Name
|
||||
|
||||
## Purpose
|
||||
|
||||
Clear explanation of what this command does.
|
||||
|
||||
## Usage
|
||||
|
||||
\`\`\`
|
||||
/command-name [arguments]
|
||||
\`\`\`
|
||||
|
||||
## Instructions for Claude
|
||||
|
||||
Step-by-step instructions for Claude to follow:
|
||||
|
||||
1. First action
|
||||
2. Second action
|
||||
3. Third action
|
||||
|
||||
## Parameters
|
||||
|
||||
- `arg1`: Description of first argument
|
||||
- `arg2`: Description of second argument (optional)
|
||||
|
||||
## Examples
|
||||
|
||||
### Example 1: Common Use Case
|
||||
|
||||
\`\`\`
|
||||
/command-name value1 value2
|
||||
\`\`\`
|
||||
Expected outcome: [description]
|
||||
|
||||
### Example 2: With Options
|
||||
|
||||
\`\`\`
|
||||
/command-name --option value
|
||||
\`\`\`
|
||||
Expected outcome: [description]
|
||||
|
||||
## Notes
|
||||
|
||||
- Important consideration 1
|
||||
- Important consideration 2
|
||||
```
|
||||
|
||||
### 3. Validate Command
|
||||
|
||||
Ensure:
|
||||
|
||||
- ✅ Description is clear and concise
|
||||
- ✅ Instructions are actionable
|
||||
- ✅ Examples are realistic
|
||||
- ✅ Parameter descriptions are complete
|
||||
- ✅ File is in correct location
|
||||
|
||||
## Example Commands
|
||||
|
||||
### Project Setup Command
|
||||
|
||||
```markdown
|
||||
---
|
||||
description: Initialize a new TanStack Start project with drizzle and better-auth
|
||||
---
|
||||
|
||||
# Setup TanStack Fullstack
|
||||
|
||||
## Purpose
|
||||
|
||||
Quickly scaffold a new TanStack Start project with database and authentication.
|
||||
|
||||
## Usage
|
||||
|
||||
\`\`\`
|
||||
/setup-tanstack-fullstack [project-name]
|
||||
\`\`\`
|
||||
|
||||
## Instructions for Claude
|
||||
|
||||
1. Create new directory with project-name
|
||||
2. Initialize TanStack Start project
|
||||
3. Install and configure Drizzle ORM with Postgres
|
||||
4. Set up better-auth with Drizzle adapter
|
||||
5. Create initial database schema
|
||||
6. Set up environment variables
|
||||
7. Create README with setup instructions
|
||||
|
||||
## Parameters
|
||||
|
||||
- `project-name`: Name of the new project directory
|
||||
|
||||
## Examples
|
||||
|
||||
### Example: Create New Project
|
||||
|
||||
\`\`\`
|
||||
/setup-tanstack-fullstack my-app
|
||||
\`\`\`
|
||||
|
||||
Creates:
|
||||
|
||||
- my-app/ directory
|
||||
- TanStack Start configuration
|
||||
- Drizzle + Postgres setup
|
||||
- better-auth integration
|
||||
- Initial schema and migrations
|
||||
```
|
||||
|
||||
### Code Review Command
|
||||
|
||||
```markdown
|
||||
---
|
||||
description: Perform comprehensive code review with focus areas
|
||||
---
|
||||
|
||||
# Review Code
|
||||
|
||||
## Purpose
|
||||
|
||||
Systematic code review checking for common issues and best practices.
|
||||
|
||||
## Usage
|
||||
|
||||
\`\`\`
|
||||
/review-code [--focus=area]
|
||||
\`\`\`
|
||||
|
||||
## Instructions for Claude
|
||||
|
||||
1. Analyze current file or git diff
|
||||
2. Check for:
|
||||
- Type safety issues
|
||||
- Accessibility concerns
|
||||
- Performance problems
|
||||
- Security vulnerabilities
|
||||
- Best practice violations
|
||||
3. If --focus provided, emphasize that area
|
||||
4. Provide specific, actionable feedback
|
||||
5. Suggest improvements with code examples
|
||||
|
||||
## Parameters
|
||||
|
||||
- `--focus`: Optional focus area (security, performance, accessibility, types)
|
||||
|
||||
## Examples
|
||||
|
||||
### Example: General Review
|
||||
|
||||
\`\`\`
|
||||
/review-code
|
||||
\`\`\`
|
||||
|
||||
### Example: Security Focus
|
||||
|
||||
\`\`\`
|
||||
/review-code --focus=security
|
||||
\`\`\`
|
||||
```
|
||||
|
||||
### Deployment Command
|
||||
|
||||
```markdown
|
||||
---
|
||||
description: Deploy to Cloudflare Pages with pre-deployment checks
|
||||
---
|
||||
|
||||
# Deploy Cloudflare
|
||||
|
||||
## Purpose
|
||||
|
||||
Deploy current project to Cloudflare Pages with safety checks.
|
||||
|
||||
## Usage
|
||||
|
||||
\`\`\`
|
||||
/deploy-cloudflare [--environment=prod|staging]
|
||||
\`\`\`
|
||||
|
||||
## Instructions for Claude
|
||||
|
||||
1. Run pre-deployment checks:
|
||||
- All tests passing
|
||||
- No TypeScript errors
|
||||
- No ESLint errors
|
||||
- Build succeeds
|
||||
2. Confirm environment variables are set
|
||||
3. Build production bundle
|
||||
4. Deploy to Cloudflare Pages
|
||||
5. Verify deployment successful
|
||||
6. Provide deployment URL
|
||||
|
||||
## Parameters
|
||||
|
||||
- `--environment`: Target environment (default: staging)
|
||||
|
||||
## Examples
|
||||
|
||||
### Example: Deploy to Staging
|
||||
|
||||
\`\`\`
|
||||
/deploy-cloudflare
|
||||
\`\`\`
|
||||
|
||||
### Example: Deploy to Production
|
||||
|
||||
\`\`\`
|
||||
/deploy-cloudflare --environment=prod
|
||||
\`\`\`
|
||||
```
|
||||
|
||||
## Command Categories
|
||||
|
||||
### Project Setup
|
||||
|
||||
- `/setup-*`: Initialize new projects
|
||||
- `/scaffold-*`: Create project structure
|
||||
|
||||
### Code Generation
|
||||
|
||||
- `/generate-*`: Create code/files
|
||||
- `/create-*`: Create components/modules
|
||||
|
||||
### Code Quality
|
||||
|
||||
- `/review-*`: Code review commands
|
||||
- `/fix-*`: Auto-fix issues
|
||||
- `/lint-*`: Linting operations
|
||||
|
||||
### Testing
|
||||
|
||||
- `/test-*`: Run tests
|
||||
- `/coverage-*`: Coverage analysis
|
||||
|
||||
### Deployment
|
||||
|
||||
- `/deploy-*`: Deployment operations
|
||||
- `/release-*`: Release management
|
||||
|
||||
### Documentation
|
||||
|
||||
- `/docs-*`: Generate documentation
|
||||
- `/explain-*`: Explain code/concepts
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Clear Names**: Use descriptive command names
|
||||
2. **Single Purpose**: One command = one clear action
|
||||
3. **Good Defaults**: Sensible default parameters
|
||||
4. **Safe Operations**: Confirm destructive actions
|
||||
5. **Helpful Output**: Provide clear feedback
|
||||
|
||||
## Anti-Patterns
|
||||
|
||||
- ❌ Generic names (helper, util, do-thing)
|
||||
- ❌ Multiple unrelated actions in one command
|
||||
- ❌ Missing parameter descriptions
|
||||
- ❌ No examples
|
||||
- ❌ Destructive operations without confirmation
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Command Not Found
|
||||
|
||||
**Solution**: Ensure file is in `commands/` directory and Claude Code has been restarted
|
||||
|
||||
### Command Parameters Not Working
|
||||
|
||||
**Solution**: Check parameter format in examples, ensure clear documentation
|
||||
|
||||
## References
|
||||
|
||||
- [Claude Code Commands Documentation](https://docs.claude.com/en/docs/claude-code/commands)
|
||||
- [super-claude Command Examples](../../commands/)
|
||||
382
skills/hook-creator/SKILL.md
Normal file
382
skills/hook-creator/SKILL.md
Normal file
@@ -0,0 +1,382 @@
|
||||
---
|
||||
name: hook-creator
|
||||
version: 1.0.0
|
||||
description: |
|
||||
Create event hooks for Claude Code that trigger on specific events.
|
||||
Generate hooks with proper JSON configuration for automating workflows.
|
||||
Use when: creating hooks, setting up event triggers, automating on file saves or tool calls.
|
||||
Activates for: "create hook", "generate hook", "new hook", "event hook", "make hook"
|
||||
---
|
||||
|
||||
# Hook Creator
|
||||
|
||||
Generate event-driven hooks for Claude Code with proper configuration.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Automating actions on specific events
|
||||
- Running checks before/after tool calls
|
||||
- Formatting code on save
|
||||
- Validating inputs before processing
|
||||
- Triggering notifications or logging
|
||||
|
||||
## Hook System Overview
|
||||
|
||||
Hooks allow you to run shell commands or scripts in response to Claude Code events:
|
||||
|
||||
**Event Types:**
|
||||
|
||||
- `user-prompt-submit` - Before Claude processes user input
|
||||
- `tool-call` - Before/after tool execution
|
||||
- `session-start` - When Claude Code session begins
|
||||
- `session-end` - When session ends
|
||||
|
||||
## Core Workflow
|
||||
|
||||
### 1. Gather Requirements
|
||||
|
||||
Ask the user:
|
||||
|
||||
- **Event type**: Which event should trigger this hook?
|
||||
- **When**: Before or after the event?
|
||||
- **Action**: What command/script to run?
|
||||
- **Filtering**: Specific tools, file types, or conditions?
|
||||
- **Location**: Project-local or global?
|
||||
|
||||
### 2. Generate Hook Configuration
|
||||
|
||||
**Location:**
|
||||
|
||||
- Global: `~/.claude/skills/super-claude/plugins/[plugin]/hooks/hooks.json`
|
||||
- Project: `/path/to/project/.claude/hooks/hooks.json`
|
||||
|
||||
**Format:**
|
||||
|
||||
```json
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"name": "hook-name",
|
||||
"event": "event-type",
|
||||
"when": "before|after",
|
||||
"command": "shell command to execute",
|
||||
"filter": {
|
||||
"tool": "specific-tool-name",
|
||||
"filePattern": "*.ts"
|
||||
},
|
||||
"description": "What this hook does"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 3. Validate Hook
|
||||
|
||||
Ensure:
|
||||
|
||||
- ✅ Event type is valid
|
||||
- ✅ Command is executable
|
||||
- ✅ Filter criteria are specific
|
||||
- ✅ Hook has clear description
|
||||
- ✅ No security issues (careful with shell commands)
|
||||
|
||||
## Example Hooks
|
||||
|
||||
### Prettier on Save
|
||||
|
||||
```json
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"name": "format-on-save",
|
||||
"event": "tool-call",
|
||||
"when": "after",
|
||||
"command": "prettier --write $FILE",
|
||||
"filter": {
|
||||
"tool": "Write",
|
||||
"filePattern": "*.{ts,tsx,js,jsx,md,json}"
|
||||
},
|
||||
"description": "Automatically format files after writing"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Type Check Before Commit
|
||||
|
||||
```json
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"name": "type-check-pre-commit",
|
||||
"event": "user-prompt-submit",
|
||||
"when": "before",
|
||||
"command": "npm run type-check",
|
||||
"filter": {
|
||||
"promptPattern": "commit|create.*commit"
|
||||
},
|
||||
"description": "Run type check before git commits"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Run Tests After Edit
|
||||
|
||||
```json
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"name": "test-after-edit",
|
||||
"event": "tool-call",
|
||||
"when": "after",
|
||||
"command": "npm test -- --related $FILE --run",
|
||||
"filter": {
|
||||
"tool": "Edit",
|
||||
"filePattern": "*.{ts,tsx}"
|
||||
},
|
||||
"description": "Run related tests after editing source files"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Validate API Schema
|
||||
|
||||
```json
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"name": "validate-openapi-schema",
|
||||
"event": "tool-call",
|
||||
"when": "after",
|
||||
"command": "npm run validate:openapi",
|
||||
"filter": {
|
||||
"tool": "Write",
|
||||
"filePattern": "**/api/**/*.ts"
|
||||
},
|
||||
"description": "Validate OpenAPI schema after API changes"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Accessibility Check
|
||||
|
||||
```json
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"name": "a11y-check-components",
|
||||
"event": "tool-call",
|
||||
"when": "after",
|
||||
"command": "npm run a11y:check $FILE",
|
||||
"filter": {
|
||||
"tool": "Write",
|
||||
"filePattern": "**/components/**/*.tsx"
|
||||
},
|
||||
"description": "Run accessibility checks on component changes"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Session Start Setup
|
||||
|
||||
```json
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"name": "session-start-checks",
|
||||
"event": "session-start",
|
||||
"when": "after",
|
||||
"command": "./scripts/check-dependencies.sh",
|
||||
"description": "Check dependencies and environment on session start"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Hook Configuration
|
||||
|
||||
### Event Types
|
||||
|
||||
**user-prompt-submit**
|
||||
|
||||
- Triggers when user submits a prompt
|
||||
- Use `when: "before"` to validate/modify input
|
||||
- Use `when: "after"` to log/process completed requests
|
||||
|
||||
**tool-call**
|
||||
|
||||
- Triggers on tool execution (Read, Write, Edit, Bash, etc.)
|
||||
- Use `filter.tool` to specify which tool
|
||||
- Access file path via `$FILE` variable
|
||||
|
||||
**session-start**
|
||||
|
||||
- Triggers when Claude Code session begins
|
||||
- Good for environment checks, setup tasks
|
||||
|
||||
**session-end**
|
||||
|
||||
- Triggers when session ends
|
||||
- Good for cleanup, logging, backups
|
||||
|
||||
### Filter Options
|
||||
|
||||
```json
|
||||
{
|
||||
"filter": {
|
||||
"tool": "Write", // Specific tool name
|
||||
"filePattern": "*.ts", // Glob pattern for files
|
||||
"promptPattern": "commit|deploy", // Regex for prompt content
|
||||
"fileType": "typescript" // File type detection
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Variables
|
||||
|
||||
Available in commands:
|
||||
|
||||
- `$FILE` - File path being operated on
|
||||
- `$TOOL` - Tool name being used
|
||||
- `$PROJECT` - Project root directory
|
||||
- `$PWD` - Current working directory
|
||||
|
||||
## Hook Categories
|
||||
|
||||
### Code Quality
|
||||
|
||||
- Format on save (Prettier, ESLint --fix)
|
||||
- Lint before commit
|
||||
- Type check before operations
|
||||
|
||||
### Testing
|
||||
|
||||
- Run tests after edits
|
||||
- Update snapshots
|
||||
- Coverage checks
|
||||
|
||||
### Validation
|
||||
|
||||
- Schema validation
|
||||
- API contract checking
|
||||
- Accessibility testing
|
||||
|
||||
### Git Operations
|
||||
|
||||
- Pre-commit checks
|
||||
- Commit message validation
|
||||
- Branch protection
|
||||
|
||||
### Environment
|
||||
|
||||
- Dependency checks
|
||||
- Environment variable validation
|
||||
- Configuration verification
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Specific Filters**: Don't run on every event - be selective
|
||||
2. **Fast Commands**: Hooks should complete quickly (< 2 seconds)
|
||||
3. **Error Handling**: Commands should fail gracefully
|
||||
4. **Clear Descriptions**: Explain what the hook does
|
||||
5. **Test Hooks**: Verify they work before deploying
|
||||
|
||||
## Security Considerations
|
||||
|
||||
⚠️ **Important**: Hooks execute shell commands
|
||||
|
||||
- ✅ Use absolute paths when possible
|
||||
- ✅ Validate inputs and file paths
|
||||
- ✅ Avoid user-controlled variables in commands
|
||||
- ✅ Review hook commands carefully
|
||||
- ❌ Never execute arbitrary code from untrusted sources
|
||||
- ❌ Avoid hooks that modify system files
|
||||
- ❌ Don't use hooks for sensitive operations without safeguards
|
||||
|
||||
## Anti-Patterns
|
||||
|
||||
- ❌ Running slow operations (> 5 seconds)
|
||||
- ❌ Hooks with side effects that aren't clear
|
||||
- ❌ Too many hooks (performance impact)
|
||||
- ❌ Hooks without filters (run on everything)
|
||||
- ❌ Destructive operations without confirmation
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Hook Not Firing
|
||||
|
||||
**Solution**:
|
||||
|
||||
- Check hooks.json syntax is valid
|
||||
- Verify event type is correct
|
||||
- Check filter criteria match your use case
|
||||
- Restart Claude Code
|
||||
|
||||
### Hook Command Fails
|
||||
|
||||
**Solution**:
|
||||
|
||||
- Test command in terminal first
|
||||
- Check file paths are correct
|
||||
- Verify required tools are installed
|
||||
- Check command output/errors
|
||||
|
||||
### Hook Slows Down Workflow
|
||||
|
||||
**Solution**:
|
||||
|
||||
- Add more specific filters
|
||||
- Optimize command execution
|
||||
- Consider running async if possible
|
||||
- Remove unnecessary hooks
|
||||
|
||||
## Advanced Patterns
|
||||
|
||||
### Conditional Execution
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "conditional-hook",
|
||||
"event": "tool-call",
|
||||
"when": "after",
|
||||
"command": "if [ -f package.json ]; then npm test; fi",
|
||||
"description": "Run tests only if package.json exists"
|
||||
}
|
||||
```
|
||||
|
||||
### Chained Commands
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "format-and-lint",
|
||||
"event": "tool-call",
|
||||
"when": "after",
|
||||
"command": "prettier --write $FILE && eslint --fix $FILE",
|
||||
"filter": {
|
||||
"tool": "Write",
|
||||
"filePattern": "*.ts"
|
||||
},
|
||||
"description": "Format and lint TypeScript files"
|
||||
}
|
||||
```
|
||||
|
||||
### Background Execution
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "background-validation",
|
||||
"event": "tool-call",
|
||||
"when": "after",
|
||||
"command": "npm run validate &",
|
||||
"description": "Run validation in background"
|
||||
}
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
- [Claude Code Hooks Documentation](https://docs.claude.com/en/docs/claude-code/hooks)
|
||||
- [super-claude Hook Examples](../../hooks/)
|
||||
465
skills/plugin-creator/SKILL.md
Normal file
465
skills/plugin-creator/SKILL.md
Normal file
@@ -0,0 +1,465 @@
|
||||
---
|
||||
name: plugin-creator
|
||||
version: 1.0.0
|
||||
description: |
|
||||
Create complete Claude Code plugins with proper structure including skills, commands, agents, and hooks.
|
||||
Generates plugin manifests and directory structures for distribution.
|
||||
Use when: building plugins, creating plugin packages, distributing skills to marketplace.
|
||||
Activates for: "create plugin", "generate plugin", "new plugin", "plugin package", "make plugin"
|
||||
---
|
||||
|
||||
# Plugin Creator
|
||||
|
||||
Generate complete Claude Code plugins with proper structure and configuration.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Creating shareable plugin packages
|
||||
- Building complete tool collections
|
||||
- Organizing related skills/commands/agents
|
||||
- Distributing functionality to teams
|
||||
- Contributing to plugin marketplaces
|
||||
|
||||
## Plugin Structure
|
||||
|
||||
A complete plugin includes:
|
||||
|
||||
```sh
|
||||
plugin-name/
|
||||
├── .claude-plugin/
|
||||
│ └── plugin.json # Plugin manifest
|
||||
├── skills/ # Optional: Skill definitions
|
||||
│ ├── skill-1.md
|
||||
│ └── skill-2.md
|
||||
├── commands/ # Optional: Slash commands
|
||||
│ ├── command-1.md
|
||||
│ └── command-2.md
|
||||
├── agents/ # Optional: Agent definitions
|
||||
│ ├── agent-1.md
|
||||
│ └── agent-2.md
|
||||
├── hooks/ # Optional: Event hooks
|
||||
│ └── hooks.json
|
||||
├── README.md # Documentation
|
||||
└── LICENSE # Optional: License file
|
||||
```
|
||||
|
||||
## Core Workflow
|
||||
|
||||
### 1. Gather Requirements
|
||||
|
||||
Ask the user:
|
||||
|
||||
- **Plugin name**: Kebab-case identifier
|
||||
- **Purpose**: What problem does this plugin solve?
|
||||
- **Components**: What will it include (skills/commands/agents/hooks)?
|
||||
- **Target audience**: Who will use this?
|
||||
- **Distribution**: Public marketplace or private?
|
||||
- **Dependencies**: Required tools or other plugins?
|
||||
|
||||
### 2. Generate Plugin Structure
|
||||
|
||||
#### Create Directory Structure
|
||||
|
||||
```bash
|
||||
mkdir -p plugin-name/.claude-plugin
|
||||
mkdir -p plugin-name/skills
|
||||
mkdir -p plugin-name/commands
|
||||
mkdir -p plugin-name/agents
|
||||
mkdir -p plugin-name/hooks
|
||||
```
|
||||
|
||||
#### Generate plugin.json
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "plugin-name",
|
||||
"version": "1.0.0",
|
||||
"description": "Clear description of what this plugin does",
|
||||
"author": {
|
||||
"name": "Author Name",
|
||||
"email": "email@example.com",
|
||||
"github": "github-username"
|
||||
},
|
||||
"license": "MIT",
|
||||
"category": "appropriate-category",
|
||||
"keywords": ["keyword1", "keyword2", "keyword3"],
|
||||
"skills": ["skill-1", "skill-2"],
|
||||
"commands": ["command-1", "command-2"],
|
||||
"agents": ["agent-1", "agent-2"],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/username/plugin-name"
|
||||
},
|
||||
"homepage": "https://github.com/username/plugin-name",
|
||||
"requires": {
|
||||
"tools": ["git", "npm"],
|
||||
"plugins": []
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Generate README.md
|
||||
|
||||
```markdown
|
||||
# Plugin Name
|
||||
|
||||
> Brief description
|
||||
|
||||
## Features
|
||||
|
||||
- Feature 1
|
||||
- Feature 2
|
||||
- Feature 3
|
||||
|
||||
## Installation
|
||||
|
||||
\`\`\`bash
|
||||
/plugin marketplace add username/plugin-name
|
||||
/plugin install plugin-name
|
||||
\`\`\`
|
||||
|
||||
## Usage
|
||||
|
||||
### Skills
|
||||
|
||||
- **skill-1**: Description
|
||||
- **skill-2**: Description
|
||||
|
||||
### Commands
|
||||
|
||||
- `/command-1`: Description
|
||||
- `/command-2`: Description
|
||||
|
||||
### Agents
|
||||
|
||||
- **agent-1**: Description
|
||||
|
||||
## Examples
|
||||
|
||||
[Usage examples]
|
||||
|
||||
## Requirements
|
||||
|
||||
- Tool 1
|
||||
- Tool 2
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
```
|
||||
|
||||
### 3. Add Components
|
||||
|
||||
Use the creator skills to add components:
|
||||
|
||||
- **skill-creator**: Add skills
|
||||
- **command-creator**: Add commands
|
||||
- **agent-creator**: Add agents
|
||||
- **hook-creator**: Add hooks
|
||||
|
||||
### 4. Validate Plugin
|
||||
|
||||
Ensure:
|
||||
|
||||
- ✅ plugin.json is valid JSON
|
||||
- ✅ All referenced components exist
|
||||
- ✅ Directory structure is correct
|
||||
- ✅ README is comprehensive
|
||||
- ✅ License is appropriate
|
||||
- ✅ Keywords are relevant
|
||||
|
||||
## Example Plugins
|
||||
|
||||
### TanStack Tools Plugin
|
||||
|
||||
```sh
|
||||
tanstack-tools/
|
||||
├── .claude-plugin/
|
||||
│ └── plugin.json
|
||||
├── skills/
|
||||
│ ├── tanstack-router-setup.md
|
||||
│ ├── tanstack-query-hook.md
|
||||
│ ├── tanstack-form-schema.md
|
||||
│ ├── tanstack-table-config.md
|
||||
│ └── tanstack-start-project.md
|
||||
├── commands/
|
||||
│ ├── setup-tanstack-start.md
|
||||
│ └── generate-query-hook.md
|
||||
├── README.md
|
||||
└── LICENSE
|
||||
```
|
||||
|
||||
**plugin.json:**
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "tanstack-tools",
|
||||
"version": "1.0.0",
|
||||
"description": "Comprehensive TanStack ecosystem tools for Router, Query, Forms, Table, and Start",
|
||||
"author": {
|
||||
"name": "Jace Babin",
|
||||
"email": "jbabin91@gmail.com",
|
||||
"github": "jbabin91"
|
||||
},
|
||||
"license": "MIT",
|
||||
"category": "framework",
|
||||
"keywords": [
|
||||
"tanstack",
|
||||
"router",
|
||||
"query",
|
||||
"forms",
|
||||
"table",
|
||||
"start",
|
||||
"react"
|
||||
],
|
||||
"skills": [
|
||||
"tanstack-router-setup",
|
||||
"tanstack-query-hook",
|
||||
"tanstack-form-schema",
|
||||
"tanstack-table-config",
|
||||
"tanstack-start-project"
|
||||
],
|
||||
"commands": ["setup-tanstack-start", "generate-query-hook"],
|
||||
"requires": {
|
||||
"tools": ["npm", "git"],
|
||||
"packages": ["@tanstack/router", "@tanstack/react-query"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### API Tools Plugin
|
||||
|
||||
```sh
|
||||
api-tools/
|
||||
├── .claude-plugin/
|
||||
│ └── plugin.json
|
||||
├── skills/
|
||||
│ ├── drizzle-setup.md
|
||||
│ ├── drizzle-schema-generator.md
|
||||
│ ├── better-auth-setup.md
|
||||
│ ├── hono-rpc-endpoint.md
|
||||
│ └── elysia-setup.md
|
||||
├── commands/
|
||||
│ ├── init-drizzle.md
|
||||
│ ├── generate-api-client.md
|
||||
│ └── setup-auth.md
|
||||
├── agents/
|
||||
│ └── api-designer.md
|
||||
├── README.md
|
||||
└── LICENSE
|
||||
```
|
||||
|
||||
**plugin.json:**
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "api-tools",
|
||||
"version": "1.0.0",
|
||||
"description": "Backend API development tools for Hono, Elysia, Drizzle, and better-auth",
|
||||
"author": {
|
||||
"name": "Jace Babin",
|
||||
"email": "jbabin91@gmail.com",
|
||||
"github": "jbabin91"
|
||||
},
|
||||
"license": "MIT",
|
||||
"category": "backend",
|
||||
"keywords": [
|
||||
"api",
|
||||
"backend",
|
||||
"hono",
|
||||
"elysia",
|
||||
"drizzle",
|
||||
"better-auth",
|
||||
"openapi"
|
||||
],
|
||||
"skills": [
|
||||
"drizzle-setup",
|
||||
"drizzle-schema-generator",
|
||||
"better-auth-setup",
|
||||
"hono-rpc-endpoint",
|
||||
"elysia-setup"
|
||||
],
|
||||
"commands": ["init-drizzle", "generate-api-client", "setup-auth"],
|
||||
"agents": ["api-designer"],
|
||||
"requires": {
|
||||
"tools": ["npm", "node"],
|
||||
"packages": ["drizzle-orm", "better-auth"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Component Library Plugin
|
||||
|
||||
```sh
|
||||
design-system-tools/
|
||||
├── .claude-plugin/
|
||||
│ └── plugin.json
|
||||
├── skills/
|
||||
│ ├── component-generator.md
|
||||
│ ├── component-a11y-validator.md
|
||||
│ ├── storybook-story.md
|
||||
│ └── design-tokens-validator.md
|
||||
├── commands/
|
||||
│ ├── create-component.md
|
||||
│ ├── validate-a11y.md
|
||||
│ └── generate-stories.md
|
||||
├── agents/
|
||||
│ ├── component-reviewer.md
|
||||
│ └── a11y-auditor.md
|
||||
├── hooks/
|
||||
│ └── hooks.json
|
||||
├── README.md
|
||||
└── LICENSE
|
||||
```
|
||||
|
||||
## Plugin Categories
|
||||
|
||||
### Framework-Specific
|
||||
|
||||
- tanstack-tools
|
||||
- react-tools
|
||||
- next-tools
|
||||
- vue-tools
|
||||
|
||||
### Backend
|
||||
|
||||
- api-tools
|
||||
- database-tools
|
||||
- auth-tools
|
||||
|
||||
### DevOps
|
||||
|
||||
- deployment-tools
|
||||
- ci-cd-tools
|
||||
- monitoring-tools
|
||||
|
||||
### Code Quality
|
||||
|
||||
- testing
|
||||
- linting-tools
|
||||
- security-tools
|
||||
|
||||
### Meta
|
||||
|
||||
- skill-tools (this plugin!)
|
||||
- marketplace-tools
|
||||
- template-tools
|
||||
|
||||
## Plugin Manifest Fields
|
||||
|
||||
### Required Fields
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "plugin-identifier", // Required: kebab-case
|
||||
"version": "1.0.0", // Required: semantic versioning
|
||||
"description": "Clear description" // Required: what it does
|
||||
}
|
||||
```
|
||||
|
||||
### Recommended Fields
|
||||
|
||||
```json
|
||||
{
|
||||
"author": {
|
||||
"name": "Author Name",
|
||||
"email": "email@example.com",
|
||||
"github": "username"
|
||||
},
|
||||
"license": "MIT",
|
||||
"category": "framework",
|
||||
"keywords": ["keyword1", "keyword2"],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/username/plugin"
|
||||
},
|
||||
"homepage": "https://github.com/username/plugin"
|
||||
}
|
||||
```
|
||||
|
||||
### Optional Fields
|
||||
|
||||
```json
|
||||
{
|
||||
"skills": ["skill-1", "skill-2"], // List of included skills
|
||||
"commands": ["cmd-1", "cmd-2"], // List of commands
|
||||
"agents": ["agent-1"], // List of agents
|
||||
"requires": {
|
||||
"tools": ["git", "npm"], // Required CLI tools
|
||||
"plugins": ["other-plugin"], // Plugin dependencies
|
||||
"packages": ["package-name"] // npm package dependencies
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Distribution
|
||||
|
||||
### Public Marketplace
|
||||
|
||||
1. Create GitHub repository
|
||||
2. Add marketplace.json (if creating marketplace)
|
||||
3. Tag releases with versions
|
||||
4. Share repository URL
|
||||
|
||||
Users install via:
|
||||
|
||||
```bash
|
||||
/plugin marketplace add username/plugin-name
|
||||
/plugin install plugin-name
|
||||
```
|
||||
|
||||
### Private/Work Distribution
|
||||
|
||||
1. Host on private Git server
|
||||
2. Share repository URL with team
|
||||
3. Add to team marketplace
|
||||
|
||||
Users install via:
|
||||
|
||||
```bash
|
||||
/plugin marketplace add git@internal:plugins/plugin-name
|
||||
/plugin install plugin-name
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Clear Purpose**: Plugin should solve one specific problem domain
|
||||
2. **Good Documentation**: Comprehensive README with examples
|
||||
3. **Semantic Versioning**: Follow semver for releases
|
||||
4. **Minimal Dependencies**: Only require what's necessary
|
||||
5. **Test Before Release**: Validate all components work
|
||||
6. **Helpful Keywords**: Make plugin discoverable
|
||||
|
||||
## Anti-Patterns
|
||||
|
||||
- ❌ Kitchen-sink plugins (too many unrelated features)
|
||||
- ❌ Missing documentation
|
||||
- ❌ No examples
|
||||
- ❌ Unclear versioning
|
||||
- ❌ Missing license
|
||||
- ❌ Poor component organization
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Plugin Not Loading
|
||||
|
||||
**Solution**:
|
||||
|
||||
- Validate plugin.json syntax
|
||||
- Check directory structure
|
||||
- Verify all referenced files exist
|
||||
- Restart Claude Code
|
||||
|
||||
### Components Not Found
|
||||
|
||||
**Solution**:
|
||||
|
||||
- Check component names match manifest
|
||||
- Verify files are in correct directories
|
||||
- Check file extensions (.md for skills/commands/agents)
|
||||
|
||||
## References
|
||||
|
||||
- [Claude Code Plugins Documentation](https://docs.claude.com/en/docs/claude-code/plugins)
|
||||
- [super-claude Plugin Examples](../../plugins/)
|
||||
- [Plugin Manifest Spec](https://docs.claude.com/en/docs/claude-code/plugins#manifest)
|
||||
704
skills/skill-creator/SKILL.md
Normal file
704
skills/skill-creator/SKILL.md
Normal file
@@ -0,0 +1,704 @@
|
||||
---
|
||||
name: skill-creator
|
||||
version: 1.0.0
|
||||
description: |
|
||||
Create new Claude Code skills with proper structure, validation, and best practices.
|
||||
Generates skills that follow Anthropic specifications and community patterns.
|
||||
Use when you need custom skills for specific workflows, either globally or per-project.
|
||||
category: meta
|
||||
tags: [skill-generation, meta, automation, claude-code]
|
||||
model: sonnet
|
||||
triggers:
|
||||
keywords: [create skill, generate skill, new skill, custom skill, skill for]
|
||||
patterns: ['create.*skill', 'generate.*skill', 'make.*skill']
|
||||
contexts: [development, skill-creation]
|
||||
---
|
||||
|
||||
# Skill Creator
|
||||
|
||||
A meta-skill for generating new Claude Code skills with proper structure and validation.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Creating project-specific skills (e.g., "Odyssey design system components")
|
||||
- Building work-related skills (e.g., "SD API client generation")
|
||||
- Generating custom workflow automations
|
||||
- Standardizing team practices into reusable skills
|
||||
- Converting manual processes into automated skills
|
||||
|
||||
## Core Workflow
|
||||
|
||||
### 1. Gather Requirements
|
||||
|
||||
Ask the user:
|
||||
|
||||
- **Purpose**: What problem does this skill solve?
|
||||
- **Triggers**: What keywords/phrases should activate it?
|
||||
- **Context**: When should it be used (file types, project types)?
|
||||
- **Location**: Where to save (global or project-local)?
|
||||
- **Dependencies**: Required tools, packages, or other skills?
|
||||
|
||||
### 2. Generate Skill Structure
|
||||
|
||||
**Template Reference:** See `templates/skill_template.md` for the complete skill template with all available fields and examples.
|
||||
|
||||
Create a properly formatted SKILL.md with:
|
||||
|
||||
```yaml
|
||||
---
|
||||
# OFFICIAL CLAUDE CODE FIELDS (recognized by Claude Code)
|
||||
name: skill-identifier # Required: kebab-case
|
||||
description: | # Required: What it does AND when to activate
|
||||
Clear description of what it does and when to use it.
|
||||
IMPORTANT: Include activation triggers in the description itself.
|
||||
Example: "Generate React components. Use when creating new UI components."
|
||||
allowed-tools: [] # Optional: Restrict to specific tools
|
||||
|
||||
# EXTENDED METADATA (ignored by Claude Code, useful for organization)
|
||||
version: 1.0.0 # Track changes (skills are files, not packages)
|
||||
---
|
||||
|
||||
# Skill Name
|
||||
|
||||
Brief overview (1-2 sentences).
|
||||
|
||||
## When to Use
|
||||
|
||||
- Concrete trigger 1
|
||||
- Concrete trigger 2
|
||||
- Specific scenario 3
|
||||
|
||||
## Core Workflow
|
||||
|
||||
### 1. First Step
|
||||
Description and instructions
|
||||
|
||||
### 2. Second Step
|
||||
Description and instructions
|
||||
|
||||
## Best Practices
|
||||
|
||||
- Practice 1
|
||||
- Practice 2
|
||||
|
||||
## Example Workflows
|
||||
|
||||
### Scenario 1: Common Use Case
|
||||
Step-by-step example
|
||||
|
||||
### Scenario 2: Edge Case
|
||||
How to handle edge cases
|
||||
|
||||
## Integration Points
|
||||
|
||||
- Works with: [other skills]
|
||||
- Calls: [agents/tools]
|
||||
- Required by: [dependent skills]
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Issue 1
|
||||
Symptom: [description]
|
||||
Solution: [fix]
|
||||
|
||||
### Issue 2
|
||||
Symptom: [description]
|
||||
Solution: [fix]
|
||||
|
||||
## References
|
||||
|
||||
- [External documentation links]
|
||||
```
|
||||
|
||||
### 3. Validate Against Specifications
|
||||
|
||||
Ensure the skill follows:
|
||||
|
||||
**Anthropic Best Practices:**
|
||||
|
||||
- ✅ Clear, actionable instructions
|
||||
- ✅ Specific triggers (not generic)
|
||||
- ✅ Real examples (not placeholders)
|
||||
- ✅ Token-efficient (< 500 lines for core content)
|
||||
- ✅ Progressive disclosure (link to API_REFERENCE.md if needed)
|
||||
|
||||
**RED-GREEN-REFACTOR Ready:**
|
||||
|
||||
- ✅ Can be tested without the skill (RED phase)
|
||||
- ✅ Verifiable compliance (GREEN phase)
|
||||
- ✅ Hardened against rationalizations (REFACTOR phase)
|
||||
|
||||
**Community Patterns:**
|
||||
|
||||
- ✅ No TODOs or placeholders in production
|
||||
- ✅ No "YOUR_KEY_HERE" style configs
|
||||
- ✅ Specific, not generic labels
|
||||
- ✅ Context-aware activation
|
||||
|
||||
### 4. Save to Appropriate Location
|
||||
|
||||
**Global Skills** (general use across all projects):
|
||||
|
||||
```txt
|
||||
~/.claude/skills/super-claude/plugins/[category]/skills/skill-name.md
|
||||
```
|
||||
|
||||
**Project-Local Skills** (specific to one project):
|
||||
|
||||
```txt
|
||||
/path/to/project/.claude/skills/skill-name.md
|
||||
```
|
||||
|
||||
**Note**: Project-local skills are perfect for work-specific or proprietary patterns that shouldn't be shared globally.
|
||||
|
||||
### 5. Test the Skill
|
||||
|
||||
Provide testing guidance:
|
||||
|
||||
- RED: Try the workflow WITHOUT the skill, note failures
|
||||
- GREEN: Enable the skill, verify it works
|
||||
- REFACTOR: Identify edge cases, harden the skill
|
||||
|
||||
## Skill Types
|
||||
|
||||
### Standard Skill (Most Common)
|
||||
|
||||
General-purpose automation or guidance for specific tasks.
|
||||
|
||||
### Component Generator
|
||||
|
||||
Creates code/files following specific patterns.
|
||||
|
||||
### Workflow Orchestrator
|
||||
|
||||
Coordinates multiple steps or tools.
|
||||
|
||||
### Validation/Checker
|
||||
|
||||
Ensures code/config meets standards.
|
||||
|
||||
### Migration Helper
|
||||
|
||||
Assists in moving between technologies.
|
||||
|
||||
## Advanced Features
|
||||
|
||||
### Progressive Disclosure
|
||||
|
||||
If skill exceeds 500 lines, split into:
|
||||
|
||||
- **SKILL.md**: Core instructions (< 500 lines)
|
||||
- **API_REFERENCE.md**: Advanced topics (loaded on-demand)
|
||||
|
||||
Link from SKILL.md:
|
||||
|
||||
```markdown
|
||||
For advanced usage, see [API_REFERENCE.md](./API_REFERENCE.md)
|
||||
```
|
||||
|
||||
### Context-Aware Activation
|
||||
|
||||
Make skills activate automatically:
|
||||
|
||||
```yaml
|
||||
triggers:
|
||||
keywords: [specific, technical, terms]
|
||||
patterns: ['regex.*patterns']
|
||||
contexts: [file-types, project-types]
|
||||
```
|
||||
|
||||
### Dependencies
|
||||
|
||||
Declare requirements:
|
||||
|
||||
```yaml
|
||||
requires:
|
||||
tools: [git, npm, docker]
|
||||
skills: [typescript/tsc-validation]
|
||||
packages: ['@types/node']
|
||||
```
|
||||
|
||||
## Auto-Activation System
|
||||
|
||||
### Overview
|
||||
|
||||
Skills can auto-activate based on user prompts using the skill-rules.json system. This enables Claude to proactively suggest relevant skills before responding.
|
||||
|
||||
**For complete details, see:** [SKILL_ACTIVATION_GUIDE.md](../../docs/SKILL_ACTIVATION_GUIDE.md)
|
||||
|
||||
### When to Add Activation Rules
|
||||
|
||||
Add skill-rules.json entries when:
|
||||
|
||||
- Skill is part of a plugin (not project-local)
|
||||
- Skill should auto-activate from specific keywords
|
||||
- Skill addresses a common workflow pattern
|
||||
- Skill is high-value and frequently needed
|
||||
|
||||
**Skip activation rules for:**
|
||||
|
||||
- One-off project-specific skills
|
||||
- Rarely-used experimental skills
|
||||
- Skills that should only run on explicit user request
|
||||
|
||||
### Creating skill-rules.json Entries
|
||||
|
||||
**For plugin developers:** Add entries to `plugins/{plugin}/skills/skill-rules.json`
|
||||
|
||||
**Schema:**
|
||||
|
||||
```json
|
||||
{
|
||||
"plugin": {
|
||||
"name": "plugin-name",
|
||||
"version": "1.0.0",
|
||||
"namespace": "namespace"
|
||||
},
|
||||
"skills": {
|
||||
"skill-name": {
|
||||
"type": "domain",
|
||||
"enforcement": "suggest",
|
||||
"priority": "high",
|
||||
"description": "Brief description of what the skill does",
|
||||
"promptTriggers": {
|
||||
"keywords": ["keyword1", "keyword2"],
|
||||
"intentPatterns": ["pattern1", "pattern2"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Writing Good Keywords
|
||||
|
||||
**✅ Good Keywords** (specific, unambiguous):
|
||||
|
||||
```json
|
||||
"keywords": [
|
||||
"create skill",
|
||||
"new skill",
|
||||
"skill template",
|
||||
"generate skill",
|
||||
"skill development"
|
||||
]
|
||||
```
|
||||
|
||||
**❌ Bad Keywords** (too generic):
|
||||
|
||||
```json
|
||||
"keywords": [
|
||||
"create",
|
||||
"new",
|
||||
"help",
|
||||
"build"
|
||||
]
|
||||
```
|
||||
|
||||
**Rules for keywords:**
|
||||
|
||||
- Minimum 2 words for specificity
|
||||
- Include the domain (e.g., "skill", "hook", "component")
|
||||
- Match how users naturally ask for help
|
||||
- Case-insensitive literal matching
|
||||
- No regex needed for keywords
|
||||
|
||||
### Writing Good Intent Patterns
|
||||
|
||||
**✅ Good Patterns** (capture intent, not exact wording):
|
||||
|
||||
```json
|
||||
"intentPatterns": [
|
||||
"(create|add|generate|build).*?skill",
|
||||
"how to.*?(create|add|build).*?skill",
|
||||
"skill.*?(template|generator|builder)",
|
||||
"need.*?skill.*?(for|to)",
|
||||
"(make|write).*?skill"
|
||||
]
|
||||
```
|
||||
|
||||
**❌ Bad Patterns** (too broad or too narrow):
|
||||
|
||||
```json
|
||||
"intentPatterns": [
|
||||
".*skill.*",
|
||||
"^create exactly this specific phrase$"
|
||||
]
|
||||
```
|
||||
|
||||
**Rules for patterns:**
|
||||
|
||||
- Use regex with case-insensitive flag (`i`)
|
||||
- Include action verbs: create, add, generate, build, make
|
||||
- Include domain terms: skill, hook, component, etc.
|
||||
- Use `.*?` for flexible matching between keywords
|
||||
- Capture natural variations of the same intent
|
||||
|
||||
### Priority Guidelines
|
||||
|
||||
**critical** - Must run for safety/correctness:
|
||||
|
||||
```json
|
||||
"priority": "critical"
|
||||
// Examples: security validators, syntax checkers
|
||||
```
|
||||
|
||||
**high** - Highly recommended:
|
||||
|
||||
```json
|
||||
"priority": "high"
|
||||
// Examples: skill-creator, component-generator
|
||||
```
|
||||
|
||||
**medium** - Useful but optional:
|
||||
|
||||
```json
|
||||
"priority": "medium"
|
||||
// Examples: documentation generators, formatters
|
||||
```
|
||||
|
||||
**low** - Nice-to-have:
|
||||
|
||||
```json
|
||||
"priority": "low"
|
||||
// Examples: experimental features, rarely-used tools
|
||||
```
|
||||
|
||||
### Example: skill-creator Activation Rules
|
||||
|
||||
```json
|
||||
{
|
||||
"plugin": {
|
||||
"name": "meta",
|
||||
"version": "1.0.0",
|
||||
"namespace": "claude"
|
||||
},
|
||||
"skills": {
|
||||
"skill-creator": {
|
||||
"type": "domain",
|
||||
"enforcement": "suggest",
|
||||
"priority": "high",
|
||||
"description": "Generate new Claude Code skills with proper structure and validation",
|
||||
"promptTriggers": {
|
||||
"keywords": [
|
||||
"create skill",
|
||||
"new skill",
|
||||
"skill development",
|
||||
"generate skill",
|
||||
"skill template"
|
||||
],
|
||||
"intentPatterns": [
|
||||
"(create|add|generate|build).*?skill",
|
||||
"how to.*?(create|add|build).*?skill",
|
||||
"skill.*?(template|generator|builder)",
|
||||
"need.*?skill.*?(for|to)",
|
||||
"(make|write).*?skill"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Migration Tool
|
||||
|
||||
Use `/generate-skill-rules` to auto-generate entries from existing SKILL.md YAML frontmatter:
|
||||
|
||||
```sh
|
||||
# Preview generated rules
|
||||
/generate-skill-rules --plugin plugins/tanstack-tools --namespace tanstack
|
||||
|
||||
# Write to skill-rules.json
|
||||
/generate-skill-rules --plugin plugins/api-tools --namespace api --write
|
||||
```
|
||||
|
||||
### Testing Activation Rules
|
||||
|
||||
**Test in isolated project:**
|
||||
|
||||
```sh
|
||||
# 1. Create test project
|
||||
mkdir test-activation && cd test-activation
|
||||
|
||||
# 2. Copy hook and rules
|
||||
mkdir -p .claude/hooks .claude/skills/your-plugin
|
||||
cp {hook-path}/skill-activation-prompt.ts .claude/hooks/
|
||||
cp {plugin-path}/skill-rules.json .claude/skills/your-plugin/
|
||||
|
||||
# 3. Test with prompts
|
||||
echo '{"prompt":"create a new skill","cwd":"'$(pwd)'"}' | \
|
||||
bun run .claude/hooks/skill-activation-prompt.ts
|
||||
```
|
||||
|
||||
**Expected output:**
|
||||
|
||||
```txt
|
||||
============================================================
|
||||
SKILL ACTIVATION CHECK
|
||||
============================================================
|
||||
|
||||
[RECOMMENDED] SKILLS:
|
||||
-> skill-creator
|
||||
|
||||
ACTION: Use Skill tool BEFORE responding
|
||||
============================================================
|
||||
```
|
||||
|
||||
### Workflow: Adding Auto-Activation to New Skills
|
||||
|
||||
When creating a skill that should auto-activate:
|
||||
|
||||
1. **Create the SKILL.md** (as normal)
|
||||
|
||||
2. **Identify triggers** by asking:
|
||||
- What keywords would users type to need this skill?
|
||||
- What questions or requests indicate this intent?
|
||||
- How do users naturally express this need?
|
||||
|
||||
3. **Add to skill-rules.json**:
|
||||
|
||||
```json
|
||||
{
|
||||
"skills": {
|
||||
"new-skill": {
|
||||
"type": "domain",
|
||||
"enforcement": "suggest",
|
||||
"priority": "high",
|
||||
"description": "What the skill does",
|
||||
"promptTriggers": {
|
||||
"keywords": ["keyword1", "keyword2"],
|
||||
"intentPatterns": ["pattern1", "pattern2"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
4. **Test the triggers**:
|
||||
- Try prompts that SHOULD activate it
|
||||
- Try prompts that should NOT activate it
|
||||
- Refine keywords/patterns based on results
|
||||
|
||||
5. **Document in SKILL.md**:
|
||||
|
||||
```markdown
|
||||
## Auto-Activation
|
||||
|
||||
This skill auto-activates when you mention:
|
||||
|
||||
- Creating/generating {domain objects}
|
||||
- Specific workflow requests
|
||||
- Related keywords
|
||||
|
||||
Triggered by: create skill, new skill, generate skill
|
||||
```
|
||||
|
||||
### Project-Level Overrides
|
||||
|
||||
Users can customize activation in their projects via `.claude/skills/skill-rules.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"version": "1.0",
|
||||
"overrides": {
|
||||
"claude/skill-creator": {
|
||||
"priority": "critical"
|
||||
}
|
||||
},
|
||||
"disabled": ["claude/skill-validator"],
|
||||
"global": {
|
||||
"maxSkillsPerPrompt": 3,
|
||||
"priorityThreshold": "medium"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Command for users:** `/workflow:configure`
|
||||
|
||||
## Example: Creating a Project-Specific Skill
|
||||
|
||||
**User Request:**
|
||||
"Create a skill for generating Odyssey design system components"
|
||||
|
||||
**Generated Skill:**
|
||||
|
||||
Location: `/path/to/odyssey-project/.claude/skills/odyssey-components.md`
|
||||
|
||||
```yaml
|
||||
---
|
||||
name: odyssey-components
|
||||
version: 1.0.0
|
||||
description: |
|
||||
Generate components following Odyssey design system guidelines.
|
||||
Ensures consistency with design tokens, patterns, and accessibility standards.
|
||||
category: design-system
|
||||
tags: [odyssey, components, design-system, react]
|
||||
model: sonnet
|
||||
requires:
|
||||
tools: [npm]
|
||||
packages: ["@odyssey/design-tokens", "@odyssey/components"]
|
||||
triggers:
|
||||
keywords: [odyssey, odyssey component, design system]
|
||||
patterns: ["create.*odyssey", "generate.*odyssey"]
|
||||
---
|
||||
|
||||
# Odyssey Components
|
||||
|
||||
Generate React components that follow Odyssey design system standards.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Creating new Odyssey components
|
||||
- Ensuring design system compliance
|
||||
- Maintaining consistency across products
|
||||
|
||||
## Component Structure
|
||||
|
||||
All components follow this pattern:
|
||||
|
||||
\`\`\`
|
||||
components/
|
||||
└── ComponentName/
|
||||
├── ComponentName.tsx
|
||||
├── ComponentName.stories.tsx
|
||||
├── ComponentName.test.tsx
|
||||
└── index.ts
|
||||
\`\`\`
|
||||
|
||||
## Design Token Usage
|
||||
|
||||
Always use design tokens from `@odyssey/design-tokens`:
|
||||
|
||||
\`\`\`typescript
|
||||
import { tokens } from '@odyssey/design-tokens'
|
||||
|
||||
const styles = {
|
||||
color: tokens.color.primary.base,
|
||||
spacing: tokens.spacing.md,
|
||||
borderRadius: tokens.borderRadius.md
|
||||
}
|
||||
\`\`\`
|
||||
|
||||
## Accessibility Requirements
|
||||
|
||||
All components must:
|
||||
- Meet WCAG AAA standards
|
||||
- Include proper ARIA labels
|
||||
- Support keyboard navigation
|
||||
- Provide focus indicators
|
||||
|
||||
## Example: Button Component
|
||||
|
||||
[Detailed example following Odyssey patterns]
|
||||
```
|
||||
|
||||
## Common Skill Patterns
|
||||
|
||||
### API Client Generator
|
||||
|
||||
```yaml
|
||||
name: project-api-client
|
||||
purpose: Generate type-safe API clients from OpenAPI schemas
|
||||
includes: OpenAPI schema parsing, type generation, RPC helpers
|
||||
location: project-local (for proprietary APIs)
|
||||
```
|
||||
|
||||
### Component Library Helper
|
||||
|
||||
```yaml
|
||||
name: design-system-components
|
||||
purpose: Generate components following project design system
|
||||
includes: Component patterns, theme support, testing
|
||||
location: project-local (for proprietary design systems)
|
||||
```
|
||||
|
||||
### Database Schema Generator
|
||||
|
||||
```yaml
|
||||
name: drizzle-schema-from-db
|
||||
purpose: Generate Drizzle schemas from existing Postgres database
|
||||
includes: Type inference, relationship mapping, migration helpers
|
||||
location: global (reusable across projects)
|
||||
```
|
||||
|
||||
### Deployment Automation
|
||||
|
||||
```yaml
|
||||
name: coolify-deployment
|
||||
purpose: Automate deployment to Coolify platform
|
||||
includes: Docker config, environment setup, rollback procedures
|
||||
location: global (reusable deployment pattern)
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Be Specific**: Don't create "helper" or "utility" skills - be explicit about what they do
|
||||
2. **Include Examples**: Real, working examples - not placeholders
|
||||
3. **Test First**: RED-GREEN-REFACTOR methodology ensures quality
|
||||
4. **Token Efficiency**: Keep core content under 500 lines
|
||||
5. **Clear Triggers**: Specific keywords that clearly indicate when to activate
|
||||
6. **Validate**: Always check against Claude Code and Anthropic specs
|
||||
|
||||
## Anti-Patterns to Avoid
|
||||
|
||||
- ❌ Generic names ("helper", "utils", "tool")
|
||||
- ❌ TODOs or placeholders in production
|
||||
- ❌ Narrative examples tied to specific sessions
|
||||
- ❌ Code embedded in flowcharts
|
||||
- ❌ Missing activation triggers
|
||||
- ❌ Over 500 lines without progressive disclosure
|
||||
- ❌ Untested skills
|
||||
|
||||
## Integration with Other Tools
|
||||
|
||||
### shadcn CLI Integration
|
||||
|
||||
```bash
|
||||
# Generate skill that wraps shadcn commands
|
||||
pnpm dlx shadcn@latest add [component]
|
||||
pnpm dlx shadcn@latest add @coss/[component]
|
||||
```
|
||||
|
||||
### Registry Support
|
||||
|
||||
Skills can integrate with component registries:
|
||||
|
||||
- shadcn/ui registry
|
||||
- coss.com/ui registry
|
||||
- Custom private registries
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Skill Not Activating
|
||||
|
||||
**Symptom**: Skill exists but doesn't trigger
|
||||
**Solution**:
|
||||
|
||||
- Check triggers section in YAML frontmatter
|
||||
- Ensure keywords are specific enough
|
||||
- Verify file is in correct location
|
||||
- Check Claude Code loaded the skill (restart if needed)
|
||||
|
||||
### Skill Too Generic
|
||||
|
||||
**Symptom**: Skill triggers too often or in wrong contexts
|
||||
**Solution**:
|
||||
|
||||
- Make keywords more specific
|
||||
- Add context restrictions
|
||||
- Use regex patterns to narrow activation
|
||||
|
||||
### Skill Too Large
|
||||
|
||||
**Symptom**: Skill exceeds 500 lines
|
||||
**Solution**:
|
||||
|
||||
- Implement progressive disclosure
|
||||
- Move advanced content to API_REFERENCE.md
|
||||
- Keep core workflow in SKILL.md
|
||||
|
||||
## References
|
||||
|
||||
- [Claude Code Skills Documentation](https://docs.claude.com/en/docs/claude-code/skills)
|
||||
- [Anthropic Best Practices](https://docs.claude.com/en/docs/claude-code)
|
||||
- [obra/superpowers](https://github.com/obra/superpowers) - Community patterns
|
||||
- [super-claude CREATING_SKILLS.md](../../docs/CREATING_SKILLS.md) - RED-GREEN-REFACTOR guide
|
||||
196
skills/skill-creator/templates/skill_template.md
Normal file
196
skills/skill-creator/templates/skill_template.md
Normal file
@@ -0,0 +1,196 @@
|
||||
---
|
||||
# ============================================================================
|
||||
# OFFICIAL CLAUDE CODE FIELDS (recognized by Claude Code)
|
||||
# Reference: https://docs.claude.com/en/docs/claude-code/skills.md
|
||||
# ============================================================================
|
||||
|
||||
name: skill-identifier # Required: kebab-case, unique identifier
|
||||
description: | # Required: What it does AND when to activate it
|
||||
Brief description of what this skill does and when to use it.
|
||||
IMPORTANT: Include activation triggers in the description itself since
|
||||
Claude Code only uses the description field for discovery.
|
||||
|
||||
Examples: "Use when...", "Activates for...", "Helps with..."
|
||||
Good: "Generate React components with TypeScript. Use when creating new UI components."
|
||||
Bad: "Helps with components" (too vague)
|
||||
|
||||
allowed-tools: [] # Optional: Restrict to specific tools
|
||||
# Example: allowed-tools: [Read, Grep, Glob] # Read-only skill
|
||||
# Available tools: Read, Write, Edit, Bash, Grep, Glob, WebFetch, Task, etc.
|
||||
|
||||
# ============================================================================
|
||||
# EXTENDED METADATA (not used by Claude Code, but useful for humans/tooling)
|
||||
# These fields are ignored by Claude Code but help with organization
|
||||
# ============================================================================
|
||||
|
||||
version: 1.0.0 # Track changes since skills are files, not versioned packages
|
||||
---
|
||||
|
||||
# Skill Name
|
||||
|
||||
Brief overview of what this skill does (1-2 sentences maximum).
|
||||
|
||||
## When to Use
|
||||
|
||||
- User action or request that triggers this skill
|
||||
- Specific scenario where this skill is helpful
|
||||
- Problem this skill solves
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Required tools/setup (if any)
|
||||
- Expected environment or configuration
|
||||
- Dependencies that must be installed
|
||||
|
||||
## Core Workflow
|
||||
|
||||
### 1. Step One
|
||||
|
||||
Description of first step with details.
|
||||
|
||||
```bash
|
||||
# Example command or code
|
||||
example-command --flag value
|
||||
```
|
||||
|
||||
### 2. Step Two
|
||||
|
||||
Description of second step with examples.
|
||||
|
||||
### 3. Step Three
|
||||
|
||||
Final steps and completion criteria.
|
||||
|
||||
## Best Practices
|
||||
|
||||
- Practice 1: Why and when to apply it
|
||||
- Practice 2: Common pitfall to avoid
|
||||
- Practice 3: Optimization or efficiency tip
|
||||
|
||||
## Example Workflows
|
||||
|
||||
### Scenario 1: [Common Use Case]
|
||||
|
||||
**User Request:** "Help me do X"
|
||||
|
||||
**Steps:**
|
||||
|
||||
1. First action
|
||||
2. Second action
|
||||
3. Expected outcome
|
||||
|
||||
**Example:**
|
||||
|
||||
```typescript
|
||||
// Example code demonstrating the workflow
|
||||
function example() {
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
### Scenario 2: [Advanced Use Case]
|
||||
|
||||
**User Request:** "I need to handle Y edge case"
|
||||
|
||||
**Steps:**
|
||||
|
||||
1. Handle edge case
|
||||
2. Validate result
|
||||
3. Confirm success
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Issue 1: Common Problem
|
||||
|
||||
**Symptom:** What the user sees
|
||||
|
||||
**Solution:**
|
||||
|
||||
- Step 1 to fix
|
||||
- Step 2 to verify
|
||||
- Alternative approach if needed
|
||||
|
||||
### Issue 2: Another Problem
|
||||
|
||||
**Symptom:** What the user sees
|
||||
|
||||
**Solution:**
|
||||
|
||||
- How to resolve
|
||||
- How to prevent in future
|
||||
|
||||
## References
|
||||
|
||||
- [Related Documentation](https://example.com)
|
||||
- [Official Guide](https://example.com)
|
||||
- [Community Resources](https://example.com)
|
||||
|
||||
---
|
||||
|
||||
## Template Notes (Remove before publishing)
|
||||
|
||||
### What Claude Code Actually Uses
|
||||
|
||||
**Claude Code ONLY recognizes these fields:**
|
||||
|
||||
- `name` - Skill identifier (required)
|
||||
- `description` - What it does AND when to activate (required)
|
||||
- `allowed-tools` - Tool restrictions (optional)
|
||||
|
||||
**Extended metadata (ignored by Claude Code, but useful for humans):**
|
||||
|
||||
- `version` - Track changes since skills are files, not versioned packages
|
||||
|
||||
Note: Author info is in the plugin's `plugin.json`, not individual skill files.
|
||||
|
||||
All activation hints, keywords, and patterns should go directly in the `description` field since that's the only field Claude Code uses for skill discovery.
|
||||
|
||||
### File Organization
|
||||
|
||||
Skills can have supporting files loaded progressively:
|
||||
|
||||
```sh
|
||||
skill-name/
|
||||
├── SKILL.md (this file, required)
|
||||
├── reference.md (optional, advanced topics)
|
||||
├── examples.md (optional, detailed examples)
|
||||
├── scripts/ (optional, helper scripts)
|
||||
└── templates/ (optional, code templates)
|
||||
```
|
||||
|
||||
### Activation Best Practices
|
||||
|
||||
**Claude Code only uses the `description` field for discovery!**
|
||||
|
||||
Put ALL activation hints directly in the description:
|
||||
|
||||
```yaml
|
||||
description: |
|
||||
Generate React components with TypeScript and Tailwind CSS.
|
||||
Use when: creating new components, scaffolding UI elements, building design system.
|
||||
Activates for: "create component", "new component", "generate component"
|
||||
```
|
||||
|
||||
**Good description examples:**
|
||||
|
||||
> "Analyze Excel spreadsheets, generate pivot tables, create charts. Use when working with .xlsx files or data analysis requests."
|
||||
>
|
||||
> "Refactor TypeScript imports, organize import statements, remove unused imports. Use when cleaning up imports or seeing import-related errors."
|
||||
|
||||
**Bad description (too vague):**
|
||||
|
||||
> "Helps with data" ❌ - No activation triggers, no use cases
|
||||
|
||||
### Model Selection
|
||||
|
||||
Claude Code automatically picks the appropriate model. The `model` field in YAML is ignored.
|
||||
|
||||
### Tool Restrictions
|
||||
|
||||
Use `allowed-tools` to create read-only or limited-permission skills:
|
||||
|
||||
```yaml
|
||||
allowed-tools: [Read, Grep, Glob] # Read-only, no file modifications
|
||||
```
|
||||
|
||||
Available tools: Read, Write, Edit, Bash, Grep, Glob, WebFetch, Task, etc.
|
||||
147
skills/skill-rules.json
Normal file
147
skills/skill-rules.json
Normal file
@@ -0,0 +1,147 @@
|
||||
{
|
||||
"plugin": {
|
||||
"name": "meta",
|
||||
"version": "1.0.0",
|
||||
"namespace": "meta"
|
||||
},
|
||||
|
||||
"skills": {
|
||||
"skill-creator": {
|
||||
"type": "domain",
|
||||
"enforcement": "suggest",
|
||||
"priority": "high",
|
||||
"description": "Generate new Claude Code skills with proper structure and validation",
|
||||
"promptTriggers": {
|
||||
"keywords": [
|
||||
"create skill",
|
||||
"new skill",
|
||||
"skill development",
|
||||
"generate skill",
|
||||
"skill template"
|
||||
],
|
||||
"intentPatterns": [
|
||||
"(create|add|generate|build).*?skill",
|
||||
"how to.*?(create|add|build).*?skill",
|
||||
"skill.*?(template|generator|builder)",
|
||||
"need.*?skill.*?(for|to)",
|
||||
"(make|write).*?skill"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
"hook-creator": {
|
||||
"type": "domain",
|
||||
"enforcement": "suggest",
|
||||
"priority": "high",
|
||||
"description": "Generate Claude Code hooks for workflow automation",
|
||||
"promptTriggers": {
|
||||
"keywords": [
|
||||
"create hook",
|
||||
"new hook",
|
||||
"hook development",
|
||||
"generate hook",
|
||||
"pre-commit",
|
||||
"post-commit",
|
||||
"hook automation"
|
||||
],
|
||||
"intentPatterns": [
|
||||
"(create|add|generate|build).*?hook",
|
||||
"how to.*?(create|add|build).*?hook",
|
||||
"(pre|post)[-\\s](commit|push|merge)",
|
||||
"hook.*?(template|generator|builder)",
|
||||
"automat(e|ion).*?(before|after).*?(commit|push)"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
"command-creator": {
|
||||
"type": "domain",
|
||||
"enforcement": "suggest",
|
||||
"priority": "high",
|
||||
"description": "Generate slash commands for Claude Code",
|
||||
"promptTriggers": {
|
||||
"keywords": [
|
||||
"create command",
|
||||
"new command",
|
||||
"slash command",
|
||||
"generate command",
|
||||
"command development"
|
||||
],
|
||||
"intentPatterns": [
|
||||
"(create|add|generate|build).*?command",
|
||||
"how to.*?(create|add|build).*?command",
|
||||
"slash.*?command",
|
||||
"command.*?(template|generator|builder)",
|
||||
"custom.*?command"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
"agent-creator": {
|
||||
"type": "domain",
|
||||
"enforcement": "suggest",
|
||||
"priority": "high",
|
||||
"description": "Generate specialized agents for complex tasks",
|
||||
"promptTriggers": {
|
||||
"keywords": [
|
||||
"create agent",
|
||||
"new agent",
|
||||
"agent development",
|
||||
"generate agent",
|
||||
"specialized agent"
|
||||
],
|
||||
"intentPatterns": [
|
||||
"(create|add|generate|build).*?agent",
|
||||
"how to.*?(create|add|build).*?agent",
|
||||
"agent.*?(template|generator|builder)",
|
||||
"specialized.*?agent",
|
||||
"(task|workflow).*?agent"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
"plugin-creator": {
|
||||
"type": "domain",
|
||||
"enforcement": "suggest",
|
||||
"priority": "high",
|
||||
"description": "Generate new Claude Code plugin structure",
|
||||
"promptTriggers": {
|
||||
"keywords": [
|
||||
"create plugin",
|
||||
"new plugin",
|
||||
"plugin development",
|
||||
"generate plugin",
|
||||
"plugin structure"
|
||||
],
|
||||
"intentPatterns": [
|
||||
"(create|add|generate|build).*?plugin",
|
||||
"how to.*?(create|add|build).*?plugin",
|
||||
"plugin.*?(template|generator|builder|scaffold)",
|
||||
"new.*?marketplace.*?plugin"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
"skill-validator": {
|
||||
"type": "domain",
|
||||
"enforcement": "suggest",
|
||||
"priority": "medium",
|
||||
"description": "Validate skill files for correctness and best practices",
|
||||
"promptTriggers": {
|
||||
"keywords": [
|
||||
"validate skill",
|
||||
"check skill",
|
||||
"skill validation",
|
||||
"verify skill",
|
||||
"skill quality"
|
||||
],
|
||||
"intentPatterns": [
|
||||
"(validate|check|verify|test).*?skill",
|
||||
"skill.*?(valid|correct|quality|check)",
|
||||
"is.*?skill.*?(valid|correct)",
|
||||
"review.*?skill"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
386
skills/skill-validator/SKILL.md
Normal file
386
skills/skill-validator/SKILL.md
Normal file
@@ -0,0 +1,386 @@
|
||||
---
|
||||
name: skill-validator
|
||||
version: 1.0.0
|
||||
description: |
|
||||
Validate Claude Code skills, commands, agents, hooks, and plugins against specifications.
|
||||
Checks structure, format, best practices, and common issues before committing or distributing.
|
||||
Use when: validating skills, checking plugins, linting components, ensuring quality.
|
||||
Activates for: "validate skill", "check skill", "validate plugin", "lint skill", "verify skill"
|
||||
---
|
||||
|
||||
# Skill Validator
|
||||
|
||||
Validate Claude Code components against specifications and best practices.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Before committing skills/plugins
|
||||
- Before distributing to marketplace
|
||||
- During skill development (catch issues early)
|
||||
- Reviewing community contributions
|
||||
- Ensuring quality standards
|
||||
|
||||
## Validation Checks
|
||||
|
||||
### Skills (SKILL.md)
|
||||
|
||||
#### Structure Checks
|
||||
|
||||
- ✅ YAML frontmatter present and valid
|
||||
- ✅ Required fields: name, version, description
|
||||
- ✅ Name is kebab-case
|
||||
- ✅ Version follows semantic versioning
|
||||
- ✅ Description is clear and includes triggers
|
||||
|
||||
#### Content Checks
|
||||
|
||||
- ✅ Has "When to Use" section
|
||||
- ✅ Has workflow or instructions
|
||||
- ✅ Includes examples
|
||||
- ✅ Under 500 lines (or has progressive disclosure)
|
||||
- ✅ No TODOs or placeholders
|
||||
- ✅ No generic labels (helper, util, tool)
|
||||
|
||||
#### Best Practices
|
||||
|
||||
- ✅ Specific triggers (not too generic)
|
||||
- ✅ Real examples (not placeholders)
|
||||
- ✅ Clear, actionable instructions
|
||||
- ✅ Integration points documented
|
||||
- ✅ Troubleshooting section present
|
||||
|
||||
### Commands
|
||||
|
||||
#### Structure Checks
|
||||
|
||||
- ✅ YAML frontmatter with description
|
||||
- ✅ Clear command name
|
||||
- ✅ Usage examples provided
|
||||
- ✅ Parameters documented
|
||||
|
||||
#### Content Checks
|
||||
|
||||
- ✅ Purpose is clear
|
||||
- ✅ Instructions are actionable
|
||||
- ✅ Examples show real usage
|
||||
- ✅ Parameter descriptions complete
|
||||
|
||||
### Agents
|
||||
|
||||
#### Structure Checks
|
||||
|
||||
- ✅ YAML frontmatter present
|
||||
- ✅ Model specified (haiku/sonnet/opus)
|
||||
- ✅ Purpose is clear
|
||||
- ✅ Workflow defined
|
||||
|
||||
#### Content Checks
|
||||
|
||||
- ✅ Single responsibility
|
||||
- ✅ Operational principles defined
|
||||
- ✅ Quality standards specified
|
||||
- ✅ Success criteria clear
|
||||
- ✅ Appropriate model for task complexity
|
||||
|
||||
### Hooks
|
||||
|
||||
#### Structure Checks
|
||||
|
||||
- ✅ Valid JSON format
|
||||
- ✅ Event type is valid
|
||||
- ✅ Command is specified
|
||||
- ✅ Description provided
|
||||
|
||||
#### Safety Checks
|
||||
|
||||
- ✅ No arbitrary code execution
|
||||
- ✅ File paths are validated
|
||||
- ✅ Commands are safe
|
||||
- ✅ Filters are specific (not too broad)
|
||||
|
||||
### Plugins
|
||||
|
||||
#### Structure Checks
|
||||
|
||||
- ✅ `.claude-plugin/plugin.json` exists
|
||||
- ✅ Valid JSON format
|
||||
- ✅ Required fields present
|
||||
- ✅ Referenced components exist
|
||||
- ✅ Directory structure correct
|
||||
|
||||
#### Manifest Checks
|
||||
|
||||
- ✅ Name is kebab-case
|
||||
- ✅ Version follows semver
|
||||
- ✅ Description is clear
|
||||
- ✅ Keywords are relevant
|
||||
- ✅ Author info present (if distributing)
|
||||
|
||||
## Core Workflow
|
||||
|
||||
### 1. Identify Component Type
|
||||
|
||||
Determine what to validate:
|
||||
|
||||
- Skill (SKILL.md)
|
||||
- Command (.md in commands/)
|
||||
- Agent (.md in agents/)
|
||||
- Hook (hooks.json)
|
||||
- Plugin (entire plugin directory)
|
||||
|
||||
### 2. Run Validation Checks
|
||||
|
||||
Execute appropriate checks based on component type.
|
||||
|
||||
### 3. Report Issues
|
||||
|
||||
Categorize by severity:
|
||||
|
||||
- **Error**: Must fix (prevents functionality)
|
||||
- **Warning**: Should fix (best practice violation)
|
||||
- **Info**: Consider fixing (minor improvement)
|
||||
|
||||
### 4. Provide Fixes
|
||||
|
||||
For each issue, provide:
|
||||
|
||||
- Description of problem
|
||||
- Why it's an issue
|
||||
- How to fix it
|
||||
- Code example if applicable
|
||||
|
||||
## Validation Examples
|
||||
|
||||
### Skill Validation
|
||||
|
||||
**Input:** `skills/my-skill.md`
|
||||
|
||||
**Checks:**
|
||||
|
||||
```txt
|
||||
✅ YAML frontmatter valid
|
||||
✅ Name: my-skill (kebab-case)
|
||||
✅ Version: 1.0.0 (semver)
|
||||
✅ Description present
|
||||
⚠️ No triggers defined
|
||||
⚠️ Missing "When to Use" section
|
||||
✅ Has examples
|
||||
✅ 342 lines (under 500)
|
||||
❌ Contains TODO on line 45
|
||||
❌ Uses generic label "helper" in title
|
||||
```
|
||||
|
||||
**Report:**
|
||||
|
||||
```txt
|
||||
Errors (2):
|
||||
1. Line 45: TODO found - remove before publishing
|
||||
2. Line 12: Generic label "helper" - be more specific
|
||||
|
||||
Warnings (2):
|
||||
1. No triggers defined - skill won't auto-activate
|
||||
2. Missing "When to Use" section - users won't know when to apply
|
||||
|
||||
Info (0):
|
||||
None
|
||||
|
||||
Score: 6/10 - Fix errors before publishing
|
||||
```
|
||||
|
||||
### Plugin Validation
|
||||
|
||||
**Input:** `my-plugin/`
|
||||
|
||||
**Checks:**
|
||||
|
||||
```txt
|
||||
✅ plugin.json exists
|
||||
✅ Valid JSON
|
||||
✅ Name: my-plugin
|
||||
✅ Version: 1.0.0
|
||||
⚠️ No description
|
||||
❌ Referenced skill "skill-1" not found in skills/
|
||||
✅ Directory structure correct
|
||||
⚠️ No README.md
|
||||
⚠️ No LICENSE file
|
||||
```
|
||||
|
||||
**Report:**
|
||||
|
||||
```txt
|
||||
Errors (1):
|
||||
1. plugin.json references "skill-1" but skills/skill-1.md doesn't exist
|
||||
|
||||
Warnings (3):
|
||||
1. plugin.json missing description field
|
||||
2. README.md not found - add documentation
|
||||
3. LICENSE file missing - add if distributing publicly
|
||||
|
||||
Info (0):
|
||||
None
|
||||
|
||||
Score: 5/10 - Fix errors, address warnings
|
||||
```
|
||||
|
||||
## Validation Rules
|
||||
|
||||
### Severity Levels
|
||||
|
||||
**Error (Must Fix):**
|
||||
|
||||
- Invalid YAML/JSON syntax
|
||||
- Missing required fields
|
||||
- Referenced files don't exist
|
||||
- TODOs in production code
|
||||
- Security issues in hooks
|
||||
- Invalid semantic version
|
||||
|
||||
**Warning (Should Fix):**
|
||||
|
||||
- Missing recommended fields
|
||||
- No triggers (skill won't auto-activate)
|
||||
- Missing documentation sections
|
||||
- Generic/vague naming
|
||||
- No examples
|
||||
- No license (public distribution)
|
||||
|
||||
**Info (Consider):**
|
||||
|
||||
- Could improve clarity
|
||||
- Additional documentation helpful
|
||||
- Consider progressive disclosure (long skills)
|
||||
|
||||
### Common Issues
|
||||
|
||||
#### Generic Naming
|
||||
|
||||
```txt
|
||||
❌ my-helper
|
||||
❌ utils-tool
|
||||
❌ component-stuff
|
||||
|
||||
✅ shadcn-component-generator
|
||||
✅ drizzle-schema-generator
|
||||
✅ tanstack-query-hook
|
||||
```
|
||||
|
||||
#### Missing Triggers
|
||||
|
||||
```yaml
|
||||
❌ Missing entirely
|
||||
|
||||
✅ triggers:
|
||||
keywords: [specific, technical, terms]
|
||||
patterns: ["regex.*patterns"]
|
||||
```
|
||||
|
||||
#### TODOs in Production
|
||||
|
||||
```markdown
|
||||
❌ ## Feature X
|
||||
TODO: Implement this later
|
||||
|
||||
✅ ## Feature X
|
||||
Complete implementation
|
||||
```
|
||||
|
||||
#### Vague Descriptions
|
||||
|
||||
```txt
|
||||
❌ "Helps with things"
|
||||
❌ "Utility for stuff"
|
||||
|
||||
✅ "Generate type-safe API clients from OpenAPI schemas"
|
||||
✅ "Validate React components for WCAG AAA accessibility"
|
||||
```
|
||||
|
||||
## Validation Output Format
|
||||
|
||||
```txt
|
||||
Component: [name]
|
||||
Type: [skill|command|agent|hook|plugin]
|
||||
Location: [file path]
|
||||
|
||||
Structure: [✅|⚠️|❌]
|
||||
Content: [✅|⚠️|❌]
|
||||
Best Practices: [✅|⚠️|❌]
|
||||
|
||||
Errors (must fix): [count]
|
||||
1. [description]
|
||||
2. [description]
|
||||
|
||||
Warnings (should fix): [count]
|
||||
1. [description]
|
||||
2. [description]
|
||||
|
||||
Info (consider): [count]
|
||||
1. [description]
|
||||
|
||||
Overall Score: [0-10]
|
||||
Status: [Ready|Needs work|Not ready]
|
||||
|
||||
Recommendations:
|
||||
- [specific action 1]
|
||||
- [specific action 2]
|
||||
```
|
||||
|
||||
## Validation Best Practices
|
||||
|
||||
1. **Validate Early**: Check during development, not just before publishing
|
||||
2. **Fix Errors First**: Don't publish with errors
|
||||
3. **Address Warnings**: They indicate best practice violations
|
||||
4. **Review Info**: Consider suggestions for improvements
|
||||
5. **Re-validate**: After fixes, validate again
|
||||
|
||||
## Integration
|
||||
|
||||
### With Hooks
|
||||
|
||||
Auto-validate before commits:
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "validate-before-commit",
|
||||
"event": "user-prompt-submit",
|
||||
"when": "before",
|
||||
"command": "claude-validate --skills",
|
||||
"filter": {
|
||||
"promptPattern": "commit"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### With Commands
|
||||
|
||||
Create validation command:
|
||||
|
||||
```markdown
|
||||
---
|
||||
description: Validate all skills in current plugin
|
||||
---
|
||||
|
||||
# Validate Skills
|
||||
|
||||
Run skill-validator on all SKILL.md files in current plugin.
|
||||
|
||||
## Usage
|
||||
|
||||
\`\`\`
|
||||
/validate-skills
|
||||
\`\`\`
|
||||
```
|
||||
|
||||
### With CI/CD
|
||||
|
||||
Add to GitHub Actions:
|
||||
|
||||
```yaml
|
||||
- name: Validate Skills
|
||||
run: claude-validate --all --strict
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
- [Claude Code Documentation](https://docs.claude.com/en/docs/claude-code)
|
||||
- [Anthropic Best Practices](https://docs.claude.com/en/docs/claude-code/best-practices)
|
||||
- [super-claude CREATING_SKILLS.md](../../docs/CREATING_SKILLS.md)
|
||||
Reference in New Issue
Block a user