home / skills / rshankras / claude-code-apple-skills / shared

shared skill

/skills/shared

This skill guides you to create well-structured Claude Code skills with modular templates, referencing best practices for organization and maintenance.

npx playbooks add skill rshankras/claude-code-apple-skills --skill shared

Review the files below or copy the command above to add this skill to your agents.

Files (4)
SKILL.md
1.5 KB
---
name: skill-creator
description: 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.
allowed-tools: [Read, Write, Glob, Grep, Bash]
---

# 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

Overview

This skill guides you through creating well-structured Claude Code skills with proper modularization, templates, and pragmatic best practices. It helps you design activation triggers, choose appropriate tool permissions, and organize content so skills remain maintainable and testable. Use it when starting a new skill or improving an existing one to ensure consistent, production-ready results.

How this skill works

The skill walks you through requirements gathering (purpose, activation, tools, scope, complexity) and produces a clear plan for file layout and content organization. It recommends when to keep a skill self-contained versus when to split content into focused reference files, and provides templates for metadata, activation criteria, workflow steps, examples, and output formats. It also includes a maintenance checklist and testing steps to validate the final skill.

When to use it

  • Creating a new Claude Code skill from scratch
  • Refactoring a large or unwieldy skill into modules
  • Defining activation triggers and allowed tool permissions
  • Designing clear output formats and examples
  • Adding checklists, templates, or reference materials

Best practices

  • Start by clarifying purpose, activation conditions, tools, scope, and complexity
  • Prefer small self-contained skills for simple tasks; modularize when content or checklists grow large
  • Include concrete examples: good vs bad code patterns and explicit fixes
  • Define allowed tools explicitly to match the task (Read/Write/Edit/Grep/Bash/WebFetch)
  • Provide a structured output template: strengths, issues with file:line, and prioritized recommendations

Example use cases

  • Create a simple greeting/responder skill that provides project context
  • Build a complex code-review skill with separate checklists, patterns, and examples files
  • Refactor an existing long skill by extracting patterns, templates, and references into dedicated files
  • Design a test-generator skill that requires Read, Write, and Bash permissions and clear activation triggers
  • Produce a UI audit skill that lists accessibility issues, code examples, and prioritized fixes

FAQ

How do I decide when to modularize a skill?

Modularize when the main file exceeds a few hundred lines, covers multiple topics, repeats content, or when findability and maintenance become difficult.

Which tools should I declare for a code-modifying skill?

Use Read, Write, and Edit at minimum; add Glob/Grep for file discovery and Bash if tests or scripts must run.