Study 01 · A voice-first assistant for a single user
The spend cap that had to be a gate, not a dashboard
The number
$20/month, enforced before the call
Not a target. A refusal.
- The problem
- An assistant that calls a language model on every turn has no natural ceiling. The first design watched cost in a panel, which is a way of finding out you overspent rather than a way of not overspending.
- What changed
- Cost moved from something observed to something enforced. The budget is checked before the call is made, prompt caching was switched on from the first day rather than added as an optimisation, and the model key sits at the repository root where the agent reads it — never in the web app's environment, so it cannot reach a browser.
- The result
- The cap holds because refusing is the default path, not the exception. The same split later decided the whole architecture: personal data on a local database with no public network path, and a hosted database only for the public product that genuinely cannot have one.