modul 1 — the first production project
the anatomy of a good request
Goal, constraints, definition of done – a request the agent can't misunderstand has three parts, and none of them is 'please'.
9 min · v1.1 · verified: 2026-07-15
the request is a spec in miniature
The PRD (lesson 1) defines the project; the request defines the next 20 minutes. The same three layers apply, shrunk to a paragraph (Addy Osmani's spec guide breaks it down the same way: goal, boundaries, verifiable criteria):
- the goal – what should be true when the work is done
- the constraints – what must not change, what's out of scope
- the verification – how you'll both know it worked
If any of the three is missing, the agent fills it in from its own defaults – exactly like a PRD with no EXCLUDED list.
bad request, good request
The difference is not politeness, it's testability:
-
❌ "make the header nicer" — nicer by whose measure? The agent will pick one.
-
✅ "the nav links get a sliding hover highlight like Vercel's; the active page keeps the underline; run lint and show me a screenshot" — a goal, a constraint, a verification.
-
❌ "fix the bug" — which bug, seen where, expected what?
-
✅ "on mobile at 375px the CTA overflows the card – it should wrap under the title; verify with a 375px screenshot"
-
❌ "look at the code and improve what you can" — an invitation to a random walk.
-
✅ "report first, don't fix: list what you'd change in checkout.ts and why – I'll pick" — investigation and intervention are two different requests.
say what done looks like
The strongest habit from this whole module (the official guide's central recommendation: give the agent a check it can run): end the request with the evidence you expect. "tests green", "tsc with zero errors", "screenshot at 1440 and 375". The agent that knows how it will be judged organizes its whole session around producing that evidence – you're not just requesting work, you're installing a verification loop (the loop where the agent checks its own output against a stated standard before declaring it done).
what it looks like in production
A real request from building this site – note that the prompt itself names the standard ("best in class") and the agent's last step is producing the evidence, unprompted:
- check if it's best in class. if not, raise it
- it reads the rulebook the standard refers toread DESIGN.md
- it finds the value that violates itgrep clamp src/
- it fixes exactly that – nothing elseedit typed-headline.tsx
- and it closes with the evidenceplaywright screenshot + tsc ✓
a real session from this build: ❯ is the typed request, → are the agent's steps, ✓ is the verification.
exercise
exercise — rewrite three of your own requests
Dig out three requests you actually sent to an agent (or would send), and rewrite each with the three layers.
0/4 · log in so we can save your progress