You do not need a template for everything. But when a request matters, four parts will
carry you a long way.
1. Goal — what you want, and why
The “why” matters more than people expect. It lets the model make sensible choices about
things you forgot to mention.
“Build a page that shows a student all the cards they have to review today, so they can
start studying within a few seconds of opening the app.”
That “so they can start within a few seconds” quietly rules out a dozen bad designs.
2. Limits — what it must and must not use
“Use TypeScript. Use the existing database setup. Do not add any new libraries. Do not
change any file outside thesrc/reviewfolder.”
Limits are the part people leave out most often, and the part that saves the most time.
“Do not change anything else” prevents a whole category of unpleasant surprises.
3. Examples — what the result looks like
Real inputs and real outputs. One good example is worth a paragraph of description. This is
important enough to have its own lesson, next.
4. Done-criteria — how you will know it worked
“It is done when: opening
/reviewshows only cards due today or earlier; a student with
no due cards sees the message ‘Nothing to review, well done’; andnpm testpasses.”
This part does something valuable that is easy to miss. It gives the model something to
check itself against. In Module 5 you will connect this directly to tests, and the agent
will start fixing its own mistakes without you.
Before and after
Before:
Make a page showing cards to review.
After:
Goal:
Build a page at /review that shows a student every card due for review today,
so they can start studying within a few seconds of opening the app.
Limits:
- TypeScript only.
- Use the existing database connection in src/db.ts.
- Do not add new libraries.
- Only create or change files inside src/review/.
Examples:
- A student with 12 due cards sees all 12, oldest due date first.
- A student with 0 due cards sees the text "Nothing to review, well done".
- A card due tomorrow does not appear.
Done when:
- Opening /review shows only cards due today or earlier.
- The empty case shows the message above.
- npm test passes.
The second one took four minutes to write. It saves an afternoon.
You will not always need all four
For a small change, one clear sentence is enough. Use the four parts when the task is big,
when you have been burned before, or when you notice yourself about to type a feeling word.
Try this before the next lesson
- Rewrite your request from Lesson 2.2 using all four parts.
- Give it to a model. Compare the result with your earlier attempt.
- Which of the four parts was hardest to write? That is usually the part you had not
actually decided yet.