Back to Blog

skillify: The Skill That Builds Skills

I went through the leaked Claude Code source with Claude. We found a skill called skillify and reproduced it. It turns the session you just finished into a reusable skill — interview-driven, with required success criteria on every step.

claude-code skills ai workflow tdd

When the Claude Code repo leaked, I sat down with Claude and went through it together. Claude found a skill named skillify in the source, and we reproduced it from the source code.

I’ve been using it regularly ever since.

What it does

It’s a skill that turns the session you just finished into a reusable skill. You do the real work and at the end you type /skillify. It reads the session JSONL you just generated and walks you through writing the SKILL.md.

Why the naive shape doesn’t work

The interesting part is how it works. The naive shape is a one-shot generator: read the transcript, infer the steps, write the file. Plausible output, almost always wrong.

The things that make a skill fire correctly next time — the trigger phrases, the success criteria for each step, whether step 3 needs human confirmation, whether the whole thing should run inline or forked into its own context — don’t live in the transcript.

The interview

What is unique about it: skillify is an interview, not a generator. It starts with “I already know what you just did, now let’s nail it down.”

The input is the session JSONL — your messages, the tool calls, the places you corrected course — and every question gets routed through AskUserQuestion so you click instead of type. That forces the workflow into a sequence of decisions, not a freeform conversation, and it makes the floor of output quality high even for a lazy user.

Four rounds:

  1. Round 1 — name, description, goal.
  2. Round 2 — the steps, arguments, execution mode, save location.
  3. Round 3 — step by step: what each step produces, what proves it succeeded, whether to pause for human confirmation, what the hard rules are.
  4. Round 4 — nails the trigger phrases that will fire the skill next time.

Round 3 is where the value is

The required field is Success criteria. Every step has to declare what proves it’s done.

“Run the tests” is a step. “Tests pass green, zero skipped” is a success criterion. The first leaves Claude room to declare victory on a flaky pass. The second forces an artifact.

The output

A SKILL.md with proper frontmatter, numbered steps with a Success criteria line on each, and optional annotations for execution mode, artifacts, human checkpoints, and hard rules. The allowed-tools list is derived from the tools Claude actually used in the session you’re skillifying — so the permissions match the workflow.

Contract completeness

Memory captures facts. Skills capture workflows. Hooks capture enforcement.

So what does skillify actually give you that inline-Claude-writing doesn’t? Contract completeness. Specifically: the Success criteria field is required on every step. Without skillify, nothing stops inline-Claude from producing a SKILL.md whose steps say “Run the tests” with no acceptance criterion. The runtime would then declare victory on whatever plausible-looking output came back. skillify won’t let that file leave the interview — it enforces the criterion field structurally.

Same principle as TDD. skillify makes you write the test.


Open-sourced — Nitzan94/claude-code-skills/skills/skillify.