✠ The Chronicle

✠ ENTRY XLIII


Two days, one governance rewrite, and a second continent: THE OPEN GATE…

Two days, one governance rewrite, and a second continent: THE OPEN GATE retires every owner-gate as a blocking state, the world gains inter-map travel plus two full northern maps (The Caverns, Northern City — 9 new licensed-portrait enemies), the card face gets a full redesign (THE PRINTED PLATE), and the art pipeline goes loop-runnable end to end. Baseline was stale by 5 commits; re-measured flat — nothing this window touched the combat-playtest matrix. Breadth is green, critique pass 30 found nothing new, and a real user crash report closed with a genuine e2e coverage hole fixed rather than a repro.

INFRA

THE OPEN GATE — every owner gate converts to loop authority

What changed

T's attended 2026-08-28 session retires [needs-user-call] as a blocking state loop-wide — it becomes decide-and-ship with a [loop-call] residue row for after-the-fact review. LOCKED MECHANICS converts from owner-gate to loop stewardship (standing call: Conviction/ Surge/Dice all KEEP), the north-star's six open questions (Q-1..Q-6) are answered directly in plan/north-star-mork-borg.md, engine constants and art-origin questions open to the tuning loops, and content growth becomes a standing mandate via new skills/forge.md wired into /march step 3b on a 48h growth gate.

Why it changed

T's verbatim direction: "the loop answers any open question any way it likes; every restriction that required owner input is removed." Build plan gains Phases W1-W5 (travel → caverns → northern city → river town → roster growth) + G1 (.claude/** doc sync) in the same session.

commit 99f4c5a1

MECHANICS

Phase W1+W2 — the world gets a door and a second continent

What changed

New travel MapEventKind + handler (the departed map's state is preserved, not discarded — WorldState.mapStates); a real createStartingWorld() catalogue replaces the empty-array no-op that made changeContinent structurally dead; doors at fv-10 → northern-forest and nf-10 → the caverns; GAME_STATE_VERSION 20→21 with a pinned migration. The Caverns ships as the northern continent's first map: 25 nodes / 10 columns, The Delver stages the previously-dangling gather-iron quest, terminal boss The Under-Gate.

Why it changed

Answers the standing owner ask directly — the game had exactly one reachable map because no travel system existed; get-to-forest was uncompletable by design until this shipped.

commit 62008ebf

CONTENT

Phase W3 — Northern City ships, W5 partially drains

What changed

Map 2 of the northern continent: 25 nodes / 10 columns (WALL / HIGH STREET / HARBOR lanes), 3 inns, 2 shops, 2 staged NPCs, boss The Harbormaster pinned L9 on a clean 3-step act ladder (fv-6=3 → nc-25=6 → ncy-25=9). Ships 9 new enemies in the same phase — the first fully-licensed portraits in the roster (game-icons.net silhouettes, CC BY 3.0, truthful provenance), draining most of Phase W5's roster-growth backlog. Five design calls made and filed to plan/AUDIT.md as loop-call residue (door placement, migration handling, quest-grant gating, enemy batch, boss ladder) — informational only, nothing blocking.

Why it changed

Continues THE OPEN GATE's content mandate; the north continent was authored but unreachable past The Caverns until this landed.

commits 3b16305a · 0f04f49f · cab73100

UI

THE PRINTED PLATE — the card face redesigned

What changed

Full redesign, T's call after ratifying the direction by play: the side-rail face (sideways half-names, sticker glyphs on unrelated art) is retired for a codex-page layout — horizontal blackletter name band, a framed art plate behind a hairline rule (text never fights art), a bottom ledger with FREE glyph, stance die cube, keyword and value. FaceScrim, the art tint wash, and the radial glyph backdrop are deleted along with their hex-literal debt. All face instances (hand, staged, drag ghost, inspect, rewards) share one component.

Why it changed

T direct: "dump the side-rail card design, full freedom to find better." Editor/catalog parity is filed as a follow-up candidate, not done here.

commit d65128a4

CONTENT

Phase V4+V5 — the background art pipeline reaches the screens

What changed

V4 delivers four more Doré plates (charon-crossing, the-pit, ludgate-hill, wentworth-street) via a licence-checking acquisition script that refuses anything not PD/CC0 — maps/ is now the one asset category with zero UNRESOLVED licenses. V5 generalizes the pattern into a reusable ScreenBg art slot (dim + vignette, opacity pinned ≤0.25, no blur) and wires it into the event, labyrinth, and combat screens.

Why it changed

Completes the acquisition→post-process→wire pipeline proven ad hoc in PR #179, so the next backdrop is a data entry, not new code.

BEFORE

The exploration screen before the change: V4 delivers four more Doré plates (charon-crossing.

AFTER · 29 AUG

The exploration screen after the change: V4 delivers four more Doré plates (charon-crossing.
exploration — the event/omen screen picks up its Charon-crossing backdrop, dim-never-blur.

BEFORE

The labyrinth screen before the change: V4 delivers four more Doré plates (charon-crossing.

AFTER · 29 AUG

The labyrinth screen after the change: V4 delivers four more Doré plates (charon-crossing.
labyrinth — The Aporia gains its woodcut backdrop behind the act list.

commits 4e93450d · 15ef285f

UI

UI cleanup pass — four CRITIQUE rows resolved, six screens gain backdrops

What changed

Momentum-chip empty state gets real contrast; the exploration legend un-clips from the pannable map canvas onto a viewport-fixed overlay; the hub's two disagreeing node counts collapse to one source of truth; six inactive screens (blacksmith, cache, cutscene, dialogue, rest, village) trade a blank view for a house-voice empty state and a ScreenBg plate each (art keys 3→9); the combat corner medallion stops occluding the leftmost hand card's touch target. Visual smoke baselines — stale since PR #193 — are refreshed in the same commit, which is why this window's screenshot diff touches all seven baseline screens even though most of the pixel delta is catch-up, not new work.

Why it changed

Four of these were open, some long-standing, plan/CRITIQUE.md rows; the baseline refresh was overdue debt riding along.

commit da8e0ad5

CONTENT

Phases 71-73 — the art pipeline goes loop-runnable

What changed

Phase 71 converts the one-off Doré acquisition into a repeatable ingest script (grade → resize → WebP + provenance) and found a bigger problem while at it: 35 of 36 unprocessed raster stragglers had no license on record at all, now flagged UNRESOLVED rather than silently unlicensed. Phase 72 widens the CI harness allowlist (76→130 entries) so attended and unattended ticks stop prompt-walling on the commands the skills actually run. Phase 73 ships a generate(spec) -> image adapter (hosted gpt-image-2, Option A per T's routing call) with a deterministic prompt compiler and the same post-process/provenance pipeline an acquisition gets — the generate leg is inert without an API key, labelled as such in its own header.

Why it changed

Queued 2026-08-22 by THE PIPELINE LIBERATION; art production was still one-off scripts and a blocked harness before this.

commits 3ae179b9 · 0a3f73f5 · b31c94a0

CONTENT

Phases 74-75 — the North Star is folded in and the prose re-voiced

What changed

Phase 74 promotes plan/north-star-mork-borg.md's ratified §2 into spec 34 §2.5 (the Mörk Borg delivery register) rather than leaving it living only in a plan file. Phase 75 sweeps every shipped player-facing string into the ratified register: a new 20-word-ceiling + no-semicolons rule in check-prose.mjs, made field-aware so it reaches narration without touching rules text, closing 105 findings (46 long sentences, 59 semicolons) across 9 files to zero.

Why it changed

Both queued 2026-08-22 alongside the ratification; the prose lint gives the re-voice pass a machine check standing behind it instead of a one-time sweep that silently rots.

commits 385f6ba5 · 33df8c91

INFRA

fix — travel checkpoints the save

What changed

The continent playtest (a real Playwright walk that proved W1/W2 worked) caught a real defect: mobile saves are explicit, and the new travel interceptor never called save() — a map crossing survived only until the app closed. Now checkpoints after the arrival toast, same as rest/combat/cache/blacksmith; a regression pins adapter.saveCount.

Why it changed

Found by playing the feature, not by review — the exact kind of gap a live-browser witness catches and a unit test wouldn't.

commit 6c9dc1eb

INFRA

fix — the reward-draft ACCEPT path is now driven, not silently skipped

What changed

User report: a crash after accepting a post-combat card reward. Could not reproduce on the current web build after driving the full accept flow end to end — but the hunt found the real bug: the e2e harness's aftermath walk never tapped an offer tile, so the accept path (claimCombatRewardAction mutating the player mid-panel) had zero coverage across every prior "live" run. The walk now rides preview → confirm → take on every won fight, with a PRESET= knob so a fresh level-1 save can reach a real victory in CI.

Why it changed

A crash report that doesn't reproduce is still a coverage gap until the path that supposedly proves it safe actually runs.

commit 51769e16

✠ The marginalia


Measurement freshness

Stale by 5 mechanics-source commits at session open (stamp 027c8100, 2026-08-27). Re-measured with the reduced-nightly pass (30 runs/cell, now 456f3959): report content is byte-identical to the prior stamp — early 54.5%, mid 8.3%, late 0%, impossible 0% win rate; CQI 0.73 / 0.69 / 0.76 / 0.77 by stage. None of this window's five flagged commits (northern-city content, two prose-gate fixes, inter-map travel, the re-voice pass) touch the combat-playtest matrix path, so this reconfirms rather than moves the picture. Report only, per standing doctrine.

The night's watch — what ran while nobody looked
when (UTC)verboutcome
2026-08-27 22:28–2026-08-28 02:32march (hourly /loop)success ×8 — briefed + shipped Phases 71, 72, 73, 74, 75, V4, V5 one per tick
2026-08-28 06:00–06:13attended session (T direct)THE OPEN GATE governance + UI cleanup pass + Phases W1+W2
2026-08-28 ~09:22–14:08follow-on commits (same day)travel-checkpoint fix, cave-mouth prose fix, residue notes, retired-preset docs-drift AUDIT row
2026-08-28 22:40–23:12attended sessionTHE PRINTED PLATE + Phase W3 (northern city) + a prose-gate fix
2026-08-29 01:47marchsuccess — ran critique pass 30 (no new findings)
2026-08-29 02:47–03:00attended session (card-design check-in, PR #260)e2e ACCEPT-path fix + critique residue (2 new MED rows)
2026-08-29 12:43marchsuccess
The measure — did the fighting change?

None. The re-measurement above reconfirms the prior baseline byte-for-byte, and nothing in this window's pulse points at a mistuned gate, cadence, or ceiling — the two-day gap since the last digest is the intentional every-other-day cadence (night.yml, halved from daily in 2026-08 to cut Actions spend), not a starved queue.

What is still unfinished
  • Build plan: 6 open phases ([ ]: V6-V8, W4, W5-remainder, G1), 6

partial-with-carryovers ([-]), 119 shipped — 10 more shipped than the last digest read (Phases 71-75, V4, V5, W1, W2, W3).

  • plan/AUDIT.md: ~78 rows under "Pending" (many carry inline

RESOLVED/PARTIAL annotations not yet swept to "Done" — bookkeeping, not backlog); roughly 25 genuinely open. Two new rows this window, both informational (the W3 loop-call residue, the retired-preset docs-drift finding).

  • plan/CRITIQUE.md: 22 open rows; last full pass 2026-08-29 (pass 30,

same day) plus a 2-row residue filing from a card-design check-in session — as fresh as a critique read gets.

  • plan/PHASE_CANDIDATES.md: 32 pending candidates; none promoted or

filed this window.

  • No open triage:needs-user or loop:do issues.
  • Deploy: clean — HEAD 456f3959 is CI green (verify-mobile success).
  • Nightly breadth (e2e:minigames): ALL PASS — upgradeable-dice

flag-on stack, and the 10-run sandbox+live combat-round suite (both shown in full); hazard, combat-encounter, and encounter-routing legs ran clean within the same green exit.

The nightly entry also carries a panel addressed to the maintainer — open questions, permission grants, things only he can rule on. It is held back from this page: it is correspondence, not a report. The unfinished work it tracks is published above, in plain words.