
skill-creator
by Dsantiagomj
SKILL.md
name: skill-creator description: > Guides creation of new skills following dsmj-ai-toolkit v2.0 format with validation. Trigger: When creating new skills, when user says "create skill", when adding domain knowledge, when documenting patterns, when building skill for framework or technology. tags: [meta, skill-creation, validation, templates, workflow] author: dsmj-ai-toolkit metadata: version: "1.0" last_updated: "2026-01-17" category: meta auto_invoke: "Creating new skills or documenting patterns" stack_category: meta progressive_disclosure: true references:
- name: Skill Template url: ../../TEMPLATE.md type: local
- name: Skill Guide url: ../../GUIDE.md type: local
Skill Creator - Skill Development Workflow
Interactive guide for creating high-quality skills following v2.0 format standards
When to Use This Skill
Use this skill when:
- Creating a new skill for a framework, library, or technology
- Documenting domain knowledge (security, accessibility, performance)
- Building meta skills for workflow or process guidance
- User explicitly says "create a skill" or "add skill for X"
- Need to standardize patterns across the project
Don't use this skill when:
- Skill already exists (check skills/ directory first)
- Pattern is trivial or one-off use
- Better suited as agent documentation
- Content belongs in README or project docs
Critical Decision: Do You Need a Skill?
Before creating, validate the need:
✅ Create a Skill When:
- Reusable patterns: Used across multiple files/components
- Framework-specific: Technology requires specific patterns (React, Next.js, tRPC)
- Complex workflows: Multi-step processes need guidance
- Domain expertise: Security, accessibility, performance best practices
- Decision frameworks: Architectural choices with tradeoffs
❌ Don't Create a Skill When:
- Already exists: Check
skills/directory first - One-off task: Only used once, no reuse value
- Trivial pattern: Self-explanatory or widely known
- Project-specific: Belongs in project docs, not toolkit
- Better as agent: Workflow belongs in agent, not skill
Skill Creation Workflow
Phase 1: Requirements Gathering
Ask yourself:
- What technology/domain does this skill cover?
- What specific patterns or practices should be documented?
- Who will use this skill? (developers, AI agents, both?)
- What's the scope? (narrow focus vs broad overview)
Determine category:
stack/- Framework or library specific (React, Django, Docker)domain/- Cross-cutting concerns (security, testing, performance)meta/- Toolkit workflows (skill creation, context monitoring)
Choose name:
- Generic:
{technology}(typescript, prisma, docker) - Domain:
{concern}(security, performance, accessibility) - Workflow:
{action}-{target}(database-migrations, api-design)
Phase 2: Structure Creation
Directory structure:
skills/{category}/{skill-name}/
├── SKILL.md (required)
├── references/ (optional - detailed guides)
│ ├── advanced-patterns.md
│ └── best-practices.md
└── assets/ (optional - templates, schemas)
└── template.example
Create directory:
mkdir -p skills/{category}/{skill-name}
Phase 3: YAML Frontmatter
Required fields:
---
name: skill-name
description: >
Brief description of what this skill covers (1-2 sentences).
Trigger: When [condition 1], when [condition 2], when [condition 3].
tags: [tag1, tag2, tag3, tag4]
author: dsmj-ai-toolkit
metadata:
version: "1.0"
last_updated: "YYYY-MM-DD"
category: stack|domain|meta
auto_invoke: "When working with [technology]"
stack_category: frontend|backend|database|devops|meta
progressive_disclosure: true
references:
- name: Reference Name
url: ./references/file.md
type: local
---
Validation checklist:
- Name is lowercase, hyphen-separated
- Description includes "Trigger:" clause with 3+ conditions
- Tags are relevant and specific (5-10 tags)
- Category matches directory path
- Last updated is current date
- References use local paths only
Phase 4: Content Sections
Required sections (in order):
1. Title & Tagline
# Skill Name - One-Line Purpose
**Brief tagline describing what this skill provides**
2. When to Use This Skill
## When to Use This Skill
**Use this skill when**:
- Specific scenario 1
- Specific scenario 2
- Specific scenario 3
**Don't use this skill when**:
- Alternative scenario 1
- Alternative scenario 2
3. Critical Patterns
## Critical Patterns
### Pattern 1: Name
**When**: When to use this pattern
**Example**:
\`\`\`language
// Good example
\`\`\`
**Why**: Explanation of benefits
**Avoid**:
\`\`\`language
// Bad example
\`\`\`
**Why avoid**: Explanation of problems
Minimum: 3 critical patterns Format: Good vs Bad examples with explanations
4. Code Examples
## Code Examples
### Example 1: Common Use Case
\`\`\`language
// Complete, working example
\`\`\`
**Explanation**: What this does and why
Minimum: 3 complete examples Quality: Must be copy-paste ready
5. Anti-Patterns
## Anti-Patterns
### ❌ Anti-Pattern 1: Name
**Don't do this**:
\`\`\`language
// Bad code
\`\`\`
**Why it's bad**: Explanation
**Do this instead**:
\`\`\`language
// Good code
\`\`\`
Minimum: 3 anti-patterns
6. Quick Reference
## Quick Reference
| Pattern | Use Case | Example |
|---------|----------|---------|
| Pattern 1 | When to use | `code snippet` |
| Pattern 2 | When to use | `code snippet` |
7. Resources
## Resources
**Official Documentation**:
- [Doc Name](https://official-docs-url.com)
**Related Skills**:
- **skill-name**: When you need related functionality
**References** (if using progressive disclosure):
- [Advanced Patterns](./references/advanced-patterns.md)
- [Best Practices](./references/best-practices.md)
Phase 5: Validation
Before finalizing, check:
✅ Frontmatter:
- Valid YAML with all required fields
- "Trigger:" clause with 3+ conditions
- Correct category for directory path
- Current last_updated date
✅ Content:
- All required sections present
- 3+ critical patterns (good vs bad)
- 3+ code examples (working, copy-paste ready)
- 3+ anti-patterns with explanations
- Quick reference table
- Resources section with relevant links
✅ Quality:
- Code examples compile/work
- Explanations are clear and concise
- No generic placeholders
- Examples show real-world use cases
- Follows project conventions
✅ Scope:
- Focused on one technology/domain
- Not overlapping with existing skills
- 100-500 lines (concise, not encyclopedic)
- Uses progressive disclosure for details
Phase 6: Testing
Test the skill:
- Reference it in a sample agent
- Verify trigger conditions work
- Ensure examples are accurate
- Check references link correctly
Validation command:
# Check YAML frontmatter
head -n 30 skills/{category}/{skill-name}/SKILL.md
# Validate required sections
grep -E "^## (When to Use|Critical Patterns|Code Examples|Anti-Patterns|Quick Reference|Resources)" skills/{category}/{skill-name}/SKILL.md
Phase 7: Registration
Update catalog (if exists):
# skills/CATALOG.md
## Stack Skills
### {skill-name}
**Path**: `skills/stack/{skill-name}/SKILL.md`
**Description**: Brief description
**Tags**: tag1, tag2, tag3
Commit:
git add skills/{category}/{skill-name}
git commit -m "feat(skills): add {skill-name} skill
- Added {skill-name} skill for {technology/domain}
- Includes critical patterns and anti-patterns
- Provides code examples and quick reference
"
Code Examples
Example 1: Creating Stack Skill (React)
Input: "I need to create a skill for React Server Components"
Workflow:
1. Validate need: ✅ New React 19 patterns need documentation
2. Category: stack (framework-specific)
3. Name: react-server-components
4. Directory: skills/stack/react-server-components/
5. Frontmatter:
---
name: react-server-components
description: >
React Server Components patterns for Next.js 15+ applications.
Trigger: When using server components, when building RSC apps,
when optimizing React server rendering.
tags: [react, server-components, nextjs, rsc, streaming]
author: dsmj-ai-toolkit
metadata:
version: "1.0"
last_updated: "2026-01-17"
category: stack
auto_invoke: "When working with React Server Components"
stack_category: frontend
progressive_disclosure: true
---
6. Content sections (3+ patterns, 3+ examples, 3+ anti-patterns)
7. Validate checklist
8. Test with code-writer agent
9. Register in CATALOG.md
10. Commit with conventional format
Example 2: Creating Domain Skill (Caching)
Input: "Create a skill for caching strategies"
Workflow:
1. Validate need: ✅ Caching is cross-cutting, complex
2. Category: domain (applies across stack)
3. Name: caching-strategies
4. Directory: skills/domain/caching-strategies/
5. Frontmatter with domain category
6. Patterns: Cache invalidation, TTL strategies, cache-aside, write-through
7. Examples: Redis, in-memory, HTTP cache headers
8. Anti-patterns: Cache stampede, stale data, over-caching
9. Quick reference with strategy comparison table
10. Register and commit
Example 3: Creating Meta Skill (This One!)
Input: "Create a skill for skill creation"
Workflow:
1. Validate need: ✅ Need standardized skill creation process
2. Category: meta (toolkit workflow)
3. Name: skill-creator
4. Directory: skills/meta/skill-creator/
5. Content: Interactive workflow guide
6. Patterns: Decision frameworks, validation checklists
7. Examples: Stack skill, domain skill, meta skill creation
8. Quick reference: Frontmatter template, section checklist
9. Self-validates using its own checklist
10. Register and commit
Anti-Patterns
❌ Anti-Pattern 1: Creating Without Validation
Don't do this:
User: "Create a skill for authentication"
Agent: *immediately creates skill without checking*
Why it's bad: May duplicate existing security skill, wrong category
Do this instead:
1. Check: grep -r "authentication" skills/
2. Found: skills/domain/security/SKILL.md covers auth
3. Response: "Authentication patterns are in security skill. Want to enhance it?"
❌ Anti-Pattern 2: Generic, Vague Content
Don't do this:
## Critical Patterns
Use the framework correctly. Follow best practices.
Why it's bad: No actionable guidance, no examples
Do this instead:
## Critical Patterns
### Pattern 1: Component Composition
**When**: Building reusable UI components
**Example**:
\`\`\`tsx
// Good: Composition over inheritance
<Card>
<CardHeader>Title</CardHeader>
<CardContent>Content</CardContent>
</Card>
\`\`\`
**Why**: Flexible, composable, testable
❌ Anti-Pattern 3: Encyclopedic Content
Don't do this:
- 2000+ line skill file
- Covers every possible scenario
- Duplicate official docs
Why it's bad: AI can't load entire content, slow, unmaintainable
Do this instead:
- 100-500 lines main content
- Progressive disclosure for details
- Link to official docs for comprehensive coverage
❌ Anti-Pattern 4: Missing Trigger Conditions
Don't do this:
description: TypeScript skill for type safety
Why it's bad: AI doesn't know when to invoke
Do this instead:
description: >
TypeScript patterns for type-safe development.
Trigger: When writing TypeScript, when defining types,
when fixing type errors, when using generics.
❌ Anti-Pattern 5: No Code Examples
Don't do this:
## Critical Patterns
Use async/await for asynchronous operations.
Use proper error handling.
Why it's bad: No actionable examples to follow
Do this instead:
## Critical Patterns
### Async/Await with Error Handling
**Good**:
\`\`\`typescript
try {
const data = await fetchUser(id);
return data;
} catch (error) {
if (error instanceof NotFoundError) {
return null;
}
throw error;
}
\`\`\`
**Bad**:
\`\`\`typescript
const data = await fetchUser(id); // Unhandled errors
return data;
\`\`\`
Quick Reference
Frontmatter Template
---
name: skill-name
description: >
Brief description.
Trigger: When [cond1], when [cond2], when [cond3].
tags: [tag1, tag2, tag3]
author: dsmj-ai-toolkit
metadata:
version: "1.0"
last_updated: "YYYY-MM-DD"
category: stack|domain|meta
auto_invoke: "When working with X"
stack_category: frontend|backend|database|devops|meta
progressive_disclosure: true
---
Section Checklist
| Section | Required | Min Count | Format |
|---|---|---|---|
| Title & Tagline | ✅ | 1 | # + ** |
| When to Use | ✅ | 1 | Use when / Don't use when |
| Critical Patterns | ✅ | 3+ | Good vs Bad examples |
| Code Examples | ✅ | 3+ | Working code blocks |
| Anti-Patterns | ✅ | 3+ | ❌ with explanations |
| Quick Reference | ✅ | 1 | Table format |
| Resources | ✅ | 1 | Links + related skills |
Category Decision Tree
Is it framework/library specific?
├─ Yes → stack/
│ ├─ Frontend framework? → stack/{name}/
│ ├─ Backend framework? → stack/{name}/
│ ├─ Database/ORM? → stack/{name}/
│ └─ DevOps tool? → stack/{name}/
│
└─ No → Is it cross-cutting concern?
├─ Yes → domain/
│ ├─ Security/Auth? → domain/security/
│ ├─ Performance? → domain/performance/
│ ├─ Testing? → domain/testing-frameworks/
│ └─ Other domain? → domain/{name}/
│
└─ No → Is it toolkit workflow?
└─ Yes → meta/
├─ Skill creation? → meta/skill-creator/
├─ Context mgmt? → meta/context-monitor/
└─ Other meta? → meta/{name}/
Resources
Official Documentation:
Related Skills:
- context-monitor: When managing skill loading and context usage
- patterns: When documenting design patterns
Toolkit Resources:
- Skill Template - Complete skill template
- Skill Guide - Comprehensive skill creation guide
- Contributing Guide - Contribution requirements
Inspiration:
- Gentleman-Skills - Skill best practices
Remember
Creating a skill is about teaching AI the patterns it needs:
- ✅ Focus on what AI MUST know (critical patterns)
- ✅ Provide copy-paste examples (working code)
- ✅ Show good vs bad (anti-patterns)
- ✅ Keep it concise (100-500 lines)
- ✅ Validate thoroughly (use checklist)
"A skill is not documentation. It's actionable guidance."
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon