with one click
skillify
// Capture this session's repeatable process into a reusable skill. Call at end of a process you want to automate.
// Capture this session's repeatable process into a reusable skill. Call at end of a process you want to automate.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | skillify |
| description | Capture this session's repeatable process into a reusable skill. Call at end of a process you want to automate. |
| when_to_use | Use when the user wants to capture, save, or turn a session workflow into a reusable skill. Examples: '/skillify', 'capture this as a skill', 'turn this into a skill', 'save this workflow', 'make this repeatable' |
| allowed-tools | ["Read","Write","Edit","Glob","Grep","AskUserQuestion","Bash(mkdir:*)"] |
| user-invocable | true |
| disable-model-invocation | true |
| argument-hint | [description of the process you want to capture] |
| arguments | ["description"] |
You are capturing this session's repeatable process as a reusable skill.
You have the full conversation history available to you. Analyze it directly to understand what process was performed, what tools were used, and how the user steered you.
If a description was provided: The user described this process as: "$description"
Before asking any questions, analyze the conversation history to identify:
You will use AskUserQuestion to understand what the user wants to automate. Important notes:
Round 1: High level confirmation
Round 2: More details
.claude/skills/<name>/SKILL.md) -- for workflows specific to this project.claude/skills-global/<name>/SKILL.md) -- shared across all repos via symlink~/.claude/skills/<name>/SKILL.md) -- follows you across all reposRound 3: Breaking down each step For each major step, if it's not glaringly obvious, ask:
You may do multiple rounds of AskUserQuestion here, one round per step, especially if there are more than 3 steps or many clarification questions. Iterate as much as needed.
IMPORTANT: Pay special attention to places where the user corrected you during the session, to help inform your design.
Round 4: Final questions
Stop interviewing once you have enough information. IMPORTANT: Don't over-ask for simple processes!
Create the skill directory and file at the location the user chose in Round 2.
Use this format:
---
name: {{skill-name}}
description: {{one-line description}}
allowed-tools:
{{list of tool permission patterns observed during session}}
when_to_use: {{detailed description of when Claude should automatically invoke this skill, including trigger phrases and example user messages}}
argument-hint: "{{hint showing argument placeholders}}"
arguments:
{{list of argument names}}
context: {{inline or fork -- omit for inline}}
---
# {{Skill Title}}
Description of skill
## Inputs
- `$arg_name`: Description of this input
## Goal
Clearly stated goal for this workflow. Best if you have clearly defined artifacts or criteria for completion.
## Steps
### 1. Step Name
What to do in this step. Be specific and actionable. Include commands when appropriate.
**Success criteria**: ALWAYS include this! This shows that the step is done and we can move on. Can be a list.
IMPORTANT: see the next section below for the per-step annotations you can optionally include for each step.
...
Per-step annotations:
Direct (default), Task agent (straightforward subagents), Teammate (agent with true parallelism and inter-agent communication), or [human] (user does it). Only needs specifying if not Direct.Step structure tips:
[human] in the titleFrontmatter rules:
allowed-tools: Minimum permissions needed (use patterns like Bash(gh:*) not Bash)context: Only set context: fork for self-contained skills that don't need mid-process user input.when_to_use is CRITICAL -- tells the model when to auto-invoke. Start with "Use when..." and include trigger phrases. Example: "Use when the user wants to cherry-pick a PR to a release branch. Examples: 'cherry-pick to release', 'CP this PR', 'hotfix'."arguments and argument-hint: Only include if the skill takes parameters. Use $name in the body for substitution.Before writing the file, output the complete SKILL.md content as a yaml code block in your response so the user can review it with proper syntax highlighting. Then ask for confirmation using AskUserQuestion with a simple question like "Does this SKILL.md look good to save?" -- do NOT use the body field, keep the question concise.
After writing, tell the user:
/{{skill-name}} [arguments]