Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions design/state/work/142.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/142
Issue: 142
Title: World-graph: demolished guests always route to exits[0], not nearest exit
State: OPEN
State: CLOSED
Rank: 142
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
Criteria:
MirroredAt: 9439b99a2c9f2d2263a0c2ce03c0b73a3b883180
Criteria:
6 changes: 3 additions & 3 deletions design/state/work/145.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/145
Issue: 145
Title: World-graph: scenery placement has no rotation/bounds validation (unlike buildings)
State: OPEN
State: CLOSED
Rank: 145
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
Criteria:
MirroredAt: 9439b99a2c9f2d2263a0c2ce03c0b73a3b883180
Criteria:
6 changes: 3 additions & 3 deletions design/state/work/146.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/146
Issue: 146
Title: World-graph: staff assignment emits both StateChanges unconditionally, even when unchanged
State: OPEN
State: CLOSED
Rank: 146
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
Criteria:
MirroredAt: 9439b99a2c9f2d2263a0c2ce03c0b73a3b883180
Criteria:
6 changes: 3 additions & 3 deletions design/state/work/168.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/168
Issue: 168
Title: Design a defensive-cloning strategy for the Kind.project seam
State: OPEN
State: CLOSED
Rank: 168
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
Criteria:
MirroredAt: 9439b99a2c9f2d2263a0c2ce03c0b73a3b883180
Criteria:
6 changes: 3 additions & 3 deletions design/state/work/180.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/180
Issue: 180
Title: site/ declares five ESLint packages it never runs
State: OPEN
State: CLOSED
Rank: 180
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
Criteria:
MirroredAt: 9439b99a2c9f2d2263a0c2ce03c0b73a3b883180
Criteria:
6 changes: 3 additions & 3 deletions design/state/work/195.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/195
Issue: 195
Title: Enforce StatusEffect.stacking (refresh replaces, resets expiry) when an effect is applied
State: OPEN
State: CLOSED
Rank: 195
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
Criteria:
MirroredAt: 9439b99a2c9f2d2263a0c2ce03c0b73a3b883180
Criteria:
6 changes: 3 additions & 3 deletions design/state/work/203.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/203
Issue: 203
Title: CI: cache Alpine chromium install in Verify Documentation Build
State: OPEN
State: CLOSED
Rank: milestone/3
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
Criteria:
MirroredAt: 9439b99a2c9f2d2263a0c2ce03c0b73a3b883180
Criteria:
6 changes: 3 additions & 3 deletions design/state/work/211.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/211
Issue: 211
Title: Assert per-kind regression evidence exists, so deleting a test class fails the build
State: OPEN
State: CLOSED
Rank: milestone/2
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
Criteria:
MirroredAt: 9439b99a2c9f2d2263a0c2ce03c0b73a3b883180
Criteria:
6 changes: 3 additions & 3 deletions design/state/work/212.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/212
Issue: 212
Title: Vision doc says "two kinds ship in v1"; the repository ships three
State: OPEN
State: CLOSED
Rank: milestone/1
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
Criteria:
MirroredAt: 9439b99a2c9f2d2263a0c2ce03c0b73a3b883180
Criteria:
6 changes: 3 additions & 3 deletions design/state/work/214.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/214
Issue: 214
Title: Slice ledger checkboxes drifted from delivery reality: W50/W51/W66 unticked, W41–W49 not headings
State: OPEN
State: CLOSED
Rank: milestone/1
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
Criteria:
MirroredAt: 9439b99a2c9f2d2263a0c2ce03c0b73a3b883180
Criteria:
6 changes: 3 additions & 3 deletions design/state/work/217.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/217
Issue: 217
Title: docs-deploy.yml never received the Playwright/Chromium fix docs-ci.yml's verify job got; last three deploys failed
State: OPEN
State: CLOSED
Rank: milestone/3
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
Criteria:
MirroredAt: 9439b99a2c9f2d2263a0c2ce03c0b73a3b883180
Criteria:
6 changes: 3 additions & 3 deletions design/state/work/218.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/218
Issue: 218
Title: Envelope-duplication has recurred five times with no mechanical guard; add one
State: OPEN
State: CLOSED
Rank: milestone/4
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
Criteria:
MirroredAt: 9439b99a2c9f2d2263a0c2ce03c0b73a3b883180
Criteria:
6 changes: 3 additions & 3 deletions design/state/work/219.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/219
Issue: 219
Title: design/ has no customer, competitive analysis, or monetization path — the commercial thesis is entirely unrecorded
State: OPEN
State: CLOSED
Rank: milestone/5
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
Criteria:
MirroredAt: 9439b99a2c9f2d2263a0c2ce03c0b73a3b883180
Criteria:
6 changes: 3 additions & 3 deletions design/state/work/245.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/245
Issue: 245
Title: Nothing checks emitted → registered for reason codes, and hand-auditing has now failed twice
State: OPEN
State: CLOSED
Rank: 18
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
Criteria:
MirroredAt: 9439b99a2c9f2d2263a0c2ce03c0b73a3b883180
Criteria:
6 changes: 3 additions & 3 deletions design/state/work/350.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/350
Issue: 350
Title: design/20-contract.md: audit codes table missing building_broken (W83)
State: OPEN
State: CLOSED
Rank: 350
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
Criteria:
MirroredAt: 9439b99a2c9f2d2263a0c2ce03c0b73a3b883180
Criteria:
4 changes: 2 additions & 2 deletions design/state/work/393.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/393
Issue: 393
Title: W105 — Documentation and Landing Publication Review
State: OPEN
State: CLOSED
Rank: milestone/6
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
MirroredAt: 9439b99a2c9f2d2263a0c2ce03c0b73a3b883180
Criteria: W105.1, W105.2, W105.3, W105.4, W105.5, W105.6, W105.7
101 changes: 101 additions & 0 deletions design/state/work/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# Frozen inventory of open engine issues — W106.1

Frozen at commit `9439b99a2c9f2d2263a0c2ce03c0b73a3b883180`, 2026-09-07. Regenerated by re-running
this unit's closure pass against the tracker; not auto-updated by `tools/Update-WorkMirror.ps1`
(that script owns the per-issue `design/state/work/<n>.md` records, not this index).

Every open engine issue at freeze time, its disposition, and where the evidence lives. An issue
closed during this pass (W106.2) is listed under **Closed this run** with the commit that actually
resolved it — none of that work was newly done here, it was found already merged and undocumented
as closed.

## Open — owning a W criterion (programme, in flight)

| # | Title | Criterion | Status |
|---|---|---|---|
| [394](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/394) | W106 — Tracker Evidence Closure | W106 | This unit |
| [395](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/395) | W107 — 0.11 Release Candidate Verification | W107 | Blocked on W106 |
| [396](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/396) | W108 — Publish 0.11 Readiness | W108 | Blocked on W107 |

## Open — standing exemption record (non-programme, deliberately open)

| # | Title | Disposition |
|---|---|---|
| [413](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/413) | 48 slices predate the issue-per-slice convention | Its own text says "left open rather than closed" — it is the standing exemption `/track` must recognise for W0–W40, W61, W63–65, W90–92 (W106.5). Closing it would make the exemption harder to find. No change made. |

## Open — design-state tool incompatibility (owning issue, explicit unavailable result — W106.7)

| # | Title | Current reproduction |
|---|---|---|
| [375](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/375) | Test-DesignState.ps1 findings against this repository's own tree | Re-run 2026-09-07 at this commit: `pwsh tools/Test-DesignState.ps1` reports `Findings (0)`, `Reported (0)`, `Could not evaluate (2)`: `[ContractListUnreadable] SectionNotFound: design/20-contract.md` and `[StateSetAbsent] design/state/ is missing or holds no records other than WorkRef mirrors`, exit code 2. `Test-DesignState.Tests.ps1` (133 passed/0 failed/29 skipped) and `Read-DesignState.Tests.ps1` (10 passed/0 failed/2 skipped) both pass in full against fixtures. The finding set has narrowed since the issue's original 9-failure `-DryRun` reproduction, but `ContractListUnreadable` still fires and is not reported as a pass — the explicit-unavailable result W106.7 requires. Left open; not this unit's to fix (design-state adoption beyond WorkRef mirrors is out of this repository's current scope). |

## Open — non-programme backlog (design gaps, deferred features, code findings; unrelated to W93–W108)

| # | Title |
|---|---|
| [425](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/425) | WorldState.npcs/locations declared but permanently unpopulated |
| [418](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/418) | Conditions cannot address an actor-owned array by id |
| [371](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/371) | A kind's event severities are literals at each emit call |
| [364](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/364) | Mirror the simulation-kind lifecycles once GameOfLife S7 lands |
| [300](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/300) | Campaign sources here are fixtures now, but nothing says so |
| [293](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/293) | A session belongs to exactly one campaign — no cross-campaign bridge semantics |
| [292](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/292) | Content packs compose at campaign granularity, not node granularity |
| [287](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/287) | `CampaignSummary` carries only `titleKey`, no session-free resolution |
| [282](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/282) | `Kind.outcome` has no cross-kind-legible shape |
| [281](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/281) | `SessionStore` has no concept of a caller |
| [280](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/280) | Reproducing a stored session's blob requires pinning `IdSource.newGameId` |
| [279](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/279) | `listCampaigns()` is synchronous |
| [278](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/278) | `VisibleStat` omits the declared range |
| [277](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/277) | No per-player save query |
| [276](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/276) | `SaveRecordStore.delete` has no caller anywhere |
| [275](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/275) | `wisdom` attribute has no consumer |
| [270](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/270) | Extract a shared SystemPipeline substrate |
| [267](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/267) | Provisional simulation-kind numbers need a balancing pass |
| [266](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/266) | Forking a session at an earlier point should be a store operation |
| [237](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/237) | `validateUnreachableItems` predates `shop` — partially fixed (`shopReachable` check exists in `validate.ts`), but the two-direction regression test and the `stable-life-possessions` no-Tier-2-warnings assertion this issue's Done-when names were not found; left open |
| [234](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/234) | Spike: generic scene-presentation layer — explicitly not engine work (W106.4: stays open/blocked, `SubZeroDev.Presentation` still doesn't exist) |
| [229](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/229) | `resolveApplications` doesn't decrement `positionsAvailable` — deferred pending a rival/scarcity model |
| [226](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/226) | `SaveRecordStore.delete()` TOCTOU race — deferred, unreachable today |
| [225](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/225) | Migrate pre-resume orphaned local saves |
| [216](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/216) | world-graph: 21 source modules with no adjacent test file |
| [215](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/215) | Batch invariance tested at exactly one data point |
| [213](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/213) | Dead references to `bulgaria-bureaucracy.determinism.test.ts` |

None of these 27 own a W93–W108 criterion or a recorded canonical decision; each remains exactly as
open as it was before this unit. Fixing, deferring further, or re-triaging any of them is out of
this unit's scope (`design/30-slices.md` § W106, *Out of scope*).

## Closed this run (W106.2/W106.3) — found already implemented or answered, not new work

| # | Title | Resolved by | Reason |
|---|---|---|---|
| [212](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/212) | Vision doc said "two kinds ship in v1" | `d3f634c` | `design/00-brief.md`/`CLAUDE.md` already say three kinds |
| [214](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/214) | Slice ledger checkboxes drifted (W50/W51/W66, W41–W49) | `a680d0e` (PR #243) | All now `### [x]` headings |
| [168](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/168) | Defensive-cloning strategy for `Kind.project` | `b9ecdc2` (W97, PR #409) | `copyProjection`/`structuredClone` at the `Engine.view()`/`scene()` boundary, tested by `projection-copy.test.ts` |
| [195](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/195) | `StatusEffect.stacking` not enforced at insertion | `b42c521` (W95, PR #403) | `insertStatusEffect` in `modifiers.ts`, tested for refresh/stack/different-source |
| [211](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/211) | No assertion that per-kind regression evidence exists | `bb62ffe` (W96.2, PR #408) | `regressionManifest.test.ts` |
| [218](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/218) | No mechanical envelope-duplication guard | `bb62ffe` (W96.3, PR #408) | `ownershipGuard.test.ts` |
| [245](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/245) | No emitted→registered check for reason codes | `bb62ffe` (W96.4, PR #408) | `reasonCompletenessGuard.test.ts` |
| [142](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/142) | world-graph: demolished guests always route to `exits[0]` | verified against `main` | `nearestReachableExit` uses pathfinding |
| [145](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/145) | world-graph: scenery placement has no bounds validation | `f0735fc` (W93, PR #398) | `checkSceneryPlacement` now applied |
| [146](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/146) | world-graph: staff assignment emits both StateChanges unconditionally | `f0735fc` (W93, PR #398) | Conditional `buildingChanged`/`zoneChanged` emission |
| [180](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/180) | `site/` declared five unused ESLint packages | `d3f634c` | Removed; `oxlint` is the only linter |
| [203](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/203) | Alpine chromium install uncached in Verify Documentation Build | `d3f634c` | `actions/cache@v4` keyed `alpine-chromium-*` in `docs-ci.yml` |
| [217](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/217) | `docs-deploy.yml` never received the chromium fix | `a86c59c` (PR #221) | Same `apk add chromium` fix ported |
| [350](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/350) | Audit codes table missing `building_broken` | `04c1baf` (W83, PR #348) | Table now lists it |
| [219](https://github.com/The-Running-Dev/SubZeroDev.GameEngine/issues/219) | No customer/monetization thesis recorded | `9439b99` (W105, PR #455) | `design/90-decisions.md` §2 records the deferral, owner, and revisit trigger |

## Method

Every open issue as of this freeze was read in full and checked against the current tree (grep for
the named symbols/files, `git log -S` for the introducing commit) or against
`design/90-decisions.md` for a canonical decision. An issue was closed only when every Done-when box
or every "Ask" bullet was independently confirmed true against current `main` — not from the issue's
own claims. Issues with only partial evidence (e.g. #237) were left open with the gap noted rather
than closed on partial credit.

Closed engine issues (W93–W105 range and earlier) were spot-checked via `tools/Test-DesignDrift.ps1`
(reports "No drift" — 61 slices compared, 0 findings, 0 could-not-evaluate) rather than individually
re-read; a full manual re-audit of every closed issue's evidence was judged disproportionate to this
unit's scope and is not what W106.2 asks for (it governs closing *open* issues, not re-litigating
closed ones).
Loading