My process·An agentic SDLC, end to end
From idea to a spec engineering can build.
How I design with agents: every decision written down with its source, every idea tested as working code, and a person at every gate.
The system·What it is made of
Decisions in one place, work run one way, on the product's design system.
Wiki. Every decision, open question and requirement, each traced to its source.
Factory. My agent workflow: step-by-step plans, automated checks and a separate review pass, with any model in any seat. Today Claude, OpenAI and Gemini.
Design system. Built on the product's own components, so the work fits right in.
The flow·At a glance
From scattered sources to a build-ready spec in five steps.
Users validate the coded prototype before anything becomes a spec. Agents write the code and the drafts; I read, decide and sign off at each gate, and every decision is written down with its reason.
Step 01Inputs
Every decision starts from what is already true, the live code first.
What production does today, read before anything is decided.
A spec that contradicts the codebase is a spec engineering has to argue with. When a requirement says “as the panels work today”, I read the panels in code.
- Requirements from the PMWhat the phase needs to cover. Not pixels, not interaction rules.
- Meetings, calls and SlackKept word for word, with the date, before anyone paraphrases them.
- Docs, tickets, earlier specsEach saved as a named source, never a loose note.
Step 02Into the wiki
Every decision keeps its chain of custody, from the first word to the spec.
-
01Immutable source
raw/scope-calls-2026-10-16.mdImmutable raw source
Added 2026-10-16. My words in one working session, quoted verbatim, typos kept.
Never edited. When a newer source replaces it, it is marked superseded, not changed.
-
02One home in the wiki
wiki/decisions.mdD-217Decided
What a phase builds is set by its dev spec, not by how far the prototype got.
source: raw/scope-calls-2026-10-16.mdThe only place the decision can be edited, with a status and a line back to its source.
-
03Copies are stamped
dev-spec/README.mdderived from D-217 @2026-10-20
Each change to the PM's draft carries a note: (ruled: D-217).
Dev specs, QA lists and briefs are made from the decision, never edited as the truth.
-
04Checked every time a source is added
wiki check
- ✕The same fact in two homes
- ✕A copy with no date stamp
- ✕A link to a decision that does not exist
- !A copy older than its decision
The first three fail the check. A stale copy is flagged for me to verify.
Agents read these pages before every round, so the next session starts from the same truth as the last one, not from a chat history.
Step 03Prototype
Users test a working prototype before any spec is locked.
- 01Coded, and true to the brandBuilt on the product's own design system, so it looks and feels like the product people already know. Users open a live link and do the real task.
- 02What they find goes back into the prototypeIt becomes the next version, so the prototype used for the spec check already includes it.
- 03Findings are saved like any sourceVerbatim and dated, then folded into the wiki. A finding that repeats can be promoted to a requirement.
- 04Nothing is edited into a frozen versionThe reference stays fixed; the answer lands in the next version, and the earlier reasoning stays a click away.
User evidence and my explanation, written down with the ruling. Feedback is saved like any other source.
Steps 04–05Gap analysis to dev spec
The spec goes to dev, ready for a gap analysis tool and a coding agent.
- README.mdStart here: what the phase builds, what it leaves out, and what each file is for.
- The PM's documentsEach under its own name, structure and IDs kept, with every ruling applied. A change is marked (ruled: D-217) and listed at the end.
- qa-scope-list.mdWhat QA should not test, because the prototype runs ahead of the phase.
The gap analysis tool and Dev coding agent consume the package directly. No wiki is needed, and every change names its decision.
After the round·Context deepens
Every round adds context, so the system can answer more on its own.
What exactly did the PM ask for?
Answered from an immutable source- Immutable sources
- Decisions and open questions
Why does the filter wait for Apply?
Answered from a decision and its source- Immutable sources
- Decisions and open questions
- Rulings on phase specs
- What users found
Have we tried this before, and what did users say?
Answered from prior decisions, findings and rulings- Immutable sources
- Decisions and open questions
- Rulings on phase specs
- What users found
- Patterns across phases
- What was tried, and why it changed
Agents read all of it before every round. The deeper it gets, the more questions the system answers without me.
One real round·A regulated-industry product, this month
Four spec documents in, a dev-ready package out, every difference answered.
- Specs arrive
The PM sends four spec documents and a 22-item decision record for the phase. They go into the wiki as sources before anything is compared.
- Line by line
Each line is checked against the frozen prototype version and the live production code. Most of the spec already matched.
- Nine rulings
Nine places where I ruled differently, each with the PM's stated reason and my explanation. Asked and answered one at a time.
- The call
A call with the PM settled what the phase builds. Six rulings ship now; three stay in the prototype as the direction for a later phase.
- Frozen
The version becomes the phase's reference and stops changing, so QA tests a fixed thing. New ideas go in the next version.
- Handed over
The PM receives the four updated documents, plus a scope section and QA scope list. Because the prototype runs ahead on purpose, these keep the build and testing to this phase.
Every change in that package links to the decision behind it. If engineering asks “why”, the answer is one click away and it was written the day it was made.
Why it matters·And how it keeps improving
Working code with a paper trail, built on the product's own design system.
Nothing is decided silently. Every spec change links to a ruling, every ruling to a reason, every reason to a source. The PM keeps authoring; I keep every decision traced.
Design starts from live code and ends as code on the real design system. Accessibility is checked at the gate, not at the end. Review happens on a working thing.
Every round feeds back into the system: a mistake becomes a check, repeated work becomes a skill, a pattern goes into the design system. I maintain it continuously, so each round starts from a better system than the last.