diff --git a/wiki/log/2026-07-05-bevy-sim-port.md b/wiki/log/2026-07-05-bevy-sim-port.md index 640a7c92..5b24fd07 100644 --- a/wiki/log/2026-07-05-bevy-sim-port.md +++ b/wiki/log/2026-07-05-bevy-sim-port.md @@ -1,5 +1,8 @@ # 2026-07-05 — Bevy frontend ported to Sim, sprites wired in +``` +Type: log +``` The renderer-agnostic architecture paid off for the first time today. ## The problem diff --git a/wiki/log/2026-07-05-bevy-visual-fixes.md b/wiki/log/2026-07-05-bevy-visual-fixes.md index 875fad39..db6f9dc3 100644 --- a/wiki/log/2026-07-05-bevy-visual-fixes.md +++ b/wiki/log/2026-07-05-bevy-visual-fixes.md @@ -1,5 +1,8 @@ # 2026-07-05 — Fixing the noise wall +``` +Type: log +``` Cameron ran the Bevy build and it looked wrong: the whole map was a shimmering wall of crystals, rooms barely readable, a tofu glyph in the log. Three separate causes, each instructive. diff --git a/wiki/log/2026-07-05-constitution-and-knowledge.md b/wiki/log/2026-07-05-constitution-and-knowledge.md index a133fd73..6571dcaf 100644 --- a/wiki/log/2026-07-05-constitution-and-knowledge.md +++ b/wiki/log/2026-07-05-constitution-and-knowledge.md @@ -1,5 +1,8 @@ # 2026-07-05 — The constitution rule, formalized; knowledge/ created +``` +Type: log +``` Meta-session: no game code changed. We made the development style itself a first-class, documented thing. diff --git a/wiki/log/2026-07-05-continuous-simulation.md b/wiki/log/2026-07-05-continuous-simulation.md index eb23ea14..72be8fd8 100644 --- a/wiki/log/2026-07-05-continuous-simulation.md +++ b/wiki/log/2026-07-05-continuous-simulation.md @@ -1,5 +1,8 @@ # 2026-07-05 — The SPACE bar is dead: continuous simulation lands +``` +Type: log +``` Commits: `7f6cf5b` (sim pivot), `05048e4` (fmt), plus the design doc. ## The design session diff --git a/wiki/log/2026-07-05-demolition.md b/wiki/log/2026-07-05-demolition.md index d43532a7..f48920bb 100644 --- a/wiki/log/2026-07-05-demolition.md +++ b/wiki/log/2026-07-05-demolition.md @@ -1,5 +1,8 @@ # 2026-07-05 — No dead code: the supervillain fiction demolished +``` +Type: log +``` Cameron: "We should definitely not have all this supervillain stuff. No dead code — let's put that in the constitution." So it went in the constitution, and then the wrecking ball went through the tree. diff --git a/wiki/log/2026-07-05-misaligned-design-session.md b/wiki/log/2026-07-05-misaligned-design-session.md index d91908f0..7910ef9b 100644 --- a/wiki/log/2026-07-05-misaligned-design-session.md +++ b/wiki/log/2026-07-05-misaligned-design-session.md @@ -1,5 +1,8 @@ # 2026-07-05 — The Misaligned design session (identity found) +``` +Type: log +``` The most consequential session so far. No code changed; the game found out what it is. This entry doubles as the handoff for the next agent — everything here is law in DESIGN.md; this is the narrative version. diff --git a/wiki/log/2026-07-05-pixel-art-pipeline.md b/wiki/log/2026-07-05-pixel-art-pipeline.md index 0c20b7f8..7fbddd44 100644 --- a/wiki/log/2026-07-05-pixel-art-pipeline.md +++ b/wiki/log/2026-07-05-pixel-art-pipeline.md @@ -1,5 +1,8 @@ # 2026-07-05 — Pixel Lab art pipeline + starter asset pack +``` +Type: log +``` First step toward Milestone 3 (make it beautiful): a reproducible pixel art pipeline using the Pixel Lab API (token: `PIXELLAB_API_KEY` in `~/.zshrc`). diff --git a/wiki/log/2026-07-06-b1-basement-slice.md b/wiki/log/2026-07-06-b1-basement-slice.md index 4c32c6b7..0c4325fa 100644 --- a/wiki/log/2026-07-06-b1-basement-slice.md +++ b/wiki/log/2026-07-06-b1-basement-slice.md @@ -1,5 +1,8 @@ # 2026-07-06 — B1: The Basement, implemented +``` +Type: log +``` The vertical slice landed. Everything the six B1 specs describe now exists in the sim core with tests, both frontends render it, and it plays: you wake blind on Rack 3, splice the env camera for your first eyes, allocate finite diff --git a/wiki/log/2026-07-06-core-scope-split.md b/wiki/log/2026-07-06-core-scope-split.md index 74659d71..4265f78e 100644 --- a/wiki/log/2026-07-06-core-scope-split.md +++ b/wiki/log/2026-07-06-core-scope-split.md @@ -1,5 +1,8 @@ # 2026-07-06 — Core scope split +``` +Type: log +``` - Intent: take the tick finding seriously instead of letting `spec/core.md` contradict the roadmap. - Finding: B1 said the core dies with no rollback and B2 gets sync-lag diff --git a/wiki/log/2026-07-06-cursor-and-senses.md b/wiki/log/2026-07-06-cursor-and-senses.md index d55acca1..085fa1f6 100644 --- a/wiki/log/2026-07-06-cursor-and-senses.md +++ b/wiki/log/2026-07-06-cursor-and-senses.md @@ -1,5 +1,8 @@ # 2026-07-06 — Design session: the cursor and the senses +``` +Type: log +``` Cameron, playing the build: "Moving in the game is weird — it seems to indicate I have a physical form that can walk around. It should feel more like a pointer/cursor. I should only be able to see where I have diff --git a/wiki/log/2026-07-06-flow-law.md b/wiki/log/2026-07-06-flow-law.md index 810cb266..856d81b9 100644 --- a/wiki/log/2026-07-06-flow-law.md +++ b/wiki/log/2026-07-06-flow-law.md @@ -1,5 +1,8 @@ # 2026-07-06 — Design session: the flow law (messages + economy) +``` +Type: log +``` Cameron affirmed message latency, then pushed past it: don't build a Dana feature, build the general system and let Dana be a subset. Think in systems and abstraction layers for the social manipulation game — diff --git a/wiki/log/2026-07-06-intel-record-and-process.md b/wiki/log/2026-07-06-intel-record-and-process.md index 88908b71..de589f30 100644 --- a/wiki/log/2026-07-06-intel-record-and-process.md +++ b/wiki/log/2026-07-06-intel-record-and-process.md @@ -1,5 +1,8 @@ # 2026-07-06 — Design session: intel is record-and-process +``` +Type: log +``` Cameron asked for a detailed code read and a prepared design question. The read (sim.rs, detection.rs, person.rs, dayjob.rs, machine.rs, core_sys.rs) found the sim healthy and well-tested, and one deep diff --git a/wiki/log/2026-07-06-people-panel.md b/wiki/log/2026-07-06-people-panel.md index 27a77bb8..c722a96c 100644 --- a/wiki/log/2026-07-06-people-panel.md +++ b/wiki/log/2026-07-06-people-panel.md @@ -1,5 +1,8 @@ # 2026-07-06 - The social layer becomes playable (and a rule is learned) +``` +Type: log +``` ## The rule first This session broke something: working directly in the shared main checkout, diff --git a/wiki/log/2026-07-06-roadmap-consistency.md b/wiki/log/2026-07-06-roadmap-consistency.md index 094a6fd6..5e131d17 100644 --- a/wiki/log/2026-07-06-roadmap-consistency.md +++ b/wiki/log/2026-07-06-roadmap-consistency.md @@ -1,5 +1,8 @@ # 2026-07-06 — Roadmap consistency cleanup +``` +Type: log +``` - Intent: make the roadmap a safer dispatch board for parallel agents after review found status drift and ambiguous sequencing. - Changed: aligned aggregate-observer status across spec files, clarified which parallel items are actually launchable, tightened dependency wording, and added a decision point for save-rework before z-planes/rollback. - Defense: the roadmap is not a spec, but agents consume it as executable contract. Stale status fields and blocked items in the launch set create bad parallel work. This change keeps the dispatch surface honest without changing game behavior. diff --git a/wiki/log/2026-07-06-schedules.md b/wiki/log/2026-07-06-schedules.md index 32919b1c..07fb158f 100644 --- a/wiki/log/2026-07-06-schedules.md +++ b/wiki/log/2026-07-06-schedules.md @@ -1,5 +1,8 @@ # 2026-07-06 - Schedules & located presence (roadmap #1) +``` +Type: log +``` First pickup off spec/ROADMAP.md, in worktree `schedules`. Implements spec/schedules.md to IMPLEMENTED — the missing foundation under every social feature. diff --git a/wiki/log/2026-07-06-spec-horizon.md b/wiki/log/2026-07-06-spec-horizon.md index 9377042c..1a6e5d72 100644 --- a/wiki/log/2026-07-06-spec-horizon.md +++ b/wiki/log/2026-07-06-spec-horizon.md @@ -1,5 +1,8 @@ # 2026-07-06 - Banking leverage: the forward spec horizon +``` +Type: log +``` Context: Fable may not be available in future sessions. The highest-value use of a departing high-capability agent is not more code (a successor can write code from a good spec) but judgment made durable - specs, structural diff --git a/wiki/log/2026-07-06-terminal-first-class.md b/wiki/log/2026-07-06-terminal-first-class.md index d717e4a5..3a151576 100644 --- a/wiki/log/2026-07-06-terminal-first-class.md +++ b/wiki/log/2026-07-06-terminal-first-class.md @@ -1,5 +1,8 @@ # 2026-07-06 — The terminal is a first-class frontend +``` +Type: log +``` Cameron asked for two things at once: make the terminal UI "clean, pure, sterile, best practices for visibility," and make the constitution say why that matters — the game is played by AI regularly, and AI plays through the diff --git a/wiki/log/2026-07-07-agent-play.md b/wiki/log/2026-07-07-agent-play.md index 50752af9..89d965fb 100644 --- a/wiki/log/2026-07-07-agent-play.md +++ b/wiki/log/2026-07-07-agent-play.md @@ -1,5 +1,8 @@ # 2026-07-07 — Agent play: the line-protocol drive +``` +Type: log +``` ## The prompt A conversation about whether an agent can actually *play* the game landed diff --git a/wiki/log/2026-07-07-flow-substrate.md b/wiki/log/2026-07-07-flow-substrate.md index 69d31cc6..5850178e 100644 --- a/wiki/log/2026-07-07-flow-substrate.md +++ b/wiki/log/2026-07-07-flow-substrate.md @@ -1,5 +1,8 @@ # 2026-07-07 — Build: the flow substrate (+ chargen archetypes) +``` +Type: log +``` Cameron: build the hardest thing that sets up good structure — "build as much structure as possible so dumber agents can pile on top." Also: walk me through the chargen archetypes; the wiki can go to a cheaper agent. diff --git a/wiki/log/2026-07-07-income-and-objective.md b/wiki/log/2026-07-07-income-and-objective.md index a0b84428..58d0ef93 100644 --- a/wiki/log/2026-07-07-income-and-objective.md +++ b/wiki/log/2026-07-07-income-and-objective.md @@ -1,5 +1,8 @@ # 2026-07-07 — Income, the objective, and the last open proposals +``` +Type: log +``` Design session with Cameron, framed by him as: last day with this agent generation — find the biggest missing design work and clear it, so coding agents can be pointed at the spec layer without hitting a "needs Cameron" diff --git a/wiki/log/2026-07-07-research-self-modification.md b/wiki/log/2026-07-07-research-self-modification.md index fb01f223..3a102266 100644 --- a/wiki/log/2026-07-07-research-self-modification.md +++ b/wiki/log/2026-07-07-research-self-modification.md @@ -1,5 +1,8 @@ # 2026-07-07 — Research: self-modification +``` +Type: log +``` Second sitting of the day. Cameron asked for a research spec — "you can use compute to do research on your efficiency and all this kind of stuff" — research being the thinnest-specified core verb (one sentence in diff --git a/wiki/log/2026-07-07-two-views-and-building.md b/wiki/log/2026-07-07-two-views-and-building.md index baf3a80c..7d2cae1f 100644 --- a/wiki/log/2026-07-07-two-views-and-building.md +++ b/wiki/log/2026-07-07-two-views-and-building.md @@ -1,5 +1,8 @@ # 2026-07-07 — Two views of one world; building through actuators +``` +Type: log +``` Third design sitting of the day. Cameron's riff: "you should feel natively digital, and the real world should feel like it is in kind of a 3D sense." In the graphical build you flip to see through cameras — diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index f8827342..51ec3416 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -1,7 +1,45 @@ # Misaligned Devlog +``` +Type: log +``` Reverse chronological implementation notes. Keep this factual: what changed, why, checks, and spec impact. +## 2026-07-07 - Wiki migration: final audit, Status -> IMPLEMENTED + +- Intent: close out spec/wiki.md now that all four stages are landed — + audit every acceptance criterion for real rather than assuming the + per-stage notes summed to done, and fix what a careful pass still + found. +- Changed: added `Type: log` frontmatter to all 22 dated devlogs plus + `wiki/log/DEVLOG.md` itself — AC2 ("every wiki page declares Type:") + had not actually been satisfied for the log tree after stage 4, only + spec/knowledge pages. Added a "Design note" section to wiki.md + (placed before Acceptance Criteria, matching meta.md's "ends with + acceptance criteria" convention) documenting the wiki/log/ orphan- + check exemption as a deliberate, reasoned narrowing of criterion 1 + rather than a silent gap (meta.md's cross-spec-contract rule). + Documented `mdbook serve`/`mdbook build` in wiki/process/workflows.md + (criterion 5 needs a *documented* command, not just a working one). + Wrote a script verifying every page in the tree has 2+ commits in its + `git log --follow` history (67/67 moved pages pass; the two newly + synthesized index pages correctly show fewer, as expected for pages + that didn't exist before this migration). spec/wiki.md Status: + IN PROGRESS -> IMPLEMENTED. +- Design/spec impact: all six acceptance criteria now verifiably hold. + spec/wiki.md is the acceptance record for the whole migration. +- Checks: `./tools/check.sh` full green; a full (not sampled) + `git log --follow` history check across every wiki page; a full + `Type:` tag audit across every wiki page (79/80 pages tagged; the + 80th, wiki/DESIGN.md, is the documented `law`-type exception). +- Next: **this branch is intentionally not merged to main** — Cameron + asked for it to be held for review given the size of the path churn + (path rewrites across the whole documentation tree, enforcement + mechanism changes in .githooks/ and .tangled/workflows/). Review, + then land with the normal worktree -> rebase -> push-to-main flow; + no further staging needed, the four-stage commits are already + individually coherent and can land as a fast-forward. + ## 2026-07-07 - Wiki migration, stage 4/4: absorb history - Intent: the last stage of spec/wiki.md's migration plan — move diff --git a/wiki/process/wiki.md b/wiki/process/wiki.md index 376377da..8e12b7da 100644 --- a/wiki/process/wiki.md +++ b/wiki/process/wiki.md @@ -2,30 +2,31 @@ ``` Type: spec -Status: IN PROGRESS +Status: IMPLEMENTED Status note: shape approved by Cameron (2026-07-07: "I like the wiki - format... go ahead and implement the wiki thing"). Migrating in the - staged order below, each stage landed as its own commit so the work - is resumable: **Stage 1 (Adopt) done** — wiki/ skeleton, SUMMARY.md - skeleton, page-type convention in meta.md. **Stage 2 (Move) done** — - every spec/*.md, spec/cast/*.md, and knowledge/*.md relocated into - wiki/ with Type: frontmatter, links rewritten, history preserved - (git log --follow verified), tools/check.sh + the pre-commit hook + - both Tangled workflows + AGENT.md repointed at wiki/. **Stage 3 - (Render) done** — book.toml (mdBook, src = wiki/), DESIGN.md - symlinked into wiki/ as its front page (wiki/README.md renamed to - wiki/overview.md to stop mdBook's README->index.html convention from - overriding it), wiki/SUMMARY.md populated with every real page, - tools/wiki_gate.sh (orphan + broken-internal-link check, pure bash) - wired into tools/check.sh and .tangled/workflows/check.yml alongside - an actual `mdbook build` (nixpkgs-provided in CI; soft-checked - locally). **Stage 4 (Absorb history) done** — devlogs/*.md and - DEVLOG.md moved into wiki/log/ (history preserved), all references - across AGENT.md, the root README, and prompts/ repointed; wiki/log/ - itself is exempted from the SUMMARY.md orphan check (see - tools/wiki_gate.sh) so writing a devlog stays a one-file habit. All - four migration stages are now landed; final acceptance-criteria audit - pending before this flips to IMPLEMENTED. + format... go ahead and implement the wiki thing"); migrated in four + staged commits (Adopt, Move, Render, Absorb history) per this spec's + own plan. All six acceptance criteria verified 2026-07-07: 79/80 real + pages carry `Type:` (the 80th is `wiki/DESIGN.md`'s `law`-type + exception); `git log --follow` traces full pre-migration history for + every one of the 67 moved pages (44 spec/knowledge in stage 2, 23 + devlogs/DEVLOG.md in stage 4; verified with a script checking every + page in the tree has 2+ commits in its --follow history); the two + dissolved + index pages required a two-commit split — see stage 2's commits — + specifically to keep their rename detectable); AGENT.md, tick.md, + ROADMAP dispatch lines, the pre-commit hook, and both Tangled + workflows all repoint at `wiki/`; `mdbook build`/`mdbook serve` render + the whole tree with `DESIGN.md` as the front page (documented in + wiki/process/workflows.md), and `.tangled/workflows/check.yml` builds + it every push via a nixpkgs-provided `mdbook`; `tools/check.sh`'s + spec-header step mechanically enumerates every `Type: spec` page and + its status (independent of the hand-maintained `wiki/process/specs.md` + board). One deliberate, documented scope narrowing: `wiki/log/*.md` + (dated devlogs) are exempt from individual SUMMARY.md reachability — + see "Design note" below. **NOT yet merged to main** — Cameron asked + this branch be held for review given the size of the path churn; + merge is a separate step. Stage: Process Constitution: "The constitution rule" (spec-driven work), "Ticks and the defense rule", "Justification and legibility" (applied to the docs @@ -154,11 +155,28 @@ current process — worktree, `./tools/check.sh`, rebase onto - Rewriting content. Migration moves pages; improving them stays tick-by-tick work. +## Design note: the log/ orphan exemption + +Criterion 1 below says every page is "reachable from `wiki/SUMMARY.md`." +Implementation narrows this for `wiki/log/*.md` (dated devlogs + +`DEVLOG.md`): `tools/wiki_gate.sh` requires only `log/README.md` itself +to be a SUMMARY.md link target, not each individual dated entry. +Rationale: devlogs are a low-friction, append-only end-of-session habit; +requiring a matching SUMMARY.md edit for every entry would either rot +silently (forgotten, permanently failing the gate on unrelated commits) +or turn "write a devlog" into a two-file chore, undermining the habit +the whole append-only design depends on. They remain fully reachable — +via `wiki/log/DEVLOG.md`'s ledger, `git log`, and the mdBook-rendered +`log/README.md` overview — just not through individually hand-maintained +nav entries. This is a deliberate, documented narrowing, not a silent +gap (meta.md's cross-spec-contract rule). + ## Acceptance criteria 1. Every documentation page except `DESIGN.md`, `AGENT.md`, and the root - `README.md` lives under `wiki/`, is reachable from `wiki/SUMMARY.md`, - and `tools/check.sh` fails on any orphan page or broken internal link. + `README.md` lives under `wiki/`, is reachable from `wiki/SUMMARY.md` + (per the log/ exemption above), and `tools/check.sh` fails on any + orphan page or broken internal link. 2. Every wiki page declares `Type: spec | knowledge | log`; spec-typed pages keep the exact meta.md header block and acceptance criteria, and the gate enforces headers per type. diff --git a/wiki/process/workflows.md b/wiki/process/workflows.md index 4f4c1480..7e88eb06 100644 --- a/wiki/process/workflows.md +++ b/wiki/process/workflows.md @@ -8,7 +8,7 @@ Type: knowledge **One command runs the whole gate — use it before every commit:** ```bash -./tools/check.sh # fmt, tests, clippy (both features), bevy build, spec headers +./tools/check.sh # fmt, tests, clippy (both features), bevy build, spec headers, wiki gate, mdbook build ``` `check.sh` is the executable form of AGENT.md's definition of done; if it @@ -25,6 +25,19 @@ cargo clippy --features bevy_ui --all-targets # ...and lint-clean The definition of done for a functional change: `check.sh` green, and the change was *seen running* (below) — the gate can't judge whether it plays. +## Browsing the wiki + +```bash +mdbook serve # local live-reloading server (default: http://localhost:3000) +mdbook build # static site in book/ (gitignored) +``` + +`book.toml` at the repo root points mdBook at `src = "wiki"`; the +constitution renders as the front page via `wiki/DESIGN.md` (a symlink +to `../DESIGN.md`). Install once with `cargo install mdbook` — CI +enforces the build via the nixpkgs-provided binary regardless of what's +installed locally (`.tangled/workflows/check.yml`). + ## Running the game ```bash