Design and plan it
You have a stub. This lesson grows it into a full design you can actually read and approve, then translates the approved design into a plan, and shows you exactly how the two differ.
Design: the stub becomes something you can read
Section titled “Design: the stub becomes something you can read”/c-design takes your 00-overview.md stub and materializes the full design folder: the artifact for this stage. It writes child documents in reading order and, crucially, a plain-English narrative document written for someone who will never read code.
Design the current-time feature
-
Run /c-design
With the stub in place, run/c-design. Cadence confirms the list of child docs it will write, then asks whether to generate them all at once (the default) or one at a time. -
Read the plain-English narrative
The design always includes00a-plain-english.md, a narrative tour: what the feature does, the normal cycle, what you’d see, what could go wrong, and how you’ll know it works. This is the document you read to decide if the design is right. -
Read the decisions log
The overview’s decisions log records each choice with its rationale: for the example, “use the non-deprecated time API” and “ISO-8601 with a Z suffix, no microseconds”. You can see why, not just what. -
Approve it
After a self-review pass, Cadence flips the design toin-reviewand asks you to walk through it. When you’re satisfied, you say “approved”. That explicit word is the gate. Cadence then tells you to run/c-plan.
The finished design folder for this exact feature ships with Cadence. Open these to see what “done” looks like for the design stage:
examples/hello-cadence/designs/2026-01-15-hello-cadence/├── 00-overview.md # what, why, approach, decisions log├── 00a-plain-english.md # the narrative tour you read├── 01-implementation.md # function signature, behavior, test└── 99-out-of-scope.md # what this deliberately doesn't doThe function is current_time_iso(), returns a string like 2026-01-15T14:30:00Z, formatted from the current UTC time with no microseconds, plus a run-directly entry. One test asserts the shape of the output (you can’t assert the exact value: time moves).
Plan: the design becomes exact steps
Section titled “Plan: the design becomes exact steps”Once the design is approved, /c-plan translates it into a plan folder: same name, but written for the machine. A plan is exact paths, exact code, exact commands, and explicit ordering. No narrative. That’s the visible difference: where the design explains why, the plan only states what and in what order.
Use the current UTC time, formatted ISO-8601 with a
Zsuffix and no microseconds, because it’s human-readable and sorts cleanly.
A task with exact Reads: / Touches: / Depends: fields and steps like: write a failing test at a named path, run it and expect failure, implement the function with the full code shown, run the test and expect pass, then commit. No “why”: that already lives in the design.
Next: Execute, audit, and validate. Turn the plan into real code and close the loop.