Module 04

Module 4. Build one complete user journey

Replace a long feature list with one user journey that works from the first screen through a verified outcome.

A vertical slice is a small but end-to-end part of a product. Here it is not just “build a form”; it is choose a service → enter contact details → send them to a test handler → show the real success or error state.

It helps to know the four layers an AI tool might change: HTML describes page elements, CSS their layout and appearance, browser JavaScript their behavior, and the server/backend validates and stores data. Never put secrets in browser JavaScript; visitors can inspect it.

The course work cycle: context, plan, small change, verification, checkpoint

Build one layer at a time

  1. Show the form. Check the heading, fields, and button at phone width.
  2. Validate locally. Missing name or contact should stop submission and explain what to fix.
  3. Connect a test handler. A mock can return success or a selected error for now.
  4. Show three states: submitting, accepted, and server did not respond.
  5. Run the journey manually and compare it with the criteria from Module 1.
  6. Save a checkpoint only after checking the result.

Ask the agent to change one layer at a time and preserve decisions already accepted. Review the screen and diff after each change. A screenshot shows appearance; it does not prove that data was sent.

EventThe interface shouldIt should not
Required field is emptyIdentify the field to fixSend a request and clear the form
Request is in progressShow status and prevent duplicate submitCreate duplicate requests
Request succeedsShow confirmationClaim success before the server responds
Server returns an errorPreserve input and allow retryReveal an internal stack trace

Practice

  1. Use the vertical-slice work log: step, changed files, and verification result.
  2. Build only the journey in your brief.
  3. Check three states at phone and desktop widths.
  4. Ask someone else to try it without your help.
  5. Record one defect and fix it as a separate small task.

Save: a working vertical slice and its change log. It is done when a user can complete the journey and gets a truthful result.

Self-check

  • Does the app return real data or is this still a mock?
  • What does the user see while loading and when a request fails?
  • Can you undo the last change?