manage-skills
Create and improve Claude Skills with proper structure, frontmatter, and best practices. Use when creating new skills, improving existing skills, refactoring skill content, or scaffolding skill files.
What this skill does
# Managing Claude Skills
## Before Creating a Skill
### Where does this skill belong?
**Firstloop shared skill** (default assumption):
- Skills for `core` or `monotemplate` plugins
- Improvements to existing shared skills
- → Create a GitHub issue in `firstloophq/claude-code-plugins` (see [meta-skill-management.md](meta-skill-management.md))
**Local project skill**:
- Project-specific workflows
- Custom skills for a single codebase
- User explicitly requests a "local skill"
- → Create directly in `.claude/skills/<skill-name>/SKILL.md`
### Quick Reference
| Scenario | Action |
|----------|--------|
| "Create a skill for monotemplate" | GitHub issue |
| "Improve the crud skill" | GitHub issue |
| "Add a docker skill to the plugin" | GitHub issue |
| "Create a local skill for this project" | Create in `.claude/skills/` |
| "Add a skill just for this repo" | Create in `.claude/skills/` |
## Creating Skills
### Quick Start
Create a skill by making a `SKILL.md` file in `.claude/skills/<skill-name>/`:
```markdown
---
name: my-skill-name
description: Brief description of what this skill does and when to use it.
---
# My Skill Name
## Instructions
[Your instructions here]
```
## Required Structure
Every skill needs:
1. **SKILL.md file** with YAML frontmatter
2. **name field**: lowercase letters, numbers, hyphens only (max 64 chars)
3. **description field**: what the skill does AND when to use it (max 1024 chars)
## Skill Directory Layout
```
.claude/skills/
└── my-skill/
├── SKILL.md # Main instructions (required)
├── reference.md # Additional details (optional)
└── scripts/ # Utility scripts (optional)
└── helper.py
```
## Writing the Description
The description is critical for skill discovery. Include:
- What the skill does
- When Claude should use it
- Key trigger words
**Good example:**
```yaml
description: Generate git commit messages by analyzing staged changes. Use when committing code, writing commit messages, or reviewing diffs.
```
**Bad example:**
```yaml
description: Helps with git stuff
```
## Skill Templates
### Template 1: Instructions-Only Skill
For guidance-based skills without code:
```markdown
---
name: code-review
description: Review code for bugs, style, and best practices. Use when reviewing pull requests, analyzing code quality, or checking for issues.
---
# Code Review
## Process
1. Read the code thoroughly
2. Check for bugs and edge cases
3. Verify style consistency
4. Suggest improvements
## Checklist
- [ ] No obvious bugs
- [ ] Error handling present
- [ ] Consistent naming
- [ ] No security issues
```
### Template 2: Skill with Scripts
For skills that include executable utilities:
```markdown
---
name: data-validation
description: Validate data files against schemas. Use when checking CSV, JSON, or config file formats.
---
# Data Validation
## Usage
Run validation:
```bash
python scripts/validate.py input.json schema.json
```
## Scripts
- **validate.py**: Check data against schema
- **format.py**: Auto-fix formatting issues
See [reference.md](reference.md) for schema format details.
```
### Template 3: Domain-Specific Skill
For skills with extensive reference material:
```markdown
---
name: api-integration
description: Integrate with the Acme API. Use when calling Acme endpoints, handling Acme webhooks, or processing Acme data.
---
# Acme API Integration
## Quick Reference
Base URL: `https://api.acme.com/v2`
Auth: Bearer token in header
## Common Operations
**Get user**: `GET /users/{id}`
**Create order**: `POST /orders`
For complete endpoint docs, see [endpoints.md](endpoints.md).
For authentication details, see [auth.md](auth.md).
```
## Best Practices
### Be Concise
Claude is smart. Only include information Claude doesn't already know.
### Use Progressive Disclosure
- Keep SKILL.md under 500 lines
- Put detailed reference material in separate files
- Link with relative paths: `[details](reference.md)`
### Set Appropriate Freedom
**High freedom** (guidelines):
```markdown
Review the code for potential issues and suggest improvements.
```
**Low freedom** (specific steps):
```markdown
Run exactly: `python scripts/migrate.py --verify --backup`
Do not modify the command.
```
### Include Workflows for Complex Tasks
```markdown
## Deployment Workflow
1. Run tests: `bun test`
2. Build: `bun run build`
3. If build fails, fix errors and repeat from step 1
4. Deploy: `bun run deploy`
```
## Common Mistakes to Avoid
- Using vague descriptions
- Including time-sensitive information
- Using Windows-style paths (use forward slashes)
- Offering too many options without a default
- Deeply nesting file references (keep one level deep)
## File Naming
Use descriptive, lowercase names with hyphens:
- `api-reference.md` (good)
- `APIREF.md` (bad)
- `scripts/validate-schema.py` (good)
- `scripts/vs.py` (bad)
## Testing Your Skill
1. Create the skill files
2. Start a new conversation
3. Make a request that should trigger the skill
4. Verify Claude uses the skill correctly
5. Iterate based on behavior
---
## Improving Existing Skills
### When to Improve a Skill
- Skill produces inconsistent results
- Instructions are ambiguous or unclear
- Missing edge cases or workflows
- Description doesn't trigger skill when expected
- Skill has grown too large and needs refactoring
### Improvement Process
1. **Read the existing skill** - Understand current structure and intent
2. **Identify the problem** - What's not working or missing?
3. **Make targeted changes** - Don't rewrite unless necessary
4. **Test the changes** - Verify improvements in a new conversation
### Common Improvements
#### Sharpen the Description
If the skill isn't triggering when expected, improve the description:
```yaml
# Before - too vague
description: Helps with database tasks
# After - specific triggers
description: Generate and run database migrations. Use when creating tables, modifying schemas, or updating database structure.
```
#### Add Missing Workflows
If Claude doesn't handle certain cases, add explicit workflows:
```markdown
## Edge Cases
### Empty Input
If input is empty, prompt user for required data before proceeding.
### Existing File Conflict
If file already exists, ask user whether to overwrite, merge, or abort.
```
#### Reduce Ambiguity
Replace vague instructions with specific ones:
```markdown
# Before - ambiguous
Review the code and suggest improvements.
# After - specific
Review the code for:
1. Security vulnerabilities (injection, XSS, auth issues)
2. Performance problems (N+1 queries, unnecessary loops)
3. Error handling gaps
For each issue found, provide:
- Location (file:line)
- Problem description
- Suggested fix
```
#### Split Large Skills
If a skill exceeds 500 lines, consider:
1. Moving reference material to separate files
2. Splitting into multiple focused skills
3. Using a reference folder structure:
```
my-skill/
├── SKILL.md # Core instructions only
└── reference/
├── api.md # API details
├── examples.md # Extended examples
└── errors.md # Error handling guide
```
#### Improve Examples
Add before/after examples to clarify expected behavior:
```markdown
## Examples
**Input**: User asks "format this JSON"
**Expected**: Format JSON with 2-space indentation, sorted keys
**Input**: User provides malformed JSON
**Expected**: Report specific syntax error location, suggest fix
```
### Refactoring Checklist
- [ ] Description clearly states what and when
- [ ] Instructions are unambiguous
- [ ] Edge cases are documented
- [ ] Examples demonstrate expected behavior
- [ ] Reference material is in separate files
- [ ] File is under 500 lines
## Additional Resources
- [Frontmatter Rules](frontmatter-rules.md) - Detailed YAML validation rules
- [Advanced Patterns](advanced-patterns.md) - Feedback loops, workflows, scripts
- [Meta Skill Management](meta-skill-management.md) - How to contribute imprRelated in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing — use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.