David
Blumenau
Menu
The connected agents story

Question Lab / Human direction, mid-task

One answer.
The task continues.

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.

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.

Actual iPhone Simulator native chat card asking whether to prioritize Quick setup or More customization
The actual question

The original invocation pauses with a real built-in question.

Isolated Simulator; automated participant; local API shim; unreleased Claude-only correction.

Full-size original
Actual native card with Quick setup checked and Send answers enabled
The recorded choice

The automated participant selects Quick setup. Only this choice was recorded.

Isolated Simulator; automated participant; local API shim; unreleased Claude-only correction.

Full-size original
Actual native chat final response beginning Chosen direction: Quick setup with three practical steps
The same invocation’s plan

The final text names the answer and keeps the plan short.

Isolated Simulator; automated participant; local API shim; unreleased Claude-only correction.

Full-size original

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.

Inspect the public receipt

Actual built-in tool result

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.

Permission
Decides whether a tool may run.
Attention
A separate notification and durable card flow.
Steering
Adds new guidance to a running task.
Read the connected agents story