3 Days of Spec-Driven Development
You already use AI every day, as chat: you ask, you read, you paste. This course is the step after that. In three self-paced days of about three hours each you point an agent at a real repository with a spec it can execute, look at its plan before it writes anything, let a runner loop until a test goes green or a gate stops it, have a second agent audit the result against the spec, and finish holding a spec framework you can defend to your team. The tool is Claude Code in the terminal. The sandbox is a small transactions module with the same spec in Swift and Kotlin, and you pick a lane.
Start here
Twenty minutes, once, before Day 1: confirm Claude Code runs, pick your lane, copy the sandbox to a working folder of your own, and get one green test run. Do it at your desk with the terminal you actually work in.
Setup: twenty minutes before Day 1 20 min
Pick your lane
Every exercise ships in two lanes with one shared spec: a Swift package and a Kotlin JVM project on Gradle. They produce the same strings, so a lesson never belongs to one platform. Pick the toolchain already installed on your machine and stay in it for all three days.
The lane buttons at the top of every page remember your choice in this browser. Until you press one — and with JavaScript off — pages show both lanes side by side, each under its own name, and nothing is lost.
The three days
Day 1: From chat to spec
What an agent has that chat does not, prompting in four named parts, and plan mode. Then the prompt becomes a spec: acceptance criteria a command can fail, and context as a budget you can measure and cut.
Day 2: Loops and your environment
The four places drift gets in, a runner that implements and repairs until a stop condition, a fresh-context subagent that audits its own output, and your locked-down environment written down as part of the spec: permissions, read paths, one write path.
Day 3: Choose your adventure
Why a framework at all, what OpenSpec, LID and BMAD share and where they part. You run one track against a feature brief with two deliberate ambiguities, graded by the same acceptance suite whichever track you pick, and leave with a comparison card for your team.
Each day stands alone and ships the artifacts the day before produced, so a gap of a week between days costs you nothing.
Three ways to read this site
Same files, no build step, no account:
- The hosted pages, wherever your team published this folder.
- Locally with a server: run
python3 -m http.server 8000from the course folder (the one holding this page) and openhttp://localhost:8000/. - Straight from disk: open the course folder's
index.htmlin a browser. Safari blocks browser storage overfile://, so progress ticks last only until you close the tab; every page still reads and works.
The syllabus, the prerequisites and the folder layout are in README.md, which is the Markdown version of this page.
Your progress
Every lesson and exercise carries a checkbox. Ticks live in this browser under keys
beginning sdd.progress., one per day, never on a server. Your theme, lane and
Day 3 track sit beside them under sdd.theme, sdd.lane and
sdd.track, so clearing those four names is a clean slate.
- Setup · —
- Day 1: From chat to spec · —
- Day 2: Loops and your environment · —
- Day 3: Choose your adventure · —
Counts need JavaScript. With it off, the pages work and the checkboxes stay unticked.