Claude Code Plugins

Community-maintained marketplace

Feedback

Create new skill for repeatable workflow. Use when user wants reusable skill pattern. Creates .claude/skills/[name]/SKILL.md.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name Skill Creating
description Create new skill for repeatable workflow. Use when user wants reusable skill pattern. Creates .claude/skills/[name]/SKILL.md.
version 1.0.0
dependencies
allowed-tools Read, Write, Bash

Skill Creating Skill

Create new skills for repeatable workflows that multiple agents can use.

Purpose

When user requests new skill for:

  • Repeatable workflow pattern (multi-step process)
  • Cross-agent functionality (multiple agents invoke same pattern)
  • Standardized procedures (code formatting, deployment, migration)

Difference from agents:

  • Skills: Reusable workflows that ANY agent can invoke via Skill tool
  • Agents: Specialized personas for specific repetitive tasks

Workflow

1. Parse Request

Extract:

  • Skill name: Gerund form, kebab-case (generating-commits, validating-migrations)
  • Purpose: What workflow it automates
  • Invocation trigger: When agents should use it

2. Design Skill Structure

Create .claude/skills/[name]/SKILL.md with frontmatter + instructions:

---
name: "[Skill Name]"
description: "[2-4 sentences: what it does, when to use, what it returns]"
version: "1.0.0"
dependencies: []
allowed-tools: ["Tool1", "Tool2"]
model: "haiku" or "sonnet"
---

# [Skill Name]

[Brief purpose statement]

## Workflow

### 1. [First Step]
[Instructions]

### 2. [Second Step]
[Instructions]

### 3. [Third Step]
[Instructions]

## Output Format
[What the skill returns to invoking agent]

## Success Criteria
- ✅ [Check 1]
- ✅ [Check 2]

3. Create Skill Directory

mkdir -p .claude/skills/[name]
# Create SKILL.md
# Create resources/ subdirectory if needed for templates/examples

4. Write Skill File

Include:

  • Clear invocation trigger: When should agents use this?
  • Numbered workflow: Step-by-step instructions
  • Output format: What does skill return?
  • Success criteria: How to verify completion?
  • Error handling: What to do if steps fail?

5. Return Summary

Created skill: .claude/skills/[name]/SKILL.md
Purpose: [one line]
Invoke: Skill("[name]", prompt="[context]")

Skill Design Principles

1. Atomic Workflow Each skill performs one clear workflow, not multiple unrelated tasks.

2. Agent-Invokable Skills are called by agents via Skill tool, not by users directly.

3. Reusable Multiple agents in different contexts should be able to use the skill.

4. Output-Focused Skills return structured output (files, summaries) to invoking agent.

5. Stateless Each invocation is independent, no persistent state between calls.

Example Skills

Example 1: Generating Commit Messages

---
name: "Generating Commit Messages"
description: "Generates conventional commit messages from git diffs. Use when creating commits. Returns formatted message."
version: "1.0.0"
dependencies: []
allowed-tools: ["Bash", "Read"]
model: "haiku"
---

# Generating Commit Messages

Generate conventional commit messages following project conventions.

## Workflow

### 1. Get Staged Changes
```bash
git diff --staged

2. Analyze Changes

Identify:

  • Files modified
  • Nature of changes (feat, fix, refactor, docs, etc.)
  • Scope (component/module affected)
  • Breaking changes

3. Generate Message

Format:

<type>(<scope>): <summary>

<body>

<footer>

Types: feat, fix, docs, style, refactor, test, chore

4. Return Message

Return formatted message to invoking agent.

Output Format

feat(auth): add JWT token validation

Implement JWT validation middleware with expiry checks.
Includes refresh token handling and error responses.

Breaking change: Auth header now required for protected routes

Success Criteria

  • ✅ Summary under 50 characters
  • ✅ Type matches conventional commit types
  • ✅ Body explains what and why
  • ✅ Breaking changes noted in footer if applicable

### Example 2: Validating Migrations
```markdown
---
name: "Validating Migrations"
description: "Validates database migration files for safety and conventions. Use before committing migrations. Returns validation report."
version: "1.0.0"
dependencies: []
allowed-tools: ["Read", "Grep", "Bash"]
model: "sonnet"
---

# Validating Migrations

Validate database migration files for safety, reversibility, conventions.

## Workflow

### 1. Find Migration Files
Locate new/modified migration files:
```bash
git diff --name-only | grep migrations/

2. Check Migration Safety

For each file, verify:

  • Naming convention: Timestamp prefix (YYYYMMDDHHMMSS_description)
  • Up migration exists: Forward migration defined
  • Down migration exists: Rollback migration defined
  • No data loss: DROP/DELETE operations commented or justified
  • Indexes defined: Performance considerations
  • Foreign keys: Referential integrity preserved

3. Test Migrations (if possible)

# Dry run if test DB available
npm run migrate:dry-run

4. Return Validation Report

Report format:

## Migration Validation Report

### migration_20250104_143022_add_auth.sql
- ✅ Naming convention
- ✅ Up migration
- ✅ Down migration
- ⚠️  DROP COLUMN without backup - RISKY
- ✅ Indexes defined
- ✅ Foreign keys preserved

Recommendation: Add backup step before DROP COLUMN

Output Format

Return validation report with:

  • ✅ Pass
  • ⚠️ Warning
  • ❌ Fail

Success Criteria

  • ✅ All migrations checked
  • ✅ Naming conventions validated
  • ✅ Reversibility verified
  • ✅ Risky operations flagged

### Example 3: Formatting Code
```markdown
---
name: "Formatting Code"
description: "Auto-formats code using project formatters. Use before commits. Returns formatting status."
version: "1.0.0"
dependencies: []
allowed-tools: ["Bash", "Read"]
model: "haiku"
---

# Formatting Code

Auto-format code using project's configured formatters.

## Workflow

### 1. Detect Formatters
Check for:
- prettier (JS/TS)
- black (Python)
- gofmt (Go)
- rustfmt (Rust)
- Other language-specific formatters

### 2. Run Formatters
```bash
# JS/TS
npx prettier --write .

# Python
black .

# Go
gofmt -w .

# Rust
cargo fmt

3. Check Results

git diff --stat

4. Return Status

Formatted 12 files:
- src/api/auth.js
- src/models/user.py
- tests/integration.go

Run git diff to review changes.

Output Format

Return:

  • Number of files formatted
  • List of changed files
  • Command to review changes

Success Criteria

  • ✅ Formatters detected and run
  • ✅ All files formatted
  • ✅ No formatter errors

## File Structure

.claude/skills/ ├── scout/ │ └── SKILL.md ├── plan/ │ └── SKILL.md ├── generating-commits/ │ └── SKILL.md ├── validating-migrations/ │ ├── SKILL.md │ └── resources/ │ └── safe-migration-checklist.md └── formatting-code/ └── SKILL.md


## Success Criteria

- ✅ Created `.claude/skills/[name]/SKILL.md`
- ✅ Frontmatter includes name, description, tools, model
- ✅ Workflow has numbered steps
- ✅ Output format defined
- ✅ Success criteria listed
- ✅ Error handling included

## Error Handling

**If skill purpose unclear:**
Ask user to clarify workflow before creating skill.

**If similar skill exists:**
Check `.claude/skills/` directory, suggest using/extending existing skill.

## Distinct from Other Skills

| Skill Creating | NOT Skill Creating |
|---------------|-------------------|
| Create reusable workflows | Create specialized agents (agent-creating) |
| Multi-agent patterns | One-time task execution |
| Standardized procedures | Project-specific implementations |
| Agent-invokable via Skill tool | User-invokable commands |