| name | create-skill-from-workflow |
| description | Turn what we just did into a reusable skill. Captures the current workflow as a new SKILL.md file. |
| disable-model-invocation | true |
| argument-hint | ["skill-name"] |
Create Skill from Workflow
Turn a workflow you just performed into a reusable SKILL.md file.
Usage
/create-skill-from-workflow <skill-name>
Procedure
Step 1: Identify the Workflow
Review the current conversation to identify:
- What task was just completed?
- What steps were taken (in order)?
- What decisions were made along the way?
- What tools/commands were used?
- Were there any gotchas or mistakes that should be avoided?
Ask the user if anything is unclear about the workflow scope.
Step 2: Determine Skill Properties
Ask or infer:
| Property | Question |
|---|
| Name | Use $ARGUMENTS as the skill name (kebab-case) |
| Description | One sentence: what does this skill do and when should it be used? |
| Model-invocable? | Should Claude auto-invoke this, or only when user asks? Default: user-only (disable-model-invocation: true) |
| Forked? | Should this run in an isolated context? Default: no (runs inline) |
| Arguments? | Does the skill need input? If so, what? |
Step 3: Extract the Steps
Convert the observed workflow into a structured procedure:
- Remove one-off decisions specific to this instance
- Generalize file paths and names into patterns
- Add decision points where the workflow could branch
- Include verification steps ("confirm X before proceeding")
- Add error handling ("if X fails, try Y")
Step 4: Write the SKILL.md
Create the file at .claude/skills/<skill-name>/SKILL.md:
---
name: [skill-name]
description: [one-sentence description]
disable-model-invocation: [true/false]
argument-hint: [argument description, if needed]
---
# [Skill Title]
[Brief description of what this skill does and when to use it.]
## Usage
`/[skill-name] [arguments if any]`
## Procedure
### Step 1: [Name]
[Instructions...]
### Step 2: [Name]
[Instructions...]
[...continue for all steps]
Step 5: Verify the Skill
- Check that the file exists at the correct path
- Confirm the skill name doesn't conflict with existing skills
- Tell the user: "The skill is now available as
/[skill-name]. Try invoking it to test."
Tips for Good Skills
- Be specific: "Run
npm test" is better than "run tests"
- Include the WHY: Explain why each step matters
- Add escape hatches: What should the user do if a step fails?
- Keep it focused: One skill = one workflow. Don't combine unrelated tasks.
- Use $ARGUMENTS: If the skill needs input, reference
$ARGUMENTS in the instructions