One call.
Seven typed fields.
Not a transcript you have to interpret — a validated result a program can act on, with the clerk's verbatim line attached as the evidence for it.
- The documents, in the clerk's own words
- Fee, payment method, originals or photocopies
- Whether you need an appointment first
- How certain the clerk actually sounded
Two refusals before
the phone rings.
Check the number
It must be E.164 and carry the URL and date a human read it off the office's own published page. CounterCall never infers a phone number.
Check the contract
It reads the live published Goal schema and compares it to the one this build pinned. Any drift refuses the dial — a drifted schema doesn't throw, it returns confident-looking wrong answers.
Then, and only then, call
One call per office, per procedure, per day, enforced by an idempotency key. The result is validated against the pinned schema before anything is shown.
When the clerk doesn't
know, it says so.
A checklist that is 70 % right is more dangerous than no checklist, because it gets acted on. So a field nobody answered stays empty and grey — not filled with a typical value, and not quietly dropped so the gap disappears.
An unknown fee costs you one question at the window. An invented one costs you the trip.
The person answering
never opted in.
That asymmetry drives every rule here, and it is the part of this project we most want read.
- The call states what it is and asks if now is a good time. "No" ends it, and there is no call back that day.
- One call per office, per procedure, per day. A retry that mints a fresh key is a bug, not a workaround — these are queues with real people in them.
- Published general-enquiries lines only, during opening hours. Never a personal mobile, never an emergency or crisis line.
- No personal data is ever sent as a call variable. The clerk is being asked about a procedure, not about a person.
Point it at your city.
Goals are owner-scoped in CALL-E, so what ships is the Goal specification plus the client rather than a shared endpoint. Publish your own copy, add one sourced number, and it is yours.