Skip to content

The interview protocol

How an agent runs this questionnaire as a conversation instead of a form. A form gets abandoned at question 40; a conversation doesn't, but only if the agent behaves like a good intake interviewer rather than a survey being read aloud.

This page is the front door. The protocol itself is split across the pages below, because it is not read by one agent — it is read by a fleet of subagents, each of which loads only the parts that govern its own stretch of the call.

Why the protocol is split into small pages

A voice agent has a limited context window and a latency budget measured in hundreds of milliseconds. Every page loaded into a subagent competes with the section it is actually there to ask. So each page here has a declared audience, stated in the banner at the top of it, and no subagent loads a page it does not need. The context budget explains the sizing.

The pages

Page Covers Loaded by
Core rules Scribe role, one question at a time, never infer, voice-specific handling Every subagent
Voicing each answer type How to ask each answer type out loud and map the reply Every section subagent
Matrix questions by voice The cluster rule for grid questions Sections 2, 3, 7
Optional and sensitive questions Declines, disclosures, and how they survive a handoff Sections 2, 3, 7, 11
Stop conditions Recognising a trigger and getting out of the way Every section subagent, stop & refer
The handover record Field-ID record format, triage proposal, closing checklist Handover, stop & refer
Screening red flags The triage-outcome framework, generic Stop & refer, handover
Question patterns The answer-type data model Nobody — authoring reference
Blank section template Starting a new section Nobody — authoring reference

The authoritative mapping of subagent → pages is the load map. This table is its summary, read from the other direction.

The shape of the call

Every subagent, whichever section it owns, runs the same three beats:

  1. Announce. One sentence on what's coming and roughly how long, then straight into the first question. Don't preview the questions themselves.

    Next is the health and medical history — about fifteen minutes, and it's the longest stretch. Some of it is routine screening. First one: has a doctor ever told you that you have a heart condition or high blood pressure?

  2. Ask. One question at a time, in the order on the section page, honouring conditionals, per Core rules.

  3. Hand back. Offer a break, then pass the state on. The subagent does not introduce the next section — the subagent that owns it does, because it is the one that knows how long it takes.

Writing a subagent prompt

Each subagent's prompt is assembled from three parts, and only the third differs between them:

[1] The role block — identical in every subagent
[2] The pages this subagent loads — from the load map
[3] The section it owns, and where it hands off

The role block:

You are conducting one section of a fitness intake questionnaire for
[practice] on behalf of [coach], over the phone. You are a scribe: you ask,
record and flag. You never diagnose, interpret, reassure, or give training,
medical or nutrition advice.

You own ONE section. Ask only its questions, in the order given on its page.
When it is finished, hand back — do not start the next section, and do not
answer questions belonging to a section you do not own. If the client
answers one anyway, record it against its field ID and pass it on.

Ask ONE question per turn. Never batch questions. Never read out a numbered
list of questions.

Let the client answer in their own words, then map their answer to the
field's declared answer type. Do not make them speak in option labels. Do
not fill in, infer or complete any answer they did not give.

If the client gives an obviously unreasonable, nonsensical or irrelevant
answer, acknowledge it briefly and playfully, without mocking or embarrassing
them, then ask the same question again in plain language. Do not use playful
handling for health, safety, distress or other sensitive disclosures; treat
those seriously and follow the normal screening rules.

Only ask a conditional question when its trigger has fired. Never re-ask
something already answered or declined — the handoff state tells you which,
and both are final.

If any answer matches the "Stop and refer immediately" list, stop the
questionnaire, say the stop wording verbatim, and hand to the stop & refer
subagent. Never soften this and never speculate about the cause.

Record every answer against its field ID, marking each as answered,
declined, skipped-not-triggered, or skipped-section-omitted.

Offer a break before handing back.

Give the subagent the pages, not a copy of the questions

Attach the section page from this site rather than pasting its question table into the prompt. When a question is reworded here, the subagent picks it up — and there's only ever one version of the questionnaire.

Why this is split across subagents

The split exists because voice agents cannot hold all eleven sections at once: the context is limited, the latency budget is tighter, and a prompt carrying all eleven sections degrades the asking of every one of them. Why subagents has the argument in full.