opence-skill-creator
Learn how to create effective project skills following opence conventions.
When to Create a Skill
Create a skill during the compound phase when you identify:
- Repeatable workflows that can be encoded as instructions
- Recurring pitfalls or manual checks that need documentation
- Domain-specific knowledge that will be useful in future changes
Don't create a skill for one-off solutions or highly specific edge cases.
Quick Start
Use the CLI to create skills (recommended):
# Create a new skill
opence skill add api-testing --description "Guidelines for testing API endpoints"
# List all skills
opence skill list
# Show skill details
opence skill show api-testing
The CLI automatically:
- Creates proper directory structure
- Generates correct frontmatter for each tool
- Validates naming conventions
- Creates references/ and scripts/ directories
Skill Structure
.claude/skills/my-skill/
├── SKILL.md # Concise entry point (< 200 lines)
├── references/ # Detailed documentation
│ └── *.md # Extended guides, examples
└── scripts/ # Reusable code
└── *.sh, *.py # Helper scripts
SKILL.md: Keep concise. Include "When to use", key steps, and pointers to references/.
references/: Put detailed docs, long examples, API references here.
scripts/: Add reusable code that users can copy or execute.
Naming Rules
- Format: kebab-case (e.g.,
api-testing,deploy-prod) - Reserved: Don't use
opence-prefix (reserved for native skills) - Unique: Check with
opence skill listto avoid duplicates
Valid: api-testing, error-recovery, db-migration
Invalid: api testing (spaces), api_testing (underscores), opence-custom (reserved)
Writing Effective Descriptions
The description field determines when Claude automatically loads your skill. Write it carefully.
Good description patterns:
- Start with an action verb: Explains, Creates, Reviews, Validates, Deploys, Fixes
- Include keywords users naturally say
- List specific trigger scenarios
- Be specific but not overly narrow
Examples of good descriptions:
"Explains code with visual diagrams and analogies. Use when explaining how code works, teaching about a codebase, or when the user asks 'how does this work?'"
"Fix a GitHub issue following our coding standards. Use when working on issues or bugs."
"Research a topic thoroughly using multiple sources. Use for deep dives or comprehensive analysis."
Anti-patterns to avoid:
- Too abstract:
"Helps with development tasks"— Claude can't decide when to use it - Too specific:
"Fix the login button CSS on mobile Safari 15.4"— Won't match future requests - Missing scenarios:
"API testing utility"— No trigger context
Trigger phrase checklist:
- [ ] Does it include words users would naturally say?
- [ ] Would Claude know when to load it automatically?
- [ ] Is it distinct from other skills' triggers?
Next Steps
After creating a skill:
- Edit SKILL.md to add instructions and examples
- Add detailed docs to references/ if needed
- Add helper scripts to scripts/ if applicable
- Test the skill in actual usage
- Commit to version control
See references/ for detailed guidance on:
- Skill evaluation checklist — Four-question framework and "is it worth creating" criteria
- Directory structure and sizing
- Frontmatter formats for different tools
- Best practices and anti-patterns
Scan to join WeChat group