Distil a proven workflow from this conversation into a reusable Skill file.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add Surething-io/cockpit --skill skillify --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Skillify?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/surething-io-skillify)More formats (shields.io, HTML) on the badges page.
---
name: skillify
description: "Distil a proven workflow from this conversation into a reusable Skill file."
argument-hint: "[placement directory] [target to skillify]"
---
# Skillify
Abstract "the thing you just pulled off" into a reusable skill. This is an **analyze → extract → save** flow:
- **Step 1 is always analysis**: first decide whether the conversation / recent context holds knowledge worth distilling into a skill. If not, say so and stop — never force it.
- The placement directory and other args are **only needed at the final save step** — do NOT front-load a "where should it go?" question.
Applies when the user says: "abstract this into a skill", "write up what we just learned as a skill", "do this automatically next time", "skillify this", "capture this workflow".
Core goal: **turn a one-time success into a stable procedure, not copy a transient chat into a prompt.**
## Arguments (all optional; used only at save time)
- **Trailing text** (after `/skillify`) = the object / lead to skillify; if omitted, distil from recent context.
- **Placement directory `<skills-dir>`** = where the skill lands; the canonical source goes to `<skills-dir>/<slug>/SKILL.md`. **Only needed at the "save" step**; ask only if the user hasn't provided it — never ask before analysis.
## Step 1: Analyze — is there knowledge worth capturing (scan → gate)
Answer "**should this even be extracted**" first. Most candidates die here, not in the writing.
### 1a. Three-phase scan: don't miss invisible skills
Review what you just did, sweeping each phase once, asking one question per phase: **is there a "non-obvious action / judgement" here?**
| Phase | What to scan | Why it's easily missed |
|---|---|---|
| Discovery | How did you locate / trigger / diagnose the real problem? Which signal did triage use? | No visible deliverable — most often missed |
| Decision | What justified the judgement call at the sticking point? Any reusable criterion? | Treated as "intuition", not realized it can be codified |
| Solution | Is the execution skeleton / tool-combo / verification reusable? | Visible — easiest to fixate on |
The scan is about **breadth, anti-omission**: people naturally notice only "solution" (it has deliverables), while "discovery / decision" — the diagnosing and judging moves — are high-value yet invisible.
> The three phases are only for **scanning candidates**, not chapters in SKILL.md. The body should be organized by **failure mode / investigation action**, not by these three categories.
### 1b. The real gate: don't over-extract
For each candidate, all four must pass:
- [ ] **Recurs**: will you hit this kind of scenario again? (One-off → a note is enough, no skill.)
- [ ] **Non-obvious**: is there an action / judgement you "wouldn't know without looking it up"? (Obvious things aren't worth codifying.)
- [ ] **Cost**: is the cost of getting it wrong / missing it high?
- [ ] **Stable**: is the procedure stable, not bound to this session's transient context / data?
Missing "non-obvious" or "recurs" → basically drop it.
**If nothing passes the gate → tell the user "not worth a skill this time", explain why, and stop.** Do not force a deliverable, and do not ask for a placement directory at this step.
### 1c. Merge or split: the boundary question
If discovery / decision / solution **all** surface candidates in one scenario, decide whether they go into **one closed-loop skill** or **split into a combination**:
- **Will any single phase be invoked alone?** Yes → split; always entered from the top → lean merge.
- **Is the value inside a phase or at the handoff?** At the handoff (upstream expected-state / contract must reach downstream for verification) → merge; each phase self-contained, handoff carries no info → splittable.
- **Would merging make one unit carry orthogonal failure modes?** Yes (e.g. static breadth vs dynamic-reasoning depth) → split.
- **Does this phase run first in other problems too?** Fan-out ≥2–3 → split into a reusable leaf.
**Third state (need both)**: when the loop must stay intact but a phase needs depth / reuse, use **orchestrator + leaf** — one closed-loop skill holds the contract and verification, delegating orthogonal phases to reusable sub-skills.
**Default to one closed-loop skill.** Split only on a real signal (a phase reused by a second scenario, or attention spread too thin for depth).
### 1d. Classify: decides how to write, not whether to extract
| Type | Example | Skill focus |
|---|---|---|
| Investigation | pull sources → build timeline → locate issue | evidence sources, steps, output template |
| Debug | reproduce → red test → fix → verify | invariants, tests, acceptance |
| Tool-combo | chain multiple log/monitor/analysis tools | query order, correlation IDs |
| Habit/convention | directory structure, naming, placement | path rules, naming rules |
| Writing template | issue / PR / retro report | structure, tone, prohibitions |
**Do NOT** write one-off details into the skill (a transient session, a full specific chat, a temporary verification code, etc.).
## Step 2: Extract — distil stable principles and draft
> If 1c decided on a split or orchestrator + leaf, run Step 2 once for **each** skill to land (each its own directory).
### 2a. Distil stable principles
Break the experience into:
- **Trigger**: when this skill should be used
- **Input**: what the user might provide, what to ask when it's missing
- **Evidence sources / tools**: which sources, files, CLIs, logs to check
- **Steps**: the stable, reusable execution order
- **Output**: what to hand the user, or what artifact to create
- **Boundaries**: what NOT to do, when to stop / ask
- **Verification**: how to confirm the skill worked
Write principles, not a play-by-play.
### 2b. Choose a slug
Slug: lowercase, alphanumeric + hyphen, short and clear, verb/task- or topic-oriented. Before drafting, `ls <skills-dir>/` to avoid collisions and match existing naming style (when the save dir is known).
### 2c. Draft SKILL.md
Use the generic-compatible frontmatter:
```yaml
---
name: <slug-or-display-name>
description: "One line: what the skill does and when to use it."
argument-hint: "<optional, describe args>"
alwaysAllow: ["Bash"] # optional
requiredSources: [] # optional
---
```
Suggested body structure:
```markdown
# <Skill Name>
One-line goal.
## Trigger / When to use
## Preconditions
## Workflow / Steps
## Output format
## Boundaries & prohibitions
## Verification
## Examples
```
Writing style:
- Instructions must be executable, not vague.
- Don't write dead behaviors like "after reading, tell the user the rules are loaded".
- Action-type skills proceed by default; ask only when a key argument is missing.
- Keep concrete paths, APIs, command examples, but scrub one-off sensitive data.
- Match the existing style of the target skill library.
### 2d. Icon (optional)
- Prefer 3D / color / skeuomorphic style, consistent with existing visuals.
- Recommended source: Microsoft Fluent Emoji.
- Filename must be `icon.svg`/`icon.png`/`icon.jpg`/`icon.jpeg`, placed in the skill directory.
- No ad-hoc hand-drawn SVG stand-ins unless the user explicitly asks. If none fits, ask first — don't force one.
## Step 3: Save — land it in the given directory
**Only now do you need the placement directory `<skills-dir>`:**
- User gave a directory up front → use it directly.
- Not given → ask **now** where to put it; do not pick a directory on your own.
Conventions:
1. **One skill, one directory**: `<skills-dir>/<slug>/SKILL.md` (required) + optional `icon.svg` / `references/` / helper scripts.
2. **Never drop a SKILL.md directly in the `<skills-dir>` root**: even a single-file skill gets its own subdirectory.
3. **Keep helper data/scripts in the same directory** so the skill is self-contained.
```bash
mkdir -p <skills-dir>/<slug>
# write SKILL.md into that dir; include helper scripts/data if any
```
`<skills-dir>/` IS the canonical source — no need to symlink elsewhere.
## Verification
```bash
ls -la <skills-dir>/<slug>/
```
- [ ] `SKILL.md` exists, frontmatter valid, `name`/`description` non-empty
- [ ] Body non-empty with executable steps
- [ ] No hardcoded sensitive info (accounts, tokens, transient session ids)
- [ ] Slug doesn't collide with an existing one
## Output to the user
When done, briefly report: skill slug, source path (`<skills-dir>/<slug>/SKILL.md`), whether an icon was added, whether helper scripts/data are included. Don't paste the full SKILL.md unless asked.
## Key principles
- The user wants a **captured capability**, not a copied conversation.
- **Analysis first**: decide whether there's knowledge worth capturing; if not, stop — don't force it, and don't ask for a directory early.
- The canonical source always lives in `<skills-dir>/<slug>/`; even a single-file skill gets its own subdirectory.
- Distinguish fact / hypothesis / to-be-confirmed; don't hardcode a solution too early.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!