Every ticket as the root of its provenance graph — goal, patch, approval, runs and (as the ticket-class build lands) mandate, manifestations, guarantees, journey, artifacts and children. Rendered through the <<<TicketGraphList>>> tag.
Build: Ollama agent adapter — drop-in replacement for `claude -p` in pair_loop
goal
Build an agent runner pair_loop calls INSTEAD of `claude -p`: same contract (birth prompt in; deliverable file written; final-line JSON out), backed by ollama /api/chat with tools + the role's model (per R2). MUST: enforce structured output (JSON-mode/grammar/retry per R4); restrict tools to the MCP allowlist (per R3); register the agent + journal via the governed routes. Add `--engine ollama|claude` to pair_loop to select it. ACCEPTANCE: a documentation ticket run end-to-end with the LOCAL worker settles DONE with a real, verified deliverable. Gated on R2 + R4.
patch
none
approval
unapproved
runs
no runs recorded
mandate (clauses)
not yet recorded — lands with the ticket-class build
manifestations
not yet recorded — lands with the ticket-class build
guarantees
not yet recorded — lands with the ticket-class build
journey (blunders & successes)
not yet recorded — lands with the ticket-class build
artifacts (forge)
not yet recorded — lands with the ticket-class build