skill-creator

Guides you through creating well-structured Claude Code skills with proper modularization, templates, and best practices. Use when creating new skills or improving existing ones.

149 stars

Best use case

skill-creator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Guides you through creating well-structured Claude Code skills with proper modularization, templates, and best practices. Use when creating new skills or improving existing ones.

Teams using skill-creator should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/skill-creator/SKILL.md --create-dirs "https://raw.githubusercontent.com/rshankras/claude-code-apple-skills/main/skills/shared/skill-creator/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/skill-creator/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How skill-creator Compares

Feature / Agentskill-creatorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Guides you through creating well-structured Claude Code skills with proper modularization, templates, and best practices. Use when creating new skills or improving existing ones.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Skill Creator

Helps you create well-structured, modularized Claude Code skills with best practices.

## When This Skill Activates

Use this skill when the user:
- Wants to create a new skill
- Asks about skill structure or organization
- Wants to improve or refactor existing skills
- Needs help with skill modularization
- Asks about skill best practices

## Skill Creation Process

### 1. Understand Requirements

Ask the user:
- **Purpose**: What should this skill do?
- **Activation**: When should it activate?
- **Tools**: What tools will it need? (Read, Write, Edit, Glob, Grep, Bash, WebFetch, etc.)
- **Scope**: Is it project-specific or general-purpose?
- **Complexity**: Will it need reference files or can it be self-contained?

### 2. Plan the Skill Structure

Based on complexity:

**Simple Skills** (Self-contained):
```
.claude/skills/skill-name/
└── SKILL.md
```

**Complex Skills** (Modularized):
```
.claude/skills/skill-name/
├── SKILL.md                  # Main skill definition
├── reference-1.md           # Supporting reference
├── reference-2.md           # Additional reference
└── examples.md              # Code examples/templates
```

### 3. Create the Main SKILL.md

The main SKILL.md should include:

#### Front Matter (Required)
```yaml
---
name: skill-name
description: Brief description of what the skill does and when to use it
allowed-tools: [Read, Write, Edit]
---
```

**Front Matter Fields:**
- `name`: kebab-case skill name (e.g., `code-reviewer`, `ui-audit`)
- `description`: 1-2 sentences describing the skill and when to use it
- `allowed-tools`: Array of tools the skill can use

**Common Tool Combinations:**
- **Read-only analysis**: `[Read, Glob, Grep]`
- **Code modification**: `[Read, Write, Edit]`
- **Full access**: `[Read, Write, Edit, Glob, Grep, Bash]`
- **Web research**: `[Read, Glob, Grep, WebFetch]`

#### Main Content Structure

```markdown
# Skill Name

Brief description of what this skill does.

## When This Skill Activates

Use this skill when the user:
- [Specific trigger 1]
- [Specific trigger 2]
- [Specific trigger 3]

## Process/Workflow

### 1. Step One
- Instructions for first step
- What to check or do
- Expected outputs

### 2. Step Two
- Instructions for second step
- References to supporting files if needed

### 3. Output Format

How to present results to the user.

## References

Links to relevant documentation, files, or resources.
```

### 4. Create Supporting Reference Files

For complex skills, create modular reference files:

**When to Modularize:**
- Main SKILL.md exceeds 300-400 lines
- Contains extensive checklists or examples
- Has multiple distinct topics/categories
- Would benefit from focused reference materials

**Common Reference File Types:**
- **Checklists**: `checklist.md`, `review-checklist.md`
- **Patterns**: `patterns.md`, `anti-patterns.md`
- **Examples**: `examples.md`, `templates.md`
- **Quick References**: `quick-ref.md`, `commands.md`
- **Guidelines**: `guidelines.md`, `standards.md`

**Reference File Structure:**
```markdown
# Reference Topic

Brief description of this reference.

## Section 1

### Subsection
- Checklist items
- Code examples
- Explanations

## Section 2

[Content organized logically]

## References
[External links if needed]
```

### 5. Link References in Main SKILL.md

In the main SKILL.md, reference supporting files:

```markdown
### 2. Load Reference Materials

Before starting, familiarize yourself with these references:

- **patterns.md** - Common patterns and anti-patterns
- **examples.md** - Code examples and templates
- **checklist.md** - Comprehensive review checklist
```

## Skill Writing Best Practices

### Clear Activation Triggers

```markdown
## When This Skill Activates

Use this skill when the user:
- Asks for code review or quality check
- Mentions "best practices" or "refactoring"
- Wants to improve code quality
- Requests architecture review
```

### Actionable Instructions

```markdown
// ❌ Vague
- Check the code

// ✅ Specific
- Check for force unwrapping (!)
- Verify all optionals use safe unwrapping patterns
- Flag any instances for review with line numbers
```

### Examples and Templates

Always provide:
- ✅ Good examples (what to do)
- ❌ Bad examples (what to avoid)
- Explanations (why it matters)

```markdown
### Pattern Example

#### ❌ Anti-pattern
// Bad code example
let value = optional!

#### ✅ Good pattern
// Good code example
guard let value = optional else { return }

#### Why?
Force unwrapping crashes if nil. Guard provides safe unwrapping.
```

### Structured Output Formats

Provide clear output templates:

```markdown
## Output Format

Present findings in this structure:

### ✅ Strengths
- [List strengths]

### ⚠️ Issues Found
**[Category]**
**[Priority]: [File:Line]** - [Description]
// Current code
// Suggested fix
// Reason

### 📋 Recommendations
1. High priority items
2. Medium priority items
3. Low priority items
```

### Tool Selection

Choose appropriate tools:

| Task | Tools |
|------|-------|
| Reading code | `Read, Glob, Grep` |
| Modifying code | `Read, Write, Edit` |
| Running tests | `Read, Bash` |
| Web research | `WebFetch` |
| File operations | `Read, Write, Glob` |

### Checklists

Use checklists for systematic reviews:

```markdown
### Review Checklist

#### Category 1
- [ ] Check item 1
- [ ] Check item 2
- [ ] Check item 3

#### Category 2
- [ ] Check item 4
- [ ] Check item 5
```

## Example Skills

### Simple Skill Example

```yaml
---
name: greeting-responder
description: Responds to user greetings with helpful information about the project
allowed-tools: [Read]
---

# Greeting Responder

Provides helpful project context when users greet Claude.

## When This Skill Activates

Use this skill when the user:
- Says "hello", "hi", or similar greetings
- Asks "what can you help with?"

## Process

1. Greet the user warmly
2. Provide brief overview of the project
3. List 3-5 common tasks you can help with
4. Invite them to ask questions

## Example Output

"Hello! I can help you with this Swift/iOS project. Here are some things I can do:

- Review code for best practices
- Help implement new features
- Debug issues
- Refactor code
- Write tests

What would you like to work on?"
```

### Complex Skill Example

See the existing `coding-best-practices` or `ui-review` skills as examples of well-modularized complex skills.

## Skill Maintenance

### When to Refactor

Refactor a skill when:
- Main SKILL.md exceeds 400-500 lines
- Adding new content becomes difficult
- Multiple distinct topics exist
- Reference material is repeated
- Finding information takes too long

### How to Refactor

1. **Identify logical sections** in the main SKILL.md
2. **Extract sections** into focused reference files
3. **Update main SKILL.md** to reference new files
4. **Test the skill** to ensure references work
5. **Update descriptions** if scope changed

### File Organization

```
.claude/skills/skill-name/
├── SKILL.md                      # Main entry point
├── process.md                    # Detailed workflow
├── patterns/
│   ├── good-patterns.md
│   └── anti-patterns.md
├── references/
│   ├── checklist.md
│   └── examples.md
└── templates/
    └── output-template.md
```

## Testing Your Skill

After creating a skill:

1. **Verify metadata**: Check front matter is valid YAML
2. **Test activation**: Ensure description triggers appropriately
3. **Check references**: Verify all referenced files exist
4. **Run through workflow**: Follow the process end-to-end
5. **Validate output**: Ensure output format is clear and useful

## Common Pitfalls

### ❌ Avoid

- Vague activation criteria
- Missing tool permissions
- Overly complex single-file skills
- No examples or templates
- Unclear output formats
- Broken reference links

### ✅ Do

- Clear, specific activation triggers
- Appropriate tool selection
- Modularize complex skills
- Provide examples for everything
- Define structured output formats
- Keep references organized

## Skill Naming Conventions

**Name Format**: `kebab-case`

**Good Names:**
- `code-reviewer`
- `ui-audit`
- `test-generator`
- `api-analyzer`

**Bad Names:**
- `CodeReviewer` (PascalCase)
- `code_reviewer` (snake_case)
- `reviewer` (too vague)
- `cr` (too abbreviated)

## Templates

See the following reference files for templates:
- **skill-template.md** - Basic skill template
- **complex-skill-template.md** - Modularized skill template

## References

- [Claude Code Skills Documentation](https://docs.claude.com/claude-code/skills)
- Existing skills in `.claude/skills/` for examples
- This project's `coding-best-practices` and `ui-review` skills

## Notes

- Keep skills focused on a single purpose
- Use modularization for maintainability
- Provide clear examples and templates
- Test skills after creation
- Update skills as needs evolve

Related Skills

watchOS

149
from rshankras/claude-code-apple-skills

watchOS development guidance including SwiftUI for Watch, Watch Connectivity, complications, and watch-specific UI patterns. Use for watchOS code review, best practices, or Watch app development.

visionos-widgets

149
from rshankras/claude-code-apple-skills

visionOS widget patterns including mounting styles, glass/paper textures, proximity-aware layouts, and spatial widget families. Use when creating or adapting widgets for visionOS.

test-data-factory

149
from rshankras/claude-code-apple-skills

Generate test fixture factories for your models. Builder pattern and static factories for zero-boilerplate test data. Use when tests need sample data setup.

test-contract

149
from rshankras/claude-code-apple-skills

Generate protocol/interface test suites that any implementation must pass. Define the contract once, test every implementation. Use when designing protocols or swapping implementations.

tdd-refactor-guard

149
from rshankras/claude-code-apple-skills

Pre-refactor safety checklist. Verifies test coverage exists before AI modifies existing code. Use before asking AI to refactor anything.

tdd-feature

149
from rshankras/claude-code-apple-skills

Red-green-refactor scaffold for building new features with TDD. Write failing tests first, then implement to pass. Use when building new features test-first.

tdd-bug-fix

149
from rshankras/claude-code-apple-skills

Fix bugs using red-green-refactor — reproduce the bug as a failing test first, then fix it. Use when fixing bugs to ensure they never regress.

snapshot-test-setup

149
from rshankras/claude-code-apple-skills

Set up SwiftUI visual regression testing with swift-snapshot-testing. Generates snapshot test boilerplate and CI configuration. Use for UI regression prevention.

integration-test-scaffold

149
from rshankras/claude-code-apple-skills

Generate cross-module test harness with mock servers, in-memory stores, and test configuration. Use when testing networking + persistence + business logic together.

characterization-test-generator

149
from rshankras/claude-code-apple-skills

Generates tests that capture current behavior of existing code before refactoring. Use when you need a safety net before AI-assisted refactoring or modifying legacy code.

testing

149
from rshankras/claude-code-apple-skills

TDD and testing skills for iOS/macOS apps. Covers characterization tests, TDD workflows, test contracts, snapshot tests, and test infrastructure. Use for test-driven development, adding tests to existing code, or building test infrastructure.

webkit-integration

149
from rshankras/claude-code-apple-skills

WebKit integration in SwiftUI using WebView and WebPage for embedding web content, navigation, JavaScript interop, and customization. Use when embedding web content in SwiftUI apps.