Skip to content

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 guided

Guided 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).

  1. agents - it writes AGENTS.md and CLAUDE.md so every AI tool you point at TaskFlow follows the same rules.

  2. 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.

  3. 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.

  4. 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.

  5. 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
  6. decompose - the PRD becomes epics and sized stories, each naming the persona it serves:

    /sdlc-studio epic
    /sdlc-studio story --epic EP0001
  7. 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).

  1. 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=0

    The explicit form: story implement --story US0007, then verify_ac run --id US0007

  2. 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, then critic record --unit US0007 --verdict approve --reviewer Sam --author Dani

  3. 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, then sprint close --retro RETRO0001 --goal-verdict achieved --note "every task action works for its owner; anyone else is refused"

  4. 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"

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.