← Day 04: Assemble MVPAI in a Week · Day 4 · MVPAI steps 07 Prompt–code–repeat, 08 Demo and 09 Grade

Day 4 · Assemble: one working slice, tested and safe

Runs withDay 4, after the 30-minute briefing: Part A in the morning (about 100 minutes), Part B in the afternoon (about 125 minutes), then the 15-minute gate
FormatPrompt-based: every step is a prompt you give Claude, followed by a check you do yourself. Every prompt today runs in Claude Code, in your repository
You needYour repository from Day 3, with the Product Book, ADR 0001 and CLAUDE.md committed; Python, Git and Claude Code working; a partner for the diff and access checks
You leave withOne vertical slice that reaches your first value moment, with tests for the happy path, bad input and "not allowed"; logged-out and cross-user access tests; a dependency scan with every finding fixed or recorded; all committed, and written up in product/04-build.md
GateThe Day 4 gate (Part C), closing Assemble

Where you are

You have decided what to build, tested the design on two people and briefed Claude Code. Today answers: does one slice work, is it tested, and is it safe? You build the thinnest version of your first value moment that works end to end, then prove it with tests and try to break it.

Product Book file or repository itemWhat it holdsUsed in step
product/02-proposition.mdThe build objective and first value momentA1, A2
product/03-plan.mdMVP objective and threshold, prototype and test notes, data model, access rulesA2, B1, B4
product/decisions/0001-architecture.mdADR 0001: your stack (the course default is Django) and the must-pass planA2, B5
product/04-build.mdToday's work: the plan, what was built, tests, the diff explained, access tests, the scanEvery step
CLAUDE.mdImports the Product Book; stack, commands, conventions, working agreementEvery step

Your build objective reads: "By the end of Day 4, a working web app where [user] can [first value moment], with tests passing; on Day 5, one real person reaches it without help." Today is the day the first half is met, or the gap is written down honestly. Both are acceptable; pretending is not.

What you are building

PartWhere it livesBuilt in step
Walking-skeleton plan, approved after at least one changeproduct/04-build.md, under PlanA2
One vertical slice: screen, logic and data for the first value momentYour code, in small commitsA3, A4
Tests: happy path, bad input, not allowedYour testsB1
One diff explained in plain Englishproduct/04-build.mdB2
One deliberate /rewindNothing changed: that is the pointB3
Logged-out and cross-user access tests for every protected pageYour testsB4
pip-audit scan, every finding fixed or recordedproduct/04-build.mdB5
Build notes and the build objective checkproduct/04-build.mdB6