Skip to content
C.W.K.
Stream
Lesson 05 of 05 · published

Plan Is a Seam, Ask Is the Primitive

~13 min · plan, ask, orchestrator

Level 0Cold Stick
0 XP0/41 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

The Graph Can Wait

v1 ships the loop. Plan mode is a named orchestrator, not the default personality. A read-only planning phase writes a plan entry. The operator's approval is a recorded permission. Refusal executes nothing and ends the turn as plan-refused. Each approved step runs as a bounded phase of the same turn. Caps count across the whole turn. There is still one turn_end.

Measurement made the cost visible. On a two-step filesystem task the loop finished in about four steps. Plan first proposed six steps, hit a step cap, and spent several times the tokens. After the planning instruction learned the executable budget — a plan step costs about two model steps — planned length fell and success recovered. Plan was then correct and still nearly three times the loop on a task the loop finishes in one pass. Loop stays the local default. Plan earns its cost where the plan itself is the deliverable.

Ask Is How a Harness Offers a Choice

The model offers two to eight labelled options, at most one recommended. The loop resolves it through the same asker seam a permission uses, selected by an interactive flag rather than by tool name. Nothing executes. Question and answer are durable on their own so replay shows what was asked even when the later turn fails. Declining is an answer the model is told about, never an invented pick. A headless run takes the recommendation and says so. The plan ask is addressed from the durable plan entry so a graphical client can park on the same permission surface.

A choice with no durable question is a vibe. If replay cannot show the options, you did not ask. You muttered, and the model guessed you had agreed.

Code

What a plan entry has to carry so approval is not theater·json
{
  "kind": "plan",
  "steps": ["read the file", "edit the file"],
  "text": "1. read the file\n2. edit the file",
  "budget": 6,
  "proposed_steps": 2,
  "over_budget": false
}
# ask id is plan:<seq> after this line is appended — not a field on the plan itself

External links

Exercise

Pick a two-action task. Write the loop trace and the plan trace you would expect. If the plan adds a verify step and a summary step, mark them. Those two extras are the over-decomposition the budget sentence exists to forbid.
Hint
A step the loop would finish with one tool call should not become three plan steps.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.