Guides you through creating a new Claude Code skill following Anthropic's official skill structure and best practices.
Creates Claude Code skills with proper structure, YAML frontmatter, and best practices.
/plugin marketplace add rafaelkamimura/claude-tools/plugin install rafaelkamimura-claude-tools@rafaelkamimura/claude-toolsGuides you through creating a new Claude Code skill following Anthropic's official skill structure and best practices.
Output: "Let's create a new Claude Code skill!
What is the skill name? (max 64 characters, use kebab-case like 'api-builder' or 'data-analyzer'):"
WAIT for user's skill name input.
Store skill name as SKILL_NAME.
Output: "What does this skill do? Provide a complete description including what the skill does AND when Claude should use it (max 1024 characters):"
WAIT for user's description input.
Store description as SKILL_DESCRIPTION.
Use AskUserQuestion tool:
If user chooses Personal:
SKILL_DIR to /Users/nagawa/.claude/skills/${SKILL_NAME}If user chooses Project:
pwdSKILL_DIR to ${PWD}/.claude/skills/${SKILL_NAME}Use Bash tool to check if skill directory exists:
test -d "${SKILL_DIR}" && echo "exists" || echo "new"If result is "exists": Output: "Warning: Skill '${SKILL_NAME}' already exists at ${SKILL_DIR}. Overwrite? (yes/no):"
WAIT for user's response.
If user says no:
Output: "Now let's define the skill structure. I'll ask you a few questions."
Use AskUserQuestion tool:
Store result as SKILL_TYPE.
Output: "What tools will this skill need access to? (comma-separated, e.g., 'Read, Write, Bash, Task') Available tools: Read, Write, Edit, Bash, Grep, Glob, Task, AskUserQuestion, TodoWrite
Enter tools needed (or press Enter for all tools):"
WAIT for user's tools list input.
If user provides tools list:
TOOLS_LISTIf user provides empty input:
TOOLS_LIST to "All available Claude Code tools"Use Bash tool to create skill directory:
mkdir -p "${SKILL_DIR}"Based on gathered information, construct SKILL.md content:
---
name: ${SKILL_NAME}
description: ${SKILL_DESCRIPTION}
---
# ${SKILL_NAME}
## Purpose
${SKILL_DESCRIPTION}
## When to Use This Skill
Claude should invoke this skill when:
- [Auto-generate trigger conditions based on SKILL_TYPE and SKILL_DESCRIPTION]
## Available Tools
This skill has access to:
${TOOLS_LIST}
## Instructions
### Step 1: [First Major Action]
[Auto-generate steps based on SKILL_TYPE]
Use [appropriate tool] to [action]:
- [Detailed instruction following our patterns]
### Step 2: [Second Major Action]
[Continue with logical workflow steps]
## Examples
### Example 1: [Common Use Case]
**User Request**: "[Example request]"
**Skill Actions**:
1. [Action 1]
2. [Action 2]
3. [Result]
### Example 2: [Another Use Case]
**User Request**: "[Example request]"
**Skill Actions**:
1. [Action 1]
2. [Action 2]
3. [Result]
## Best Practices
- [Practice 1 based on skill type]
- [Practice 2 based on skill type]
- [Practice 3 based on skill type]
## Error Handling
- If [common error]: [Resolution]
- If [another error]: [Resolution]
## Constraints
- No network access (skills run in isolated environment)
- No runtime package installation
- Only pre-installed packages available
- Maximum instruction size: ~5000 tokens
## Notes
[Additional context or special considerations]
Present the generated SKILL.md content to user:
Output: "Generated SKILL.md content:
[Show first 50 lines of generated content]
...
Review this skill definition. Options:
Your choice:"
WAIT for user's response.
If user chooses 'edit': Output: "What changes would you like to make?" WAIT for user's editing instructions. Apply requested changes to SKILL.md content. Return to presenting content for review.
If user chooses 'regenerate': Return to Step 4.
If user chooses 'abort': Output: "Skill creation cancelled." Exit command.
Use Write tool to create SKILL.md:
${SKILL_DIR}/SKILL.mdOutput: "✓ Created ${SKILL_DIR}/SKILL.md"
Output: "Would you like to add additional resources to this skill?
Resources can include:
Add resources? (yes/no):"
WAIT for user's response.
If user says no: Skip to Step 9.
If user says yes:
Output: "What type of resource would you like to add?
Enter number (1-5):"
WAIT for user's choice.
If user chooses 1 (Additional markdown):
Output: "Enter filename (e.g., REFERENCE.md, EXAMPLES.md):"
WAIT for filename.
Output: "Enter the content for this file (or describe what it should contain):"
WAIT for content.
Use Write tool to create the file in ${SKILL_DIR}/[filename]
Output: "✓ Created ${SKILL_DIR}/[filename]"
Return to resource type selection.
If user chooses 2 (Python script):
Output: "Enter script filename (e.g., process_data.py):"
WAIT for filename.
Output: "Enter the Python code (or describe what the script should do):"
WAIT for code content.
Use Write tool to create the script in ${SKILL_DIR}/[filename]
Use Bash tool to make script executable:
chmod +x "${SKILL_DIR}/[filename]"If user chooses 3 (JSON schema):
Output: "Enter schema filename (e.g., config-schema.json):"
WAIT for filename.
Output: "Enter the JSON schema content:"
WAIT for schema content.
Use Write tool to create the schema in ${SKILL_DIR}/[filename]
Output: "✓ Created ${SKILL_DIR}/[filename]"
Return to resource type selection.
If user chooses 4 (Template file):
Output: "Enter template filename (e.g., template.txt):"
WAIT for filename.
Output: "Enter the template content:"
WAIT for template content.
Use Write tool to create the template in ${SKILL_DIR}/[filename]
Output: "✓ Created ${SKILL_DIR}/[filename]"
Return to resource type selection.
If user chooses 5 (Done): Proceed to Step 9.
Use Bash tool to list skill directory contents:
ls -lh "${SKILL_DIR}"Use Read tool to read the created SKILL.md file to validate:
${SKILL_DIR}/SKILL.mdPerform validation checks:
If validation fails: Output: "Validation issues found: [list issues]" Output: "Fix issues? (yes/no):" WAIT for user's response. If yes, fix issues and re-validate.
If validation passes: Output: "✓ Skill structure validated successfully"
Output: "Skill created successfully at: ${SKILL_DIR}
To use this skill in Claude Code, invoke it with: ``` /skill ${SKILL_NAME} ```
Or reference the skill documentation: ```bash cat ${SKILL_DIR}/SKILL.md ```
Would you like to test invoking the skill now? (yes/no):"
WAIT for user's response.
If user says yes: Output: "Attempting to invoke skill..."
Use Skill tool:
${SKILL_NAME}Output: "Skill invoked. Check the output above to verify it's working correctly."
If user says no: Output: "Skill creation complete!"
If SKILL_SCOPE is "Project":
Use Bash tool to check if in git repository:
git rev-parse --is-inside-work-tree 2>/dev/null || echo "not-git"If result is not "not-git": Output: "This is a project-specific skill in a git repository. Would you like to commit the skill to version control? (yes/no):"
WAIT for user's response.
If user says yes: Use Bash tool to stage skill directory:
git add "${SKILL_DIR}"Use Bash tool to create commit:
Add new Claude Code skill for ${SKILL_TYPE}
${SKILL_DESCRIPTION}"`
Output: "✓ Skill committed to git repository"
Output: "
Skill Name: ${SKILL_NAME} Type: ${SKILL_TYPE} Scope: ${SKILL_SCOPE} Location: ${SKILL_DIR}
Files Created: [List all files created]
Next Steps:
Documentation:
Skill creation complete!"
### Step 1: Understand Requirements
Analyze user's request for code generation needs.
### Step 2: Design Structure
Plan the code architecture and file organization.
### Step 3: Generate Code
Use Write tool to create necessary files with generated code.
### Step 4: Validate Output
Review generated code for correctness and best practices.
### Step 1: Gather Files
Use Read/Grep tools to collect files for analysis.
### Step 2: Perform Analysis
Analyze code structure, patterns, and potential issues.
### Step 3: Generate Report
Create detailed analysis report with findings.
### Step 4: Provide Recommendations
Suggest improvements and next steps.
### Step 1: Load Data
Use Read tool to load input data files.
### Step 2: Process Data
Transform, filter, or aggregate data as needed.
### Step 3: Generate Output
Use Write tool to save processed results.
### Step 4: Validate Results
Check output data for correctness and completeness.
### Step 1: Analyze Code
Read and understand code structure for testing.
### Step 2: Generate Tests
Create comprehensive test cases.
### Step 3: Run Tests
Use Bash tool to execute test suite.
### Step 4: Debug Failures
Analyze and fix any test failures.
### Step 1: Analyze Codebase
Use Grep/Read tools to understand code structure.
### Step 2: Generate Documentation
Create comprehensive documentation.
### Step 3: Format Output
Use proper markdown formatting and structure.
### Step 4: Validate Documentation
Ensure documentation is complete and accurate.
### Step 1: Define Workflow Steps
Break down automation into clear steps.
### Step 2: Execute Tasks
Use appropriate tools to perform each step.
### Step 3: Handle Errors
Implement error handling and recovery.
### Step 4: Report Results
Provide summary of automation results.
~/.claude/skills/.claude/skills//create-skillGuided skill creation with brainstorming and TDD methodology. Triggers: new skill, create skill, skill creation, start skill, build skill, add skill, write skill Use when: starting a new skill from scratch, need guided brainstorming for skill design, want structured workflow for skill development DO NOT use when: evaluating existing skills - use /skills-eval instead. DO NOT use when: testing existing skills - use /test-skill instead. DO NOT use when: improving skill architecture - use modular-skills skill. Use this command to create any new skill. Brainstorming is recommended.