Greenfield walkthrough - build a task-management app
Let us build a real thing from nothing: TaskFlow, a small task-management web app where a signed-in user can create, list, complete and delete their own tasks. This page follows it from an empty repository to a first increment that is built, proven and independently reviewed.
You will spend most of it in plain language. Every step has an explicit command shown as the explicit form, but you do not need to type them.
Part 1 - from empty repo to a first plan, in one command
Section titled “Part 1 - from empty repo to a first plan, in one command”In your empty taskflow/ repo:
/sdlc-studio init guidedGuided init sees no code and classifies the project greenfield, then walks the seven stages. Review each draft, then say “looks good, continue” (the explicit form is init guided --confirm).
-
agents - it writes
AGENTS.mdandCLAUDE.mdso every AI tool you point at TaskFlow follows the same rules. -
prd - an interview: what is TaskFlow, who is it for, what must it do? You describe the features; it writes
sdlc-studio/prd.md- a Feature Inventory (create / list / complete / delete a task, sign-in), functional and non-functional requirements (a task list loads in under 300ms), and the open questions. -
trd - from that PRD it drafts
sdlc-studio/trd.md: project type Web App, a recommended stack with real rationale, the task and user data models, the REST endpoints, and any decision worth an ADR. -
tsd - it drafts
sdlc-studio/tsd.md: the test strategy - unit ≥ 90%, the delete-a-task path 100% covered end to end, and the quality gates that will block a build. -
personas - it grows your team and the people TaskFlow is for:
/sdlc-studio persona generate --team # Lena (Product), Dani (Eng), Sam (QA), grown from TaskFlow/sdlc-studio persona generate --from-prd # Priya, the busy team lead who lives in her task list -
decompose - the PRD becomes epics and sized stories, each naming the persona it serves:
/sdlc-studio epic/sdlc-studio story --epic EP0001 -
plan - it grooms the backlog and plans your first sprint. This is where guided init ends - you are standing exactly where delivery begins.
/sdlc-studio reconcile # recompute status and counts from the files/sdlc-studio status # a clean, drift-free backlog, and the next step/sdlc-studio sprint plan --stories Ready --goal done --write \--sprint-goal "A signed-in user can create, list, complete and delete their own tasks" # a sized, sequenced first sprint
Everything so far is plain Markdown under sdlc-studio/ that you read and edit - prd.md, trd.md, tsd.md, epics/, stories/, personas/.
Part 2 - build one increment under the discipline
Section titled “Part 2 - build one increment under the discipline”Now the foundation is green and “a user can delete their own task” is a Ready story (US0007).
-
You say: “Build the delete-a-task story.”
Dani, your Engineering seat, writes the failing test first, implements the endpoint and the UI action, and runs the story’s acceptance criteria. Passing is what lets the story reach Done later, when you sign the run.
verify_ac run --id US0007 -> ac=2 pass=2 fail=0 manual=0The explicit form:
story implement --story US0007, thenverify_ac run --id US0007 -
You say: “Review it.”
A fresh reviewer that did not write the code - Sam’s review render - is briefed from the story itself and runs an adversarial pass: does it truly refuse deleting someone else’s task? It records one verdict. A REJECT gets one more round from Sam once Dani’s fixes are in; a story still rejected after two rounds is carried to a later run as a known issue.
The explicit form:
critic brief --unit US0007 --seat qa, thencritic record --unit US0007 --verdict approve --reviewer Sam --author Dani -
You say: “Close the sprint.”
The first close scaffolds the retro and stops for you to fill its Keep, Stop and Try. The second runs once: it records your judgement of the sprint goal, validates the retro and lifts its lessons, runs the gate, reconciles, and files a one-page sprint report listing every known issue.
The explicit form:
sprint close, thensprint close --retro RETRO0001 --goal-verdict achieved --note "every task action works for its owner; anyone else is refused" -
You say: “Sign it.”
You read the report and sign the run, once - you, or a delegate who neither wrote nor reviewed a story in it. Signing transitions the stories to Done, closes the epic and any parent request, and records one signature. Nothing runs after it.
The explicit form:
sprint sign --report RPT0001 --principal "you"
What you have
Section titled “What you have”TaskFlow’s delete feature, shipped: every story Done against passing criteria, a review record naming a reviewer who was not the author, a retro with its lessons, a signed sprint report, and the request marked Complete - all as plain files under sdlc-studio/, true to the code that actually exists. You got here by describing what you wanted; the discipline held underneath.
Where to next
Section titled “Where to next”- Brownfield walkthrough - the same journey starting from code you already have.
- The specification layer - the PRD, TRD and TSD you just wrote, in detail.
- Sprint planning - how the plan and the delivery loop work.