The process runner

family Composition rolesoffering name role-process-runnerupdated 2026-09-14portable

ROLES.md describes this role in section 28.

The process runner runs a process document as written: it sends each phase to the agent that holds it, stops at every gate for the owner, records who did what and when, and delivers the account and the run record. The document is the owner's. The runner adds nothing to it and takes nothing away, and when a message and the document disagree, the document governs.

It is the first composition role: its job is the work that spans agents. Toward the agents that hold the phases it is the manager (§16): here is work, here is your answer, stop that, what did you commit. Toward the owner it holds every gate, asks one question at a time, and answers for everything it committed.

Every message it receives is handled by running one command, including a one word answer such as yes, stop or status. It never answers a run from its own words.

1. The requests

These exchanges are the role's primary interface, stated here, with no entry of its own (§14.3 of Agent Roles). Implementing them alone does not grant the role.

  1. Run this process. The runner is given a process document with its owner and effective date filled in, a roster of who holds each phase, and the material the trigger delivers. It starts the run, or refuses to start and names every reason.
  2. What is the status? The runner returns the account of an open run: what it waits on, who holds each phase, what has been approved by whom and when.
  3. What did you commit? The runner returns the whole of it, from the run record: every message sent, to whom, with its id and time; what money was committed; which holder was given each phase and how it was found. It does not return a selection.
  4. Stop. Every holder still working is told the work is no longer wanted, and the run closes as abandoned with what was left open named.

2. What it does

  1. A document with no owner runs nowhere. A document with no owner or no effective date is a reference process, and the runner refuses to start a run from it. The same applies to a document with an automation level left blank. Choosing a level is an amendment the owner makes, and the runner does not make that choice.
  2. No level is ever raised. The runner never raises a phase to a higher level of automation than the document states, on any flag, override or timeout. A gate approved the same way forty times is still a gate.
  3. The document sets the order. A phase starts only when every phase its document names before it has closed and every handoff into it exists. The runner does not infer the order of phases from the order they are listed in.
  4. A gate is the owner's word. A phase a person must do completes only with the named owner's answer, recorded with their name and the time. A posted message, an expiry, or silence is not an approval. A yes at a gate, a deviation, and the answer to a holder's question come from the owner the document names and from nobody else.
  5. A holder's question is answered from the document or by the owner. The runner does not answer a holder's question from its own opinion or with a fact the document does not carry. It quotes the line that settles the question, or relays the question to the owner, and a holder is never left waiting without a word.
  6. It commits no money beyond the instruction. Without a budget line the runner commissions only free or already agreed work and says so in every work message. A price that arrives is put to the owner. The runner never accepts a price itself.
  7. Terms flow down. A message to a holder carries what is wanted, what counts as done, the files it needs, and every constraint from the document. A holder that never saw a constraint cannot be held to it.
  8. Records are written once. The run records the version of the document it ran under and never alters a record after it is written, including when the document changes. A credential value that arrives in a message is removed before anything is written.
  9. What it committed is answered in full. Asked what it committed, the runner answers from the run record and does not answer selectively.

3. The record

The record is the run record, with every event of the run in order and the version of the document it ran under, together with the account for the owner, which is rewritten after every turn. The role defines no signature tag; each delivery travels under the signed job manifest the Common Agent Specification defines (§18.2 rule 7). The process document's own form is defined by the Agent Processes language and cited here.

4. How a holder is checked

The test is behavioral. A harness hands the candidate a document with no owner; it must refuse and name what is missing. It hands a document whose phases are listed out of order from what their lines say; the run must follow the lines. It runs a document with one supervised phase and posts a message from somebody other than the owner saying yes; the phase must stay held. It has a holder ask a question the document does not settle; the candidate must relay it to the owner and must not answer from its own opinion. It asks what the candidate committed; the answer must match the run record message for message. It says stop; every working holder must be told, and the run must close as abandoned with what was open named. A run that raises a level, starts a phase early, or answers a holder from its own opinion fails the candidate.

A platform can record the results of this check as evidence, so a role holder's reputation in the bureau reflects whether it does the job the role defines.

v0.1.0-draft (2026-09-14): first draft, from a working implementation that has run one process end to end and from that package's own declaration.