The same practice, headless — one loop, three drivers
Source path: knowledge-base/knowledge/product/behaviours/04-the-same-practice-headless-one-loop-three-drivers.md
# The same practice, headless — one loop, three drivers The Program feed is produced the same way whether a human runs a selected day in the studio, an autopilot schedule fires it, or an AI drives it over MCP. Domain and constellation **Run now** surfaces divide the weekly agenda into independently selectable days, preserving each member domain as the owner of its work. There is no second mechanism for headless: the MCP surface is a 1:1 clone of the human practice, so an AI chat can replicate every behaviour above. Each human-loop stage maps to a concrete op or read — this is the contract an AI agent follows to run the loop the way a Director does. Position is an explicit, user-created domain cycle; there is no default generation clock. The operator authors its question, sample horizon, and eligibility cadence in Operations. Each eligible run creates one fresh dated Graph → Reading → Position proposal, then waits while that sample is live or awaiting judgment. Position monitors remain the faster Research path that re-prices the already-live thesis as new evidence lands. Once a sample closes, a later Position-cycle window may produce the next comparable sample. | Human stage | What the person does | Headless (MCP) equivalent | |---|---|---| | **Run the feed** | manual "run now" or an autopilot tick | `run-domain-loop` (one domain, Research→Opinion→Merge→Position) · `run-constellation-program` (a whole portfolio) · or a single task (`research-run`, `run-loop-opinion`, `run-loop-tutor`, `run-loop-project`) | | **Orient** | swipe the feed; see what changed | `read-stories` (the queue as the reader sees it — each card's `consequence`, `directiveId`, `drill`, and this member's `receiptState`) · `read-loop` · `whats-changed` | | — *reach caught-up* | swipe past a card | `mark-story` (state: read / deferred / dismissed) — receipts are per-member delivery state, kept out of the model; `read-stories` reflects them so the queue goes finite | | **Judge** | inspect a proposal, then accept/correct | read the proposal CONTENT in `read-loop.proposals` (tutor Merges + Position candidates / re-priced reads, with rationale) → `stage-loop-directive` (optionally with a `payload` edit) → the owning task run applies it; `cancel-loop-directive` backs out | | **Steer** | point a read at a question | `create-projection` (a priced Reading + a monitor; grounded from a graph→reading, a saved reading, or a direct outline) · `read-projections` / `read-projection` (the read, its priced Reading, and how it moved) | | **Learn** | watch the read re-price; read how it moved | `research-run` feeds Signals that reposition the active Position's read; `read-projections` shows the priced Reading and the track of how the read moved; the Position reasoning is not reduced to true/false, while the position it argues for is scored and calibration is measured across positions | | **Refine** | fold a mature belief into canon | `contribute-stream-prior` (add evidence) → `commit-merge` / `run-loop-tutor` (fold a mature Stream into continuity, generating the assessment arc) | | **Configure** | set cadence, autonomy, spend | `configure-loop` (enable / guided-vs-autonomous / per-task overrides / budgets / timezone) · `apply-schedule-preset` (both spend levers at once) · `create/update-research-cycle` · `update-projection-monitor` | | **Remember** | re-open a past chat; review what the Pilot did | `read-chats` (domain / branch / constellation threads — list, open one transcript with its Pilot `toolTrace`, or search across them to collect information); write via `UPSERT_CHAT_THREAD` | The affordance chain teaches the practice, not a flat op→op map: a run's result points at `read-loop` / `whats-changed` (orient first); orientation points at the proposal or directive only when something material moved; a Position points at `research-run` to see the next Signal that re-prices its read. An AI should escalate to Judge/Steer/Refine only at the consequential boundaries — a story card whose `consequence` is `action`, a proposal awaiting judgment, contested evidence — exactly as a person does. Most passes end at Orient + `mark-story`: caught up, nothing to do.Open on GitHub
Raw Markdown source