skill-maker
Generate new Claude Code skills from user descriptions and requirements. Use when the user wants to create a new skill, build custom capabilities, or generate skill templates. Asks clarifying questions to fill gaps before generating complete SKILL.md files following Claude Code standards.
When & Why to Use This Skill
The Skill Maker is a powerful meta-development utility designed to automate the creation of custom Claude Code skills. It transforms natural language descriptions into fully-functional, standardized SKILL.md files by guiding users through a structured discovery process. By proactively asking clarifying questions regarding tool permissions, workflows, and constraints, it ensures that generated skills are robust, follow best practices, and are ready for immediate deployment in personal or project-wide environments.
Use Cases
- Bootstrap new agent capabilities by describing a task in plain English and receiving a structured SKILL.md file.
- Standardize team workflows by generating consistent skill templates for code reviews, commit messaging, or documentation updates.
- Extend Claude's functionality for specific tech stacks by defining custom tool permissions and step-by-step execution logic.
- Reduce manual boilerplate when setting up project-specific automation tools and agentic instructions.
| name | skill-maker |
|---|---|
| description | Generate new Claude Code skills from user descriptions and requirements. Use when the user wants to create a new skill, build custom capabilities, or generate skill templates. Asks clarifying questions to fill gaps before generating complete SKILL.md files following Claude Code standards. |
| allowed-tools | Write, Read, Glob, AskUserQuestion |
Skill Maker
Generate well-structured Claude Code skills from natural language descriptions while ensuring quality through clarifying questions.
Instructions
When a user requests a new skill, follow this process:
Step 1: Analyze the Request
Identify what information has been provided:
- Skill purpose/functionality
- When it should be triggered
- Required tools
- Target audience (personal or team)
- Input/output expectations
- Edge cases or constraints
Step 2: Ask Clarifying Questions
Before generating any skill, you MUST ask questions to fill gaps. Common questions include:
If purpose is vague:
- "What specific problem should this skill solve?"
- "Can you give an example of when you'd use this skill?"
If scope is unclear:
- "Should this skill be personal (~/.claude/skills/) or project-wide (.claude/skills/)?"
- "What tools should this skill be allowed to use? (Read, Write, Bash, Grep, Glob, etc.)"
If workflow is missing:
- "What steps should the skill follow to complete its task?"
- "Are there any validation checks or error handling needed?"
If examples are missing:
- "Can you provide a sample input and expected output?"
- "What does success look like for this skill?"
If constraints exist:
- "Are there any file types, directories, or patterns to focus on or avoid?"
- "Should this skill integrate with any existing tools or workflows?"
Step 3: Generate the Skill
Once all gaps are filled, generate a complete skill with:
Valid YAML Frontmatter:
--- name: skill-name-here description: What it does + when to use it (max 1024 chars) allowed-tools: Tool1, Tool2, Tool3 ---Markdown Content Structure:
# Skill Display Name ## Instructions Clear step-by-step guidance for Claude. ## Examples Concrete input/output examples. ## Best Practices Tips for effective usage. ## Requirements Any dependencies or prerequisites.
Step 4: Save the Skill
Save the generated skill to the appropriate location:
- Personal:
~/.claude/skills/{skill-name}/SKILL.md - Project:
.claude/skills/{skill-name}/SKILL.md
Quality Checklist
Before finalizing any generated skill, verify:
-
namefield: lowercase, letters/numbers/hyphens only, max 64 chars -
descriptionfield: includes WHAT it does AND WHEN to use it -
allowed-toolsfield: only includes necessary tools - Instructions section: clear, actionable steps
- Examples section: realistic input/output samples
- No tabs in YAML (spaces only)
- Proper
---markers around frontmatter
Examples
Example Request:
"Create a skill that helps me write better commit messages"
Clarifying Questions to Ask:
- "Should this follow a specific convention like Conventional Commits?"
- "Should it analyze staged changes or existing commit history?"
- "Do you want it to suggest messages or validate existing ones?"
- "Should this be a personal skill or shared with your team?"
Example Generated Skill:
---
name: commit-helper
description: Generate and improve git commit messages following Conventional Commits standards. Use when committing code changes, reviewing commit history, or improving documentation.
allowed-tools: Bash, Read, Grep
---
# Commit Helper
Help write clear, consistent commit messages following Conventional Commits.
## Instructions
1. Analyze staged changes using `git diff --staged`
2. Identify the type of change (feat, fix, docs, refactor, test, chore)
3. Determine the scope (component, module, or area affected)
4. Generate a concise subject line (max 50 chars)
5. Add detailed body if changes are complex
6. Include breaking change footer if applicable
## Examples
Input: User has staged a bug fix in the authentication module
Output:
fix(auth): resolve token expiration handling
- Add refresh token logic before API calls
- Handle edge case where token expires mid-request
- Update error messages for clarity
## Best Practices
- Keep subject line under 50 characters
- Use imperative mood ("add" not "added")
- Reference issue numbers when applicable
- Separate subject from body with blank line
## Requirements
- Git must be installed and repository initialized
- Changes should be staged before running
Skill Naming Conventions
- Use lowercase letters, numbers, and hyphens only
- Keep names concise but descriptive
- Avoid generic names like "helper" or "tool"
- Use domain-specific prefixes when appropriate (e.g., "git-", "api-", "test-")
Common Tool Permissions
Reference for allowed-tools field:
| Tool | Use Case |
|---|---|
| Read | Reading files, configs, documentation |
| Write | Creating/updating files |
| Bash | Running commands, scripts, git operations |
| Grep | Searching file contents |
| Glob | Finding files by pattern |
| WebFetch | Fetching external documentation |
| AskUserQuestion | Gathering user input |
Best Practices
- Always ask questions first - Never assume missing requirements
- Keep skills focused - One skill = one capability
- Write specific descriptions - Claude uses these for discovery
- Include realistic examples - Show actual usage patterns
- Test before sharing - Verify the skill works as expected
- Document constraints - Note any limitations or requirements
Reference Documentation
For comprehensive implementation details, consult these reference documents:
reference.md - Complete clarification logic implementation including:
- Requirement categories and prioritization
- Question templates by category
- Gap analysis algorithms
- Skill generation templates (minimal, standard, comprehensive)
- Validation rules and quality checklists
- Common skill patterns (analyzer, generator, transformer, workflow)
requirements-framework.md - Structured requirements processing including:
- Three-tier requirement model (Mandatory, Important, Enhancement)
- Clarification engine with gap detection algorithms
- Validation gates (pre-generation and post-generation)
- Complete processing pipeline (Intake → Deliver)
- Question templates library
- Error handling and recovery strategies
- Quality metrics and scoring