skill-creator

SKILL.md

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:

  1. What technology/domain does this skill cover?
  2. What specific patterns or practices should be documented?
  3. Who will use this skill? (developers, AI agents, both?)
  4. 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:

  1. Reference it in a sample agent
  2. Verify trigger conditions work
  3. Ensure examples are accurate
  4. 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:

Inspiration:


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."

Weekly Installs
2
First Seen
Feb 25, 2026
Installed on
trae-cn2
codebuddy2
github-copilot2
codex2
kiro-cli2
kimi-cli2