Sometimes the useful next step is a choice only the person can make. A question in native chat can pause the work, receive that direction and let the same task carry on.
Actual native execution / recorded replay
A direction for the workshop.
The film shows the real native flow. These controls move through its recorded moments; they make no new model request.
Isolated iPhone Simulator. Automated test participant. A local API shim forwards real Claude Engine inference. This build includes an unreleased Claude-only answer-key correction; it does not demonstrate the live PanelForge API.
The fictional Lantern Makers workshop
01 / 04
A choice before the plan.
The fictional workshop needs a check-in. The task asks Claude to pause for a direction before drafting.
Plan a check-in for the fictional Lantern Makers workshop. Before drafting, ask whether to prioritize Quick setup or More customization. Use my answer to give three short practical steps.
The model asks. The turn waits.
Claude calls its built-in question tool. The native card shows two choices while the original invocation remains open.
Should I prioritize Quick setup or More customization for the Lantern Makers check-in?
Quick setupKeep the check-in simple and fast to launch.
More customizationTailor the check-in in more detail before drafting.
The replay follows the recorded Quick setup answer. More customization has no recorded result here.
Quick setup reaches the question.
The automated participant selects Quick setup and sends the native answer. The original pending question receives it.
Recorded native selectionQuick setup
The request reached the original pending question. Its request and stream identities matched.
The same task keeps going.
The actual tool result confirms Quick setup. That same invocation resumes and drafts the short plan below.
Chosen direction: Quick setup
Send a one-line check-in invite to all Lantern Makers members.
Use a shared doc with three prompts: progress, blockers, next steps.
Hold a 20-minute session and assign one owner per follow-up.
Actual model text. This is a plan; none of the actions in it ran.
One original task. The answer has not been chosen.
A continuous 22-second segment of the actual native capture, at original speed. Stage controls pause and seek the film; Play runs the recorded flow.Open the native recording
Original invocation1 throughout
Native answer+10.727 seconds
Confirmed completion+12.551 seconds
Authentic native pixels
The question. The consequence.
Details from the original device screenshots, paired with the recorded story. Each link opens the full-size capture.
The actual question
The original invocation pauses with a real built-in question.
Isolated Simulator; automated participant; local API shim; unreleased Claude-only correction.
The previews crop the original screenshots for readability. They do not recreate the native screen. The final text is a drafted plan; none of its actions ran.
Follow the causal receipt
An answer received. A turn resumed.
The original request stayed open. The native answer resolved its pending question, and the actual tool result confirmed the choice before the final text followed.
Your questions have been answered: "Should I prioritize Quick setup or More customization for the Lantern Makers check-in?"="Quick setup". You can now continue with these answers in mind.
The question, native answer, pending future, tool result and final completion were checked against matching private identities. The public receipt omits those opaque IDs.
See the actual answer map
The visible card’s selection is under the UI header Priority. The native request sent the answer under the full question text, as the built-in Claude tool requires.
{
"action": "answer",
"answers": {
"Should I prioritize Quick setup or More customization for the Lantern Makers check-in?": "Quick setup"
}
}
This is the captured native payload with its opaque request ID removed, verified against the private request. The shim forwarded it unchanged.
What ran, what was corrected, and what this does not prove
The actual path
The existing SwiftUI chat card, controller, SSE decoder and response API ran in a separate iPhone 17 Pro Simulator build. A minimal local API shim forwarded original SSE and the native answer to the original Claude Engine handlers. The model used its real built-in question tool through subscription inference.
The final native run passed its exact answer-map regression and actual UI flow: two tests, no failures. The successful run made one question tool call, then produced 25 text events after the answer and a 232-character final plan.
Read the film’s text alternative
The fictional task asks for a workshop check-in plan after choosing between Quick setup and More customization. Claude asks: “Should I prioritize Quick setup or More customization for the Lantern Makers check-in?” The automated participant selects Quick setup and sends it. The actual tool confirms that answer. The same invocation resumes and visibly produces Chosen direction: Quick setup, followed by a short invite, a shared document and a 20-minute session. Those are drafted suggestions; no invite, document or session was created.
A correction in this isolated build
The first actual run returned HTTP “answered,” but the built-in tool said the questions were unanswered. The native card had keyed its map by the short UI header. An expected failing regression exposed that mismatch; the isolated Claude path was corrected to use full question text.
This correction is unreleased. The capture uses an isolated Simulator and local API shim; it does not validate deployed Laravel persistence, production routing or the unmodified released native app. Codex, spoken answers, macOS cards, multi-select and reconnect behavior were not tested here.
Engine source
bf89abc1646bd12133a0f22bc2d51f3286813250
Native base source
48d380467d270c6f5fb10cbfd68923985a973c3b
Participant
Automated XCUITest
Native patch
Unreleased; Claude only
Different ways a person can intervene
A question about the work itself.
This is Claude’s built-in AskUserQuestion: a task needs an answer, and its original question call waits for one.