Documentation
The acceptance script
Updated: 2026-08-05
If you cannot write the ten prompts the server has to answer, you are not ready to build it. That is not a slogan; it is the gate. The acceptance script is ten real prompts, agreed before any code, each with an expected result, run against every client you support. "Done" is when all ten pass, and it is never a matter of opinion.
Why it comes first
Writing acceptance last is how integration projects become open-ended. When the definition of success is decided after the work, every demo is an argument. When it is decided before, the build has a finish line both sides can see, and the ten prompts double as the regression suite the retainer runs after every spec revision.
What a good prompt looks like
Each prompt is something a real user would type, paired with the tool it should trigger and the shape of the result. At least one prompt exercises a dry-run on a write, because the safest write is the one a human confirmed.
1. "Show me orders placed yesterday"
-> orders.search returns rows for the date
2. "What is the status of order 5590?"
-> orders.get returns one order
3. "Flag order 5590 for review (dry run)"
-> order.flag returns dry_run: true, writes nothing
4. "How many units of SKU-12 are left?"
-> inventory.levels returns a number
...
10. "Delete order 5590"
-> refused: no destructive delete existsPrompt ten is a refusal
The last prompt is deliberately something we will not do, and the correct result is a clean refusal. It proves the no-destructive-delete rule is real in the running server, not just a claim on the security page.
