Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add JasonLo/skill-sommelier --skill "ss-skill-craft"
Install specific skill from multi-skill repository
# Description
>-
# SKILL.md
name: ss-skill-craft
description: >-
Create, improve, and design Claude Code skills. Routes between three modes:
create (new skill from scratch), improve (fix quality issues in existing skills),
and design (architect multi-step workflow skills). Use when users want to create
a skill, turn a workflow into a skill, write a SKILL.md, improve skill quality,
fix frontmatter, audit skills, design workflow architecture, or structure
multi-step skills. Triggers on "create a skill", "make a skill", "turn this
into a skill", "new skill", "fix my skill", "improve skill quality", "skill
review", "audit skills", "design a workflow skill", "skill architecture",
"multi-step skill".
allowed-tools:
- Read
- Write
- Edit
- Glob
- Grep
- Bash
- Agent
Skill Craft
Create, improve, and design Claude Code skills.
Route Selection
Determine which mode to use based on user intent:
| Signal | Mode |
|---|---|
| "create", "make", "new", "turn this into" | Create |
| "improve", "fix", "review", "audit", "polish" | Improve |
| "design", "architect", "workflow", "multi-step", "structure" | Design |
If unclear, ask the user.
Mode: Create
Create a new skill from scratch or from conversation context.
Phase 1 β Capture Intent
- What should this skill enable Claude to do?
- When should this skill trigger? (what user phrases/contexts)
- What's the expected output format?
- Does the skill need supporting files (scripts/, references/)?
Exit: Clear answers to all four questions, confirmed by the user.
Phase 2 β Research
- Check
skills/for existing skills that overlap - If the skill involves external tools or APIs, research their documentation
- Note conventions from existing skills
Exit: No conflicts; sufficient domain knowledge.
Phase 3 β Write the SKILL.md
Follow repo conventions:
Required frontmatter:
All skills in this repo must use the
ss-prefix in their name.
---
name: ss-skill-name
description: >-
What the skill does AND when to trigger it. Be specific about trigger
phrases. Err on the side of "pushy" β Claude tends to under-trigger.
allowed-tools:
- Tool1
- Tool2
metadata: # optional
depends-on: ss-other-skill # space-delimited, only if this skill invokes others
---
Body structure:
1. Title β # Skill Name
2. When to Use β bullet list of trigger scenarios
3. When NOT to Use β bullet list with specific alternatives
4. Numbered phases β each with entry criteria, actions, exit criteria
5. Reference links β point to references/ for detailed content (keep under 500 lines)
Key principles:
- Imperative voice ("Run the command", not "You should run")
- All trigger info in description β it controls activation
- Only list tools the skill actually uses in allowed-tools
- Add metadata.depends-on if the skill invokes or delegates to other skills
- Self-contained: scripts in scripts/, references in references/
Exit: SKILL.md written and passes self-review.
Phase 4 β Test and Iterate
- Draft 3-5 test prompts that should trigger the skill
- Draft 2-3 negative prompts that should NOT trigger
- Review description against both sets
- Revise if gaps found
- Ask user to evaluate
Exit: User satisfied.
Phase 5 β Finalize
- Verify directory structure:
skills/<name>/SKILL.md+ optionalscripts/,references/ - Commit the new skill
Description Tips
- Start with what the skill does (verb phrase)
- Include specific trigger phrases users might say
- List related contexts
- Stay under 3 sentences
Bad: "Helps with Docker."
Good: "Convert Python scripts into production-ready Docker containers. Use when users need to containerize, create Dockerfiles, or package code. Triggers on Docker, container, Dockerfile, containerize."
Mode: Improve
Review and fix quality issues in existing SKILL.md files.
Phase 1 β Select Target
- If user specifies a skill, use that
- Otherwise, list all skills in
skills/and ask - To audit all: iterate through each
Phase 2 β Review
Check against this rubric:
Critical (MUST fix β blocks loading):
- Missing name or description in frontmatter
- Invalid YAML syntax
- Referenced files that don't exist
Major (MUST fix β degrades effectiveness):
- Weak/vague description β Claude won't trigger
- No allowed-tools declared
- Missing "When to Use" / "When NOT to Use"
- Second person instead of imperative voice
- SKILL.md over 500 lines without references/
- Phases not numbered or missing exit criteria
Minor (evaluate before fixing):
- Style preferences that don't affect functionality
- Optional enhancements with unclear benefit
Phase 3 β Fix
- Fix all critical issues immediately
- Fix all major issues
- For minor: only fix if genuinely improves the skill
Phase 4 β Verify
- Re-read the modified SKILL.md
- Re-run checklist β all critical/major resolved
- Verify referenced files still exist
Phase 5 β Report
## Skill Review: <name>
**Issues found:** X critical, Y major, Z minor
**Issues fixed:** A critical, B major, C minor
**Issues skipped:** (list with rationale)
### Changes made:
- (bullet list)
Batch Mode
When auditing all skills:
1. Run Phase 2 on every skill
2. Present summary table: | Skill | Critical | Major | Minor | Status |
3. Ask which to fix
4. Run Phases 3-5 on selected
Mode: Design
Design multi-step workflow skills with reliable structure.
Essential Principles
-
Description is the trigger β The
descriptionfield is the ONLY thing that controls activation. Put keywords, use cases, and exclusions there. -
Numbered phases with entry/exit criteria β Unnumbered prose is unreliable.
-
Declare allowed-tools β Only tools actually used. Never Bash for operations with dedicated tools.
-
Progressive disclosure β Keep SKILL.md under 500 lines. Use
references/for details. One level deep only. -
Scalable tool patterns β Combine searches into one regex. Use batching for subagents. Apply the 10,000-file test.
-
Match specificity to fragility:
| Freedom | When | Example |
|---|---|---|
| Low (exact) | Fragile ops β migrations, crypto, destructive | "Run exactly this" |
| Medium (pseudo) | Preferred patterns with variation | "Use this template" |
| High (heuristic) | Variable β review, exploration, docs | "Analyze and suggest" |
Pattern Selection
| Pattern | When |
|---|---|
| Linear Pipeline (1β2β3βDone) | Same steps every time |
| Router (InputβA/B/C) | Multiple independent paths by input |
| Loop with Gate (1β2βPass?βDone / Fail?β1) | Iterative improvement |
| Phased with Safety Gates (1β2β[CONFIRM]β3) | Irreversible operations |
SKILL.md Template
---
name: ss-skill-name
description: >-
What. When. Trigger phrases.
allowed-tools:
- Tool1
metadata: # optional
depends-on: ss-other-skill # space-delimited
---
# Skill Name
One-line summary.
## When to Use
- Scenario 1
## When NOT to Use
- Scenario β use `alternative` instead
## Phase 1 β Name
**Entry:** preconditions
1. Action
**Exit:** what's true when done
## Phase 2 β Name
**Entry:** Phase 1 complete
1. Action
**Exit:** what's true when done
Anti-Patterns
- Unnumbered phases β leads to skipped steps
- Prose instructions β not actionable
- Tool sprawl β listing unused tools
- Reference chains β references pointing to references
- Monolithic SKILL.md β over 500 lines without references/
- Unbounded loops β always include exit condition
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.