Feature Implementation Template
Fourteen fields in the order of the loop, persisted locally, with the shopping cart's answers beside each one — revealed only when you ask.
The template is the loop as a form. Its value is the order: you cannot honestly fill in data structure before operations, or tests before examples. When a field stays empty, that is the finding — it names the stage you skipped.
Worksheets
What is it, in one sentence, before any representation? Identity, owner, lifetime.
What must it remember — and what did you challenge out?
What can happen to it? CRUD, then the domain actions.
What must always hold? Each becomes a validation.
Before → operation → after. Normal cases first.
Empty, duplicate, zero, absent, last one.
Which representation, and why — what does the frequent operation cost?
One operation, in plain English then language-neutral steps.
The operation in your language. Last, not first.
One per example — name the example each came from.
Should it survive? Which level, and what does it cost?
What does the browser call? One endpoint per operation that leaves the client.
What does the UI hold, and which copy is the truth?
Two writers, a stale source, a restart — and the decided response to each.
Export
Plain text — paste it into your notebook, your PR, or the next conversation with whoever is reviewing you.
# my feature ## Meaning (empty) ## State (empty) ## Operations (empty) ## Invariants (empty) ## Examples (empty) ## Edge cases (empty) ## Data structure (empty) ## Pseudocode (empty) ## Implementation (empty) ## Tests (empty) ## Persistence (empty) ## API (empty) ## Frontend (empty) ## Failure modes (empty)