The three entry shapes — classifying the ticket in your hand
Every ticket enters the pipeline through one of three shapes. Classifying first matters because the shape decides where you start — and the most common failure mode is skipping that question and implementing a "fully specified" ticket by hand.
Shape 1 — new behavior, the spec doesn't describe it yet
Triggers: "add X", "build Y", "support Z", "the spec should say…".
The spec edit comes first: you run /sdd-plan, which drafts the golden-state change as a
staged proposal (next page), and only then ask what code is missing. You never write the
feature and back-fill the spec.
Shape 2 — the spec describes it; the code is behind
Triggers: "spec says X but we don't", "implement ticket N", "fix the gap in product.lens".
The spec is already golden — you skip /sdd-plan and start at /sdd-spec-gap, which produces a
measured gap report and the on-disk tickets. A beautifully enumerated ticket with file paths and
signatures is still Shape 2: its completeness doesn't replace the gap analysis, and routing is
mandatory before code.
Shape 3 — hotfix
Triggers: "customer is down", "ship this now", Friday at 5pm.
You go straight to implementation — but the bypass is recorded, never silent: the commit
message carries the literal tag [hotfix-no-spec], and a one-line follow-up lands in the
hotfix ledger so the spec gets brought into line at the next iteration boundary. Hotfixes are
the observed exception that keeps the rest of the system honest.
You usually don't classify by hand
Describing the work in plain language is enough — the /sdd router triages and confirms the
classification in one line. Between every phase there's a human gate: the pipeline stops for
your approval rather than auto-advancing, because the spec is the negotiation surface.
What you can do now
- Classify your ticket: Shape 1 (spec edit first), Shape 2 (gap-closing), or Shape 3 (hotfix +
[hotfix-no-spec]+ ledger line). - Start the right way: describe the work to the
/sddrouter and let it confirm your classification.