Automated summary
This workflow guides the creation of new skills for Claude Code, using a structured approach with adaptive questions, API research, and structural decisions.
Strengths
- Clear and adaptable process for creating skills of any complexity
- Includes automatic API research via MCP for up-to-date implementations
- Offers a router pattern for complex skills with multiple workflows
- Generates an organized directory structure (SKILL.md, workflows, references, templates, scripts)
Limitations
- Requires prior understanding of the SKILL.md format and core principles
- API research step depends on tool availability (Context7, WebSearch)
- Does not cover automatic validation of the generated skill
Use this skill when you need to create a new reusable capability for Claude Code, whether simple or complex.
Avoid using it for one-off tasks that don't require a reusable structure, or if you are unfamiliar with the Claude Code skill ecosystem.
Security analysis
SafeThe skill only uses benign shell commands (mkdir, cat) to create directories and files for skill scaffolding, with no destructive actions, exfiltration, or obfuscation. The operations are standard and legitimate for the task.
No concerns found
How this analysis is madeExamples
Build a skill that generates React component scaffolds based on best practices.Create a skill to automate my deployment workflow to AWS.I need a skill that helps me write unit tests for my Python project.Workflow: Create a New Skill
<required_reading> Read these reference files NOW:
- references/recommended-structure.md
- references/skill-structure.md
- references/core-principles.md
- references/use-xml-tags.md </required_reading>
If user provided context (e.g., "build a skill for X"): → Analyze what's stated, what can be inferred, what's unclear → Skip to asking about genuine gaps only
If user just invoked skill without context: → Ask what they want to build
Using question
Ask 2-4 domain-specific questions based on actual gaps. Each question should:
- Have specific options with descriptions
- Focus on scope, complexity, outputs, boundaries
- NOT ask things obvious from context
Example questions:
- "What specific operations should this skill handle?" (with options based on domain)
- "Should this also handle [related thing] or stay focused on [core thing]?"
- "What should the user see when successful?"
Decision Gate
After initial questions, ask: "Ready to proceed with building, or would you like me to ask more questions?"
Options:
- Proceed to building - I have enough context
- Ask more questions - There are more details to clarify
- Let me add details - I want to provide additional context
Step 2: Research Trigger (If External API)
When external service detected, ask using question: "This involves [service name] API. Would you like me to research current endpoints and patterns before building?"
Options:
- Yes, research first - Fetch current documentation for accurate implementation
- No, proceed with general patterns - Use common patterns without specific API research
If research requested:
- Use Context7 MCP to fetch current library documentation
- Or use WebSearch for recent API documentation
- Focus on 2024-2026 sources
- Store findings for use in content generation
Step 3: Decide Structure
Simple skill (single workflow, <200 lines): → Single SKILL.md file with all content
Complex skill (multiple workflows OR domain knowledge): → Router pattern:
skill-name/
├── SKILL.md (router + principles)
├── workflows/ (procedures - FOLLOW)
├── references/ (knowledge - READ)
├── templates/ (output structures - COPY + FILL)
└── scripts/ (reusable code - EXECUTE)
Factors favoring router pattern:
- Multiple distinct user intents (create vs debug vs ship)
- Shared domain knowledge across workflows
- Essential principles that must not be skipped
- Skill likely to grow over time
Consider templates/ when:
- Skill produces consistent output structures (plans, specs, reports)
- Structure matters more than creative generation
Consider scripts/ when:
- Same code runs across invocations (deploy, setup, API calls)
- Operations are error-prone when rewritten each time
See references/recommended-structure.md for templates.
Step 4: Create Directory
mkdir -p ~/.config/opencode/skills/{skill-name}
# If complex:
mkdir -p ~/.config/opencode/skills/{skill-name}/workflows
mkdir -p ~/.config/opencode/skills/{skill-name}/references
# If needed:
mkdir -p ~/.config/opencode/skills/{skill-name}/templates # for output structures
mkdir -p ~/.config/opencode/skills/{skill-name}/scripts # for reusable code
Step 5: Write SKILL.md
Simple skill: Write complete skill file with:
- YAML frontmatter (name, description)
<objective><quick_start>- Content sections with pure XML
<success_criteria>
Complex skill: Write router with:
- YAML frontmatter
<essential_principles>(inline, unavoidable)<intake>(question to ask user)<routing>(maps answers to workflows)<reference_index>and<workflows_index>
Step 6: Write Workflows (if complex)
For each workflow:
<required_reading>
Which references to load for this workflow
</required_reading>
<process>
Step-by-step procedure
</process>
<success_criteria>
How to know this workflow is done
</success_criteria>
Step 7: Write References (if needed)
Domain knowledge that:
- Multiple workflows might need
- Doesn't change based on workflow
- Contains patterns, examples, technical details
Step 8: Validate Structure
Check:
- [ ] YAML frontmatter valid
- [ ] Name matches directory (lowercase-with-hyphens)
- [ ] Description says what it does AND when to use it (third person)
- [ ] No markdown headings (#) in body - use XML tags
- [ ] Required tags present: objective, quick_start, success_criteria
- [ ] All referenced files exist
- [ ] SKILL.md under 500 lines
- [ ] XML tags properly closed
Step 9: Create Slash Command
cat > ~/.config/opencode/commands/{skill-name}.md << 'EOF'
---
description: {Brief description}
argument-hint: [{argument hint}]
allowed-tools: Skill({skill-name})
---
Invoke the {skill-name} skill for: $ARGUMENTS
EOF
Step 10: Test
Invoke the skill and observe:
- Does it ask the right intake question?
- Does it load the right workflow?
- Does the workflow load the right references?
- Does output match expectations?
Iterate based on real usage, not assumptions. </process>
<success_criteria> Skill is complete when:
- [ ] Requirements gathered with appropriate questions
- [ ] API research done if external service involved
- [ ] Directory structure correct
- [ ] SKILL.md has valid frontmatter
- [ ] Essential principles inline (if complex skill)
- [ ] Intake question routes to correct workflow
- [ ] All workflows have required_reading + process + success_criteria
- [ ] References contain reusable domain knowledge
- [ ] Slash command exists and works
- [ ] Tested with real invocation </success_criteria>
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/create-a-new-skill-mmbizjif/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/create-a-new-skill-mmbizjif' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/create-a-new-skill-mmbizjif/download' --output '.skill-downloads/create-a-new-skill-mmbizjif/SKILL.md.part' && mv '.skill-downloads/create-a-new-skill-mmbizjif/SKILL.md.part' '.skill-downloads/create-a-new-skill-mmbizjif/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
This file does not provide a usable name/description header for this native procedure. It remains available to download and inspect; use the manual method below.
Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/create-a-new-skill-mmbizjif/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.