diff --git a/DEVLOG.md b/DEVLOG.md index bd264234..b3588651 100644 --- a/DEVLOG.md +++ b/DEVLOG.md @@ -2,6 +2,14 @@ Reverse chronological implementation notes. Keep this factual: what changed, why, checks, and spec impact. +## 2026-07-06 - Roadmap consistency cleanup + +- Intent: make `spec/ROADMAP.md` safer as an agent dispatch board after Co's review found status and sequencing drift. +- Changed: downgraded `spec/aggregate-observer.md` from IMPLEMENTED to IN PROGRESS until the missing toy second-level aggregate test exists; updated `spec/README.md` to match; removed blocked art from the β€œright now” parallel-safe set; tightened schedules' social dependency wording; framed Bevy parity as terminal/README parity rather than a spec-free invention space; added a post-schedules save-rework sequencing decision point. +- Design/spec impact: no game behavior change. This is process/spec hygiene so parallel agents do not treat stale roadmap text as executable truth. +- Checks: `git diff --check`; spec header/status audit; `./tools/check.sh`. +- Next: either add the aggregate scale-proof test in `detection-finish`, or promote aggregate-observer back to IMPLEMENTED only when criterion 4 is actually covered. + ## 2026-07-06 - Detection tick: the Assurance Office becomes an Observer - Intent: fix the recorded priority scale violation (self-similar scale / diff --git a/devlogs/2026-07-06-roadmap-consistency.md b/devlogs/2026-07-06-roadmap-consistency.md new file mode 100644 index 00000000..094a6fd6 --- /dev/null +++ b/devlogs/2026-07-06-roadmap-consistency.md @@ -0,0 +1,6 @@ +# 2026-07-06 β€” Roadmap consistency cleanup + +- 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. +- Checks: `git diff --check`; spec header/status audit; `./tools/check.sh` passed (76 tests plus clippy/build/spec checks). diff --git a/spec/README.md b/spec/README.md index 7fa9e9ab..4f3bea22 100644 --- a/spec/README.md +++ b/spec/README.md @@ -56,12 +56,13 @@ in the same commit. | [core.md](core.md) | The physical core: placement, overhead, death | IN PROGRESS | | [basement-map.md](basement-map.md) | Act One map, prefabs, tile vocabulary | IN PROGRESS | | [schedules.md](schedules.md) | Person schedules/presence; located observing + witnessing | READY | -| [aggregate-observer.md](aggregate-observer.md) | Assurance Office becomes an aggregate Observer (scale-debt fix) | READY | +| [aggregate-observer.md](aggregate-observer.md) | Assurance Office becomes an aggregate Observer (scale-debt fix) | IN PROGRESS | Recommended implementation order: core -> compute -> day-job -> detection -> social -> basement-map, but specs are written to be independently startable. -The two READY specs above close the known B1 gaps (schedules) and the -priority scale violation (aggregate-observer); take either next. +The READY schedules spec closes the known B1 presence gap. The aggregate-observer +spec is functionally mostly landed but remains IN PROGRESS until its scale-proof +toy second-level aggregate test exists; route that through detection-finish. ## The B2 set (The Tower) diff --git a/spec/ROADMAP.md b/spec/ROADMAP.md index cacf692e..a4331d74 100644 --- a/spec/ROADMAP.md +++ b/spec/ROADMAP.md @@ -23,8 +23,9 @@ sim-heavy agents running at once *will* rebase-collide. - 🟩 **isolated** β€” a frontend binary, a test file, a leaf module, or docs. Safe to run alongside anything. -**Parallel-safe set to launch right now (no mutual collision):** #2 (Bevy), -#11 (integration test), #13 (art), plus at most one πŸŸ₯ item. +**Parallel-safe set to launch right now (no mutual collision):** #2 (Bevy) +and #11 (integration test), plus at most one πŸŸ₯ item. #13 (art) is also +isolated, but only once Pixel Lab quota is available again. --- @@ -34,13 +35,15 @@ sim-heavy agents running at once *will* rebase-collide. - **Spec:** [schedules.md](schedules.md) (READY) - **Why:** the missing foundation under every social feature β€” `observe` currently gates on "any controlled sensor", not "a sensor that sees them". -- **Size:** M. **Depends on:** social (done), basement-map. +- **Size:** M. **Depends on:** the merged B1 social surface (not the full + social spec, which remains IN PROGRESS), basement-map. - **Dispatch:** "Work in a worktree named `schedules`. Implement spec/schedules.md end to end (sim + both frontends + save), run ./tools/check.sh, land on main. Set the spec Status when done." ### 2. Bevy interactive parity 🟩 isolated (`src/bin/bevy.rs`) -- **Spec:** none needed β€” bring Bevy to terminal parity. +- **Spec:** no new system spec β€” parity target is the current terminal + behavior plus README controls. - **Why:** Bevy is a read-only sidebar; the terminal has the people panel and action keys. This is the single biggest player-facing gap and touches no shared sim state. @@ -148,6 +151,9 @@ sim-heavy agents running at once *will* rebase-collide. table-driven rewrite to shrink the conflict surface. **Do deliberately, alone β€” not concurrently with any πŸŸ₯ B-item**, since it rewrites what they all edit. +- **Sequencing note:** decide after #1 schedules lands whether to run this + before #6 z-planes. If save.rs still looks like the conflict bottleneck, a + deliberate save de-risk pass may be structural prep, not late cleanup. - **Size:** L. **Dispatch:** "Work in a worktree named `save-rework`. Evaluate and (if favorable) execute a serde or table-driven rewrite of src/save.rs, preserving v4 load + all round-trip tests + legacy migration. Land only with @@ -166,6 +172,7 @@ sim-heavy agents running at once *will* rebase-collide. ## Suggested first wave (no mutual collision) Launch together: **#1 schedules** (the one πŸŸ₯ you run now) + **#2 Bevy** + -**#11 integration test**. When #1 lands, start **#6 z-planes**; hold **#7 -rollback** and **#12 save-rework** until the save format is quiet. **#10 -chargen** waits on your design decision. +**#11 integration test**. When #1 lands, make one explicit sequencing call: +run **#12 save-rework** first if save.rs is still the bottleneck, otherwise +start **#6 z-planes**. Hold **#7 rollback** until #6 lands, and never run #7 +concurrently with #12. **#10 chargen** waits on your design decision. diff --git a/spec/aggregate-observer.md b/spec/aggregate-observer.md index b9290643..164ff2b3 100644 --- a/spec/aggregate-observer.md +++ b/spec/aggregate-observer.md @@ -1,14 +1,12 @@ # Spec: the aggregate observer ``` -Status: IMPLEMENTED -Status note: shipped in commit 3ec6b98 (parallel session) β€” the Assurance - Office is now an Observer with `WatchedInput::Filings`. This spec is - retained as the acceptance record; co's implementation names the enum - `WatchedInput` (Channels/Filings) rather than the `Watch` sketched below, - which is an equivalent shape. Remaining audit item: confirm the toy - second-level aggregate test (criterion 4) exists; if not, that is the one - open acceptance criterion. +Status: IN PROGRESS +Status note: the main aggregate-Observer refactor shipped in commit 3ec6b98: + the Assurance Office is now an Observer with `WatchedInput::Filings`. + Criterion 4 remains open until a toy second-level aggregate test proves the + same code path composes. Keep this status machine-readable; do not mark + IMPLEMENTED until that scale-proof test exists. Stage: B1 β€” The Basement Constitution: "Self-similar scale" (the aggregate-observer law), "The shape of Misaligned" (per-observer suspicion)