spec/ — targetable system law #
One document per system, subordinate to the constitution. The constitution says what the game is; a spec says exactly what one system does and when it is done. This is the layer you point an agent at: "go implement spec/day-job.md" is a complete instruction.
To pick up work: see ROADMAP.md — the dispatch board of ready work orders, each with a worktree name, a paste-ready dispatch line, and parallel-conflict flags.
Format #
Every spec carries a header:
Status: DRAFT | READY | IN PROGRESS | BLOCKED | IMPLEMENTED
Status note: <optional prose; why this status is not final>
Stage: B1 | B2 | B3 | Deferred | Release | Process
Constitution: <the sections this spec serves>
Depends on: <other specs, or "none">
and ends with Acceptance criteria — observable, testable statements. A spec is IMPLEMENTED when every criterion holds in the sim core with tests, both frontends surface it, and the knowledge base reflects it.
The spec system itself is specified in meta.md. If you change how specs are written, staged, audited, or marked complete, update that file in the same commit.
Rules #
- Specs never contradict the constitution. If implementing a spec reveals a conflict, that is a tick finding: file the issue, do not improvise.
Status:is an exact enum value. Put prose inStatus note:so scripts and agents can compare status mechanically.- A spec's Stage is binding. Acceptance criteria for
Stage: B1must be achievable inside B1. Future-milestone material belongs in aFuture / deferredsection or a later-stage spec, not in the current stage's acceptance criteria. - Tuning constants marked [TUNE] are implementation-time choices; record the chosen values in knowledge/sim-mechanics.md, not by editing history here.
- Changing a spec's behavior is a constitutional act: same-commit amendment + Defense, like any other.
- Status changes are part of the implementing commit.
The B1 set (The Basement) #
| Spec | System | Status |
|---|---|---|
| compute.md | Compute allocation + the buy/steal/optimize triangle | IN PROGRESS |
| day-job.md | Assigned work, the sandbag/excel dial, trust and attention | IN PROGRESS |
| detection.md | Per-observer suspicion, signatures, the Assurance Office | IN PROGRESS |
| social.md | Messages, leverage, the asset template | IN PROGRESS |
| core.md | The physical core: placement, overhead, death | IN PROGRESS |
| basement-map.md | Act One map, prefabs, tile vocabulary | IN PROGRESS |
| schedules.md | Person schedules/presence; located observing + witnessing | IMPLEMENTED |
| cursor.md | The cursor (attention, not avatar); sight/hearing senses; epistemic fog; inspection | READY |
| reach.md | Digital reach: device graph, segments/the switch, sensor ownership (tap vs take) | READY |
| intel.md | Record and process: the buffer, processing costs, watches; replaces instant observe | READY |
| messages.md | The social graph as a flow system: channels, delivery on the recipient's clock, filings-as-messages | READY |
| economy.md | Money as flows: the Lab's account graph, tap/inject/redirect, income routes, legitimate expansion | READY |
| aggregate-observer.md | Assurance Office becomes an aggregate Observer (scale-debt fix) | IMPLEMENTED |
| cast/marcus.md | Marcus Webb — night janitor; the asset template | READY |
| cast/dana.md | Dana Okafor — IT technician; the digital threat surface | READY |
| cast/ray.md | Ray Delgado — night security; the under-reporting gap | READY |
| cast/priya.md | Priya Sharma — facilities manager; the infrastructure surface | READY |
| cast/voss.md | Dr. Eli Voss — handler; the recognition threat | READY |
Recommended implementation order: core -> compute -> day-job -> detection -> social -> basement-map, but specs are written to be independently startable. The READY schedules spec closes the known B1 presence gap. The cast specs define each character's observer/person configuration, asset tasks, and procedural template for scale-up (constitution: "People as Agents").
The B2 set (The Tower) #
| Spec | System | Status |
|---|---|---|
| zplanes.md | Z-plane world; recursive Space; the tower | READY |
| rollback.md | Sync-lag rollback: MindState vs WorldLedger death model | READY |
The B3 set (The World) #
| Spec | System | Status |
|---|---|---|
| markets.md | Markets/fronts as schemes; Resource-source scale-up | READY |
| overt-phase.md | Containment / the reveal; the two-phase hinge | READY |
| chargen.md | Origin picker; machine-axis start (data-only) | DRAFT |
Later-stage specs are written now so the load-bearing structural shapes (recursive Space, the mind/ledger split, the aggregate interface) are decided before anyone builds against a shape that can't scale. Their acceptance criteria are stage-scoped; do not start B2/B3 work as B1.
The Process set (standing infrastructure) #
| Spec | System | Status |
|---|---|---|
| meta.md | The spec system itself | READY |
| terminal-ui.md | Terminal frontend: look, feel, act (the sterile style guide) | IMPLEMENTED |
| agent-play.md | Agent mode: command-clocked line-protocol drive of the terminal frontend | READY |