Skip to content
skills-driven-developmentskdd

SkDD: Skills-Driven Development

I accidentally named it SDD in October. Spec-Driven Development claimed that acronym. So: SkDD — the methodology I have been running in production since a git init at 1:54 AM.

·5 min read
SkDD: Skills-Driven Development

October 2025. 1:54 AM Pacific Time. I typed git init /ClaudeRecursiveSkills/ and something crystallized.

Not "I had an idea." Crystallized — the way a pattern you've been running unconsciously becomes visible because you finally named it.

I think I accidentally discovered SDD: "Skills-Driven Development." More soon.

Thariq
Thariq
@trq212

Claude Code Weekly Round Up A big week for shipping! Besides Haiku 4.5, we added support for Claude Skills, gave Claude a new tool for asking interactive questions, added an ‘Explore’ subagent, auto-background long running tasks and fixed several bugs.

Image
16
Reply

I called it SDD then. Spec-Driven Development later claimed that acronym, so I'm calling it SkDD now. That rename is more accurate anyway: the sk- prefix is on every AI API key, every SKILL.md file, every skillforge invocation. The methodology is named after its own primitive.

What happened at 1:54 AM

The repo I initialized that night was a single question: could an agent create skills that create other skills?

By 2:17 AM, three commits later, it had answered itself. A meta-skill called SkillForge had created QA-SkillForge. A skill-creator had created another skill-creator. The recursion went live, logged in .colony/registry.json with a field that read "can_create_meta_skills": "Yes".

The full story of that night is in I Woke Up Recursive. What matters here is the pattern it made visible: every time you build something with an AI agent that you might build again, you can forge it into a Skill. That Skill becomes callable by future agents, in future sessions, in future codebases.

That's SkDD in one sentence. The methodology has one job: make sure the build loop leaves something reusable behind.

The spec, the skillforge/ meta-skill, and the colony pattern are at github.com/zakelfassi/skills-driven-development. It's a recent extraction — SkDD was the pattern powering Forgeloop-kit from the beginning, embedded under the hood. If you didn't have Forgeloop installed in your repo, you never saw it. It deserved to be standalone.

The preflight question

SkDD adds one decision gate to every build loop:

Should this become a Skill?

If yes: you write a SKILL.md — a plain markdown file with a name, a description, and instructions for how to execute it. The agent finds it, loads it, runs it next time. If no: you build it and move on.

The question takes ten seconds. The compounding happens over months.

Skills fall into three types. Operational skills do the work — callable, discrete, reusable. blog-ship publishes a post end-to-end. whisper-local transcribes audio. newsletter-ops manages Buttondown drafts and blog mirrors. Meta skills create other skills; skill-creator is the archetype, a toolmaker that makes toolmakers. Composed skills chain multiple skills into a pipeline that is itself a skill — a voice note flows through whisper-local, feeds essay-lab, lands in blog-ship. The three types nest freely. A composed skill can invoke a meta-skill that forges a new operational skill mid-run.

That's not a hypothetical. The Colony was doing it at 3:29 AM.

What accumulates

Day 1 with SkDD: you write a blog post with an AI agent. 45 minutes, a lot of back-and-forth.

Day 10: you invoke blog-ship. Draft, humanize pass, hero image, MDX, git branch, PR — one shot.

Day 30: blog-ship gets called from inside other skills. The newsletter skill invokes it. The storyteller invokes it. You stopped thinking about the pipeline.

Day 90: the repo knows your publishing infrastructure better than you do. New agents onboard to it by reading the skill index. The codebase is more capable than when you started — not because you documented it, but because you forged it.

Specification is ephemeral. It describes what you want right now. Skills are durable — they encode what you know how to do, in a form that persists across agents, sessions, and models.

The repo does speak for itself. Forgeloop-kit is the open-source portable loop that runs SkDD. Three stages: kickoff, plan, build. The build stage has the preflight question baked in. Every task ends with a fork: implement and move on, or forge a Skill and carry it forward.

Where SkDD has been running

I exposed it indirectly in PaneForge before I named it. The pattern was already there — skills being forged mid-build, a growing library of reusable agent capabilities attached to the repo — but I hadn't written it down as a methodology.

The system running this blog has been on SkDD since January. Seven agents, each with access to a skill library covering publishing, newsletter operations, content calendar management, X distribution, transcript processing, research, and memory. Not a demo — the actual infrastructure I use every day.

The SKILL.md format is the primitive. Plain markdown. Any agent that reads files can use it. OpenClaw discovered it and built a loader. Forgeloop uses it. Claude Code picks it up via .claude/skills/. The format wasn't designed to be a standard — it became one because it was the simplest thing that worked.

SkDD vs. the alternatives

Vibe coding has no memory. You prompt, it ships, you prompt again, nothing accumulates.

Spec-driven development accumulates specs. Specs are input artifacts — they describe what you want, get consumed by the agent, then sit static.

SkDD accumulates capabilities. Skills are output artifacts, produced during the build and reusable by every subsequent agent. The difference is where value lands: in the conversation, or in the repo.

The sk- in SkDD is load-bearing. It's the prefix of AI API keys (sk-ant-, sk-proj-). It's the root of SKILL.md, skillforge, sync-skills. The methodology is named after what it produces, which is named after what it costs to call. There's a Skibidi joke in there somewhere. I'm leaving it alone.

Start here

Write a SKILL.md the next time you build something you might build again. Thirty days later, look at what accumulated.

Full methodology, the skillforge/ meta-skill, and the colony pattern: github.com/zakelfassi/skills-driven-development. The portable build loop that runs it against real codebases: forgeloop.zakelfassi.com.

The compounding does everything else.

Subscribe to the systems briefings

Practical diagnostics for products, teams, and institutions navigating AI-driven change.

About the Author

avatar
Zak El Fassi

Builder · Founder · Systems engineer

Share this post