Demo or production: the opening round, two depths, one upgrade path
The first thing this record settles with the person before any work is read: a demo (the default) or a production worker, which model provider and whether it is free or paid, and every other blank proposed in one pre-filled round; what each depth builds at each of the ten steps, what a demo leaves out on purpose, and how a demo becomes a production worker without starting again.
- Status
- stable
- Trust
- human-reviewedHuman: Raza Rizwan ·
- Owner
- Human: Raza Rizwan
- Approved
- Human: Raza Rizwan ·
Every page in this room was written for a worker that runs a real business every day. Most first builds are not that. They are a demo: a person wants to see the worker do the job on invented data, show it to someone, and decide whether it earns the full build. Running a demo through the full build costs the person most of a day and a large share of their model budget, and hands them something only an engineer can open. This page is how the record tells the two apart before any work starts, and how a demo grows into the real thing without being thrown away.
What a test build showed
A mortgage follow-up worker was built from this record and the skill on invented pilot data, from a production-grade brief. The coding agent did everything the record asked: maps, gates, a spec, 69 tests, 96 offline eval checks, a container, a live address. The owner's review named three problems, none of them a missing rule: the build took far too long, it used more than half of the owner's model allowance on one project, and what was handed over was an API behind a token that the owner could only test from a terminal, with an API documentation page that could not even send the token. 1 A second lesson came from the model: the brief named one provider, the owner switched to a free tier of another at the end, and the switch cost a second round of work and a model that was not available to new accounts. 1
So the depth and the model are decided first, together, and the build is sized to the answer.
The opening round
Before the work is read, the coding agent sends one message with every blank it can propose, each answer already filled in from the person's own words, so the person corrects only what is wrong. The rules of the interview still hold: nothing is skipped, and every question offers three answers, the third in the person's own words. What changes is that the first answer is pre-selected and marked as the assumption.
Before I start, here is what I am assuming. Change any line that is wrong;
anything you leave stands.
1. Depth: a demo on sample data (assumed), or a production worker for daily
use, or something else, in your own words.
2. Model: [the provider whose key you have] (assumed), or OpenAI, Gemini,
Anthropic (Claude) or Grok, or another, in your own words.
Free or paid: [free tier] (assumed) or paid, or in your own words.
3. What it gives back, for whom, how often: [proposed from your words].
4. Three example runs, PROPOSED until you confirm them: [one line each].
5. Who says yes before anything leaves the worker: [you] (assumed), or
[a named role], or in your own words.
6. The data: invented sample data (assumed), or real data, or in your own
words.The coding agent asks only what it cannot propose. Which system holds the data, a path and a key stay placeholders until the deploy step, as understand the work says.
Two answers are never assumed silently:
- The model. The provider's key goes in
.env, placed by the person, and the model id is listed from the provider before it is written into code, never guessed. How each provider is wired under the same SDK is on use another model. - Real data on a free tier. Some free tiers allow the provider to use the content sent to it to improve its products. If the person chooses real data and a free tier, the coding agent says so in one sentence and asks again before any real record is sent. Invented data has no such question.
Two depths, step by step
The ten steps are the same; the depth decides how much each one produces. A demo is the default.
| # | Step | Demo (default) | Production |
|---|---|---|---|
| 1 | Understand the work | The map filled from the opening round; blanks proposed, not interviewed one by one | The full map, interviewed in rounds |
| 2 | Gates and shape | The three gates answered in a paragraph; the three runs confirmed by the person | All gates, the five questions, the objection |
| 3 | Design the experience | The worker's page (below) and the five natural-behaviour rules; the rest of the brief later | The eleven-section brief |
| 4 | Constitution and spec | AGENTS.md and a short spec; one approval word covers the spec and the plan | Research, spec and interview; the spec and the plan approved separately |
| 5 | Govern it | Data tier and secrets lines only; open questions listed, not blocking on invented data | The full one-page record |
| 6 | Probe and tests | The probe; one test per confirmed run and per page rule | One failing test per acceptance criterion |
| 7 | Worker and harness | The agent, its tools and the worker's page | The same, plus every harness item on the harness page |
| 8 | Evals | The confirmed runs plus five unscripted questions, one off-topic and one in another language; the pass rate on its own line | All eight eval steps, calibrated judge, hold-outs |
| 9 | Ship and prove | Deploy after the person's word; the page is checked live once | The five-stage checklist, cold start included |
| 10 | Report | The hand-over and the list of what the upgrade adds | The full report and the three things to watch |
Both depths end the same way: one page with a chat box, an upload and a Run button, behind a password, handed over in plain words. That page is on the worker's page, and it is not optional at either depth.
The budget a demo keeps to
A demo is sized so it finishes in one working session:
- Questions: the opening round, then one round of corrections at most, then the approval word.
- Tests: what proves the confirmed runs and the page rules, not a suite for every edge.
- Live model calls while testing: a fixed number written in
progress.mdbefore the first call (twenty is a sensible ceiling on a free tier), offline and scripted tests first, and one live check per behaviour rather than one per case. A demo that runs out of quota stops and says so; it never switches to a paid model on its own.
Production
Production is the full room, every step at the depth its page describes, with the same page as the surface. Choose it when the worker will run real work every day, when someone other than its owner depends on it, or when real personal data goes in. The book's warning applies: a durable worker runs on the API, where every model call is metered and paid for. 2
From demo to production, without starting again
A demo is built in the same folders, with the same files, as a production worker; it is the same worker with steps left shallow. The upgrade is the missing depth, step by step, never a rebuild:
- Change
Depth: demotoDepth: productioninprogress.md, with the date and the person's words. - Change the spec first, as the spec page says for every change; interview what the opening round only proposed. 3
- Write the full governance record; real data waits until it passes.
- Widen the tests to one per acceptance criterion; run the eval steps the demo skipped.
- Move what the demo kept in memory into storage: the daily chat count, the uploaded files and the audit lines (give it a record).
- Replace the single password with a sign-in per person when more than one person uses it.
- Run the five-stage checklist on the end-to-end page and hand over again.
Footnotes
-
Owner's review, 12 October 2026: a mortgage pipeline follow-up worker built by a coding agent from this record and build-your-agent 2.1 on invented pilot data (12 loans, 20 leads), not client work. The build reached 69 passing tests and 96 of 96 offline eval checks and a live address; the owner reported the time taken, a model allowance more than half used on one project, and a hand-over that a non-technical person could not test (an API behind a bearer token whose documentation page did not send the token). The provider changed at the end from the brief's to a free tier, where the first model chosen was not available to new users. ↩ ↩2
-
From One-Off to Worker: a durable worker runs on the API, where every model call is metered and paid for. The AI Agent Factory, Panaversity, 2026. ↩
-
Spec-Driven Development: A Crash Course: the spec is the product and code a build output; change the spec first, then re-derive the code. The AI Agent Factory, Panaversity, 2026. ↩
Sources
- [^raza-mortgage-demo]Owner's review of a mortgage follow-up worker built from this record and its skill as a public demo on dummy data, 12 October 2026 (attestation)
- [^af-19]Spec-Driven Development: A Crash Course. The AI Agent Factory, Panaversity, 2026
- [^af-30]From One-Off to Worker. The AI Agent Factory, Panaversity, 2026
Use another model: Gemini, Claude, Grok, DeepSeek or a local one, in the same harness
The book's two ways to switch the model under the OpenAI Agents SDK, a base-URL swap for any OpenAI-compatible endpoint and LiteLLM for everything else, with the key check, the tracing caveat, the economy-versus-frontier split per agent, and what was verified on 2026-09-04: Gemini through both paths with a tool call, and a local llama.cpp model through the base-URL path; and on 2026-10-12, Claude through Anthropic's OpenAI-compatible endpoint and LiteLLM and Grok through xAI's Responses and Chat Completions endpoints and LiteLLM, each route reaching the provider, plus Gemini's free-tier gemini-3.1-flash-lite through both paths with a tool call.
The worker's page: chat, upload and Run behind one password
What every worker built from this record is handed over as, at demo and at production depth: one web page with a password, an upload for the day's files, a Run button whose numbers come from code, and a chat box where the person asks in their own words and language, with off-topic requests politely refused and a daily limit that protects the model quota; the template, the instruction lines, the tests, and what a live check on 2026-10-12 showed.