Execution Model
Table of Contents
This page describes how the cybernetic information architecture is actually operated in a session — who reads what, who writes what, how LLMs fork subprocesses, how blocking and task-switching work. It is the runtime view of the architecture; the static contract lives in document types and the role definitions in functions. Read this when you want to know what concretely happens when a sprint is in flight.
Roles
The actors involved in a working session. Each role maps onto a cybernetic system — load the linked function doc for the priming context that role uses.
| Role | Maps to | What it does |
|---|---|---|
| User | — | Assigns stories to orchestrators; invokes System 3 / System 4 / System 5 sessions on demand; reviews story-level outcomes. |
| Agent | System 1 (S1 Agent function) | A Claude subagent that picks up a single task, implements it, returns when the task is DONE or BLOCKED. |
| Orchestrator LLM | System 2 (S2 Orchestrator function) | Coordinates one assigned story. Forks agents, reviews their output, triages discovered work. |
| System 3 session | System 3 (S3 Sprint Planner function) | LLM session invoked on demand that reasons about sprint coherence — opening, running, and closing a sprint. |
| System 4 session | System 4 (S4 Version Planner function) | LLM session invoked on demand that reasons about version coherence — sprint sequencing, release scope. |
| System 5 session | System 5 (S5 Identity Steward function) | LLM session, usually with the user collaborating, that reasons about identity — what is in or out of scope. |
| Audit jobs | System 3* (S3* Auditor function) | Scripts run periodically (e.g. nightly) plus on-demand sessions; enforce invariants from outside the operational hierarchy. |
Story execution loop (the System 2 orchestrator)
- User assigns a story. Orchestrator reads the story document, the
sprint mission, and any linked knowledge. It moves the story's
Status TODO from
BACKLOGtoSTARTED. - Orchestrator breaks the story into tasks if not already broken.
Each task is created as
BACKLOGunder the story folder. - Orchestrator picks the next task. Sets the task's TODO to
STARTED, fills#+owner,#+branch,#+blocked_on: none, updates the** Now/** Next/** Last touchedsubheadings. Spawns an agent with the task as input. - Orchestrator monitors the agent. When the agent reports done:
- Reads the agent's task notes and the produced PR.
- Reviews the change against the task's
* Acceptancecriteria. - If satisfied: moves the task TODO to
DONE, fills* Result. - If not: TODO stays at
STARTED(or returns there fromBLOCKED) with review feedback in* Notes; or the task is split into smaller tasks.
- Orchestrator processes any tasks the agent filed as
DISCOVERED: triages each one (see lifecycle). - Loops to step 3 until every task in the story is
DONEorABANDONED. - Orchestrator distils the plan(s) into the story's
* Decisions, archives or deletes the plan files, and moves the story TODO toDONE.
Concurrency rules
- One orchestrator per story at a time.
- An orchestrator may run multiple agents in parallel only if their tasks touch disjoint files. The orchestrator is responsible for proving disjointness before spawning.
- Discovered work is never implemented opportunistically by an
agent. It is filed as
DISCOVEREDfor orchestrator triage.
Blocking and task switching
Wall-clock waste comes from blocking, not active work: PR review, CI runs, local builds. The orchestrator should keep multiple of its story's tasks in flight so that when one blocks, another can advance.
When an orchestrator blocks on a task
- Move the task TODO from
STARTEDtoBLOCKED. - Set
#+blocked_onto the cause (review,ci,local_build,external). Set#+blocked_sinceto now. Update** Waiting onin the Status subheadings, leave a one-sentence** Nowdescribing what was just done, set** Nextto the action that will resume once unblocked. - Update
#+updatedand** Last touched. - Move attention to another
STARTED-eligible task in the same story. If none exist, pick the nextBACKLOGtask and start it. - If every task in the story is
BLOCKED, report to the user and stop.
When an orchestrator returns to a blocked task
- Check whether the blocker has cleared (review posted, CI green, build passed).
- If cleared: move TODO back to
STARTED, clear#+blocked_on(none) and#+blocked_since, update Status, resume the planned** Nextaction. - If not cleared: refresh
** Last touched, leave the task, switch away.
The active-branches view
Audit (System 3*) generates audit/reports/active_branches.org by
grepping every task document for ^\* STARTED Status and
^\* BLOCKED Status, then reading the task's frontmatter. The output
is a table: task | owner | branch | pr | todo | blocked_on |
blocked_since. This is what a user opens to see what is in flight and
where the time is going.
The task document as live status
Opening a single task document must answer four questions: what is
this task, what is the LLM doing right now, what is it waiting for,
what is next. The * Status headline carries the TODO state and its
subheadings carry the operational detail. See task in
document types for the structure.
The implication for the orchestrator and agent: every meaningful
action updates Status and #+updated before control yields. This is
a hard discipline. Tasks that fall out of sync with reality are how
the v0 system rotted; audit enforces freshness here so it cannot
recur.
When System 3, 4, 5 run
On demand, in their own sessions:
- System 3 — when planning or closing a sprint, or when the user senses the sprint is drifting from its mission.
- System 4 — when planning a version, sequencing sprints, or considering release scope.
- System 5 — when a far story arrives, when the product identity needs refinement, or when a candidate version is being shaped.
These sessions read and write the relevant documents but do not spawn agents. They produce structural changes (mission rewrites, story re-prioritisation, scope decisions) that subsequent System 2 sessions inherit.
What this model does not yet have
- Automated orchestrator dispatch — the user manually starts orchestrators today.
- A queue or lock — we rely on the user to avoid assigning conflicting stories to parallel orchestrators.
- Multi-user coordination — single-user assumption.