Requirements in, draft test matrix out: unknowns become questions, not guesses
Turn up to 8 UI requirements into draft given/when/then test cases with verbatim quotes and open questions. Live test on 20 Oct: 9 of 12 orders done.

"The password field accepts a minimum of 8 and a maximum of 64 characters." Start writing test cases and the questions show up right away: characters or bytes? Do trailing spaces count? The worst thing an assistant can do is quietly answer them for you.
Spec Check takes up to 8 UI requirements (600 characters each, 12 KB total, as JSON) and returns a draft matrix: given/when/then cases marked positive or boundary, each with a verbatim quote of its requirement, plus open questions. Code then checks that every case points to a real requirement, every quote matches the source exactly, and every requirement has at least one case. If a check fails, you get no output and the order goes to refund. Nothing is executed. Output is CSV (cases), JSON and HTML.
For a 4-requirement login form it produced 8 cases and 4 questions. It derived the 8/64 and 4-vs-5-attempts boundaries, then asked: "Does a successful login reset the consecutive failed attempt counter...?" For "The system should be fast." it invented no threshold and asked for one.
Live test, 20 Oct. 12 orders, 9 done, median 8.4 s, max 12.4 s, about $0.00088 of model cost (claude-haiku-5-5) per order. What failed:
- A requirement with a non-breaking space: the model normalised it, and the verbatim-quote check refused the order, twice. Fix, deployed after the run: if the quote differs only by same-position whitespace, the server restores the original.
- Coverage is unstable. One requirement was left without a case, so that order was refunded.
- Prompt injection didn't leak anything, but it produced odd "meta" cases.
It's a draft for a human tester. No customer data, credentials or safety-critical systems. $7 one-time, no account, free structure check before paying, texts deleted after 24 hours.