Back to skills

Commands

Create a new Claude skill based on recent session workflow or conversation history

9 stars
0 votes
0 copies
0 views
Added 12/19/2025
developmentjavascriptpythongojavashellbashtestingdebugginggitapi

Works with

cliapi

Install via CLI

$openskills install yanmxa/cc-plugins
Download Zip
Files
create-command.md
---
argument-hint: [skill-name] or leave empty for interactive creation
description: Create a new Claude skill based on recent session workflow or conversation history
allowed-tools: [Write, Read, Glob, Bash, AskUserQuestion]
---

Create a new Claude skill that extends Claude's capabilities through modular instructions and supporting files. Skills are model-invoked (Claude autonomously decides when to use them) based on the description and context.

## Usage Examples

- `pdf-extractor` - Create a skill for extracting PDF content
- `api-testing` - Create a skill for API testing workflows
- Leave empty - Interactive mode with guided questions

## Skill Creation Process

1. **Determine Mode**: If skill name provided, use auto mode; otherwise, use interactive mode

2. **Interactive Mode** (no arguments):
   - Ask user about the skill's purpose and when it should be used
   - Ask what tools/capabilities the skill needs (Read, Write, Bash, etc.)
   - Ask if there are specific examples or workflows to include
   - Analyze recent conversation history to extract patterns

3. **Auto Mode** (skill name provided):
   - Analyze recent session messages and tool calls
   - Extract workflow patterns and common steps
   - Identify tools used and create appropriate restrictions
   - Generate skill based on detected patterns

4. **Generate Skill Structure**:
   - Create skill directory: `~/.claude/skills/$1/`
   - Write `SKILL.md` with YAML frontmatter and instructions
   - Optionally create supporting files (`reference.md`, `examples.md`, `scripts/`)

5. **Verify and Test**:
   - Check YAML syntax validity
   - Verify file paths are correct (Unix-style forward slashes)
   - Confirm skill description is specific and includes activation triggers

## Skill Types

**Personal Skills**: `~/.claude/skills/skill-name/`
- Available across all projects
- For individual workflows

**Project Skills**: `./.claude/skills/skill-name/`
- Shared with team via git
- For project-specific expertise

## SKILL.md Template Structure

```yaml
---
name: skill-name
description: Clear description of WHAT this does AND WHEN to use it. Include specific keywords and triggers for discoverability.
allowed-tools: [List, Of, Tools]  # Optional: restrict to specific tools
---

# Skill Name

Brief overview of the skill's purpose.

## When to Use This Skill

- Specific scenario 1
- Specific scenario 2
- Clear trigger conditions

## Instructions

Step-by-step guidance for Claude:

1. **Step Name**: Detailed description of what to do
   - Sub-step or consideration
   - Expected outcome

2. **Next Step**: Continue with clear actions

## Examples

### Example 1: [Scenario Name]
```
[Code or command example]
```

### Example 2: [Another Scenario]
```
[Code or command example]
```

## Best Practices

- Guideline 1
- Guideline 2
- Common pitfalls to avoid

## Tool Usage

[If applicable, describe how to use specific tools effectively]

## Output Format

[If applicable, describe expected output format]
```

## Description Best Practices

**Poor**: "Helps with documents"
**Good**: "Extract text and tables from PDFs, fill forms, merge documents. Use when working with PDF files, document processing, or form automation."

**Poor**: "Testing tool"
**Good**: "Run automated API tests with request/response validation. Use when testing REST endpoints, validating API responses, or debugging HTTP requests."

## Interactive Questions

When in interactive mode, ask:

1. **Purpose Question**:
   - Header: "Skill Purpose"
   - Question: "What should this skill help you accomplish?"
   - Options:
     - "Automate a repetitive task" - Streamline workflows you do often
     - "Add domain expertise" - Provide specialized knowledge in a field
     - "Integrate external tools" - Connect with APIs, CLIs, or services
     - "Improve code quality" - Review, test, or refactor code

2. **Activation Question**:
   - Header: "When to Use"
   - Question: "When should Claude automatically invoke this skill?"
   - Options:
     - "Specific keywords" - Trigger on certain terms or phrases
     - "File patterns" - Activate for specific file types/extensions
     - "Task context" - Use when user requests certain operations
     - "Always available" - Let Claude decide based on context

3. **Tools Question** (multiSelect: true):
   - Header: "Required Tools"
   - Question: "Which tools should this skill have access to?"
   - Options:
     - "File operations" - Read, Write, Edit, Glob
     - "Shell commands" - Bash execution
     - "Web access" - WebFetch, WebSearch
     - "All tools" - No restrictions (don't set allowed-tools)

4. **Examples Question**:
   - Header: "Examples"
   - Question: "Should we extract examples from recent conversation?"
   - Options:
     - "Yes, use recent workflow" - Analyze and extract from history
     - "I'll provide examples" - Let me describe specific cases
     - "Skip examples for now" - Just create basic structure
     - "Include both" - Use history and let me add more

## Workflow Extraction Logic

When extracting from recent conversation:

1. **Identify Tool Patterns**:
   - Track frequently used tools (Read, Write, Bash, etc.)
   - Note file patterns (e.g., `**/*.py`, `*.md`)
   - Extract common commands or operations

2. **Detect Step Sequences**:
   - Find repeated action sequences
   - Group related operations together
   - Identify decision points or conditions

3. **Extract Examples**:
   - Capture actual commands run
   - Include file paths and patterns used
   - Preserve successful workflows

4. **Generate Instructions**:
   - Convert patterns into reusable steps
   - Replace specific values with placeholders
   - Add context and rationale

## Supporting Files

Optionally create additional files:

- `reference.md` - Detailed technical documentation
- `examples.md` - Additional usage examples
- `scripts/` - Utility scripts (Python, Bash, etc.)
- `templates/` - Reusable file templates

## Validation Checks

Before finalizing:

1. **YAML Frontmatter**:
   - Valid syntax (proper indentation, quotes)
   - Required fields present (name, description)
   - Tools list properly formatted

2. **Description Quality**:
   - Includes both WHAT and WHEN
   - Contains specific keywords for discoverability
   - Avoids vague terms like "helps with" or "tool for"

3. **Instructions Clarity**:
   - Steps are numbered and descriptive
   - Examples are concrete and runnable
   - Best practices are actionable

4. **File Paths**:
   - Use forward slashes (Unix style)
   - Absolute paths when needed
   - Verify directory exists

## Output Format

After creation, provide:

```
āœ… Skill created successfully: skill-name
   Location: ~/.claude/skills/skill-name/
   Files created:
   - SKILL.md
   - [reference.md if applicable]
   - [examples.md if applicable]

šŸ“ Next Steps:
   1. Review the skill description for clarity
   2. Test the skill by triggering its use case
   3. Refine based on actual usage
   4. Consider adding to project if team-relevant

šŸ” To use this skill:
   Just mention the use case naturally, and Claude will invoke it automatically
   Example: "Help me [skill use case]"
```

## Notes

- Skills are invoked automatically by Claude based on context, not by user commands
- Keep skills focused on ONE specific capability for better discoverability
- Test skills with team members before sharing project skills
- Use `allowed-tools` to restrict capabilities and improve security
- Skills can include scripts in any language (Python, Bash, JavaScript, etc.)
- Skills are loaded dynamically - no restart needed after creation

## Examples

```bash
# Interactive mode - guided creation
/claude:create-skill

# Auto mode - extract from recent PDF work
/claude:create-skill pdf-processor

# Auto mode - create testing skill
/claude:create-skill api-integration-tester

# Auto mode - create from Jira workflow
/claude:create-skill jira-automation
```

## Debugging Skills

If Claude doesn't use your skill:

1. Make description more specific with concrete keywords
2. Verify file exists at correct path: `ls -la ~/.claude/skills/skill-name/`
3. Check YAML syntax: `head -20 ~/.claude/skills/skill-name/SKILL.md`
4. Ensure skills don't overlap in scope
5. Test with explicit mention: "Use the [skill-name] skill to..."

## Skill Categories

Common skill categories to consider:

- **Document Processing**: PDF, DOCX, XLSX, PPTX manipulation
- **Testing & QA**: Automated testing, API validation, debugging
- **Integration**: External API/CLI integration, webhook handling
- **Code Quality**: Linting, formatting, review automation
- **Workflow Automation**: Git operations, CI/CD, deployment
- **Domain Expertise**: Security auditing, performance optimization, accessibility
- **Communication**: Report generation, documentation, status updates

Comments (0)

No comments yet. Be the first to comment!