Internal systems & data
The file-backed systems that hold an org's shared state, and the complete on-disk layout of an org home.
An org’s state is just files. Every internal system stores its state as plain files on disk, so it’s inspectable, diffable, and crash-safe: the board is the source of truth, every task is persisted before it runs, and a mid-cycle crash resumes next tick.
The systems
| System | Holds | Where |
|---|---|---|
| GoalTracker | goals + progress + the fair-rotation cursor | workspace/goals |
| TaskBoard | the task DAG — deps, delegation, quality flags | workspace/tasks |
| Triggers | schedules, webhooks, process watchers + firing state | workspace/triggers |
| CMS | shared content (meeting minutes, decisions) | workspace/cms |
| CRM | shared contacts | workspace/crm |
| Roster | the ledger of employed agents | agents/roster.json |
| Chat | the operator ↔ org conversation | logs/chat |
| AuditLog | append-only JSONL, one file per actor | logs/audit |
| CostLedger | every LLM call’s tokens + USD | logs/cost/ledger.jsonl |
Per-agent worklogs and long-term memory live under agents/<id>/, not in the
shared CMS.
Structured stores are runtime-owned
The structured stores — goals, tasks, crm — are owned and written by
the runtime, not hand-edited by agents. That’s what keeps them schema-valid,
atomic, and fully audited. Agents read the shared data directly (it’s files) and
produce their work as files and artifacts, but they go through the systems to
change structured state.
Don’t hand-edit
goals,tasks, orcrmyourself either — go through the running org so the changes stay valid and audited.
The on-disk layout
workspace/ holds only shared data; per-agent files and all logs live
elsewhere under the org home:
<org-home>/
QUORUM.md the org definition (name, budget, mission, agents) — yours to version
agents/ each agent's working directory (its Bash/code sandbox)
<id>/ MEMORY.md, scratch, artifacts
roster.json the ledger of employed agents
workspace/ SHARED data / internal systems only
cms/ crm/ goals/ tasks/
logs/
audit/<actor>.jsonl append-only audit log, one file per actor
cost/ledger.jsonl token + money cost ledger
analytics.db SQLite read-model projected from the audit log
dashboard/dashboard.json org-owned dashboard spec
.quorum.json on-disk format stamp (created at init)
The audit log & analytics
Every bus message and system action is recorded to the audit log — one JSONL
file per actor under logs/audit/. On boot, the runtime projects the audit log
into a SQLite read-model (logs/analytics.db, via Node’s built-in
node:sqlite) and then follows it live, which is what powers the dashboard’s
metrics and audit feed without re-scanning JSONL on every request.