✠ The Chronicle

✠ ENTRY XVII


The D/legacy-combat queue fully drains for the first time (Phase 37

38, 33d all shipped) and the loop's own hand-off worked — the moment the build-plan queue emptied, /march dispatched /expand on its own and filed the next two candidates. A card-art PR got auto-merged without being requested and had to be reverted same night. The baseline's two-day mid-game climb reversed hard (35.3% → 22.9%) right after a phase billed as pure dead-code teardown — worth a second look before blaming noise. Late-game sits at a flat 0% for the fourth measurement running.

MECHANICS

Phase 37 — retire the fallacy/paradox card category

What changed

deletes Card.category/CardCategory and the entire write-only combatResources pool it fed — the generator functions, the dead CardSynergy token machinery, the equipment/consumable resourceGrant plumbing, the card-editor CATEGORY picker, and two cosmetic mobile badges. ~230 library/sandbox/swap-pool card records lose their now-meaningless category: field.

Why it changed

a pre-Hazard-Pattern vestige — the live stance economy (resonance) replaced it long ago, but nothing had ever swept up the dead pool. Zero live consumers remained; the phase brief called for deleting rather than deprecating.

commits 5137511c · 71 · fe · 87193 · e

UI

Phase 38 — central juice/animation layer

What changed

a new lib/juice/ module gives ~33 previously-bespoke animated components one shared set of Reanimated primitives — screen shake, impact flash, a status-proc pulse, number pops, standard enter/exit transitions, a static spent-die treatment, and a haptics wrapper. Combat adopts it first: damage/DoT float numbers, the player-damage shake+flash, a new status-land pulse on the player medallion, and card drop-confirm/rejection feedback. An owner jot (used dice have no spent-state indicator) rode the same phase — spent dice now desaturate.

Why it changed

every animation was a one-off before this; reduced-motion handling and instant-mode escape hatches (for seeded e2e) now live in one place instead of being re-solved per component.

commits 6f291ece · 28 · fe · 78951 · e

MECHANICS

Phase 33d — GLYPHS pilot (Option-B grammar experiment)

What changed

a new state.glyphs battlefield zone — persistent seals that charge +1/round and crack (via a dieless crackGlyph action) for a payload scaled by accumulated charges. 4 sandbox-only pilot cards across erosion/bastion, plus a glyphShatter enemy-counterplay hook on 2 late-game enemies. 29 new hermetic tests.

Why it changed

tests whether Option B's "small deposits, one cash-out" feel works without touching the ratified 70-card library; closes the standing AUDIT finding that GLYPHS had no formal spec.

commits a0ad1d61 · bef · ac1853b2 · 535b5117 · — · no · baee · promotion · or · be · UI · this · ae · ec · f

UI

Card-art pass shipped, then reverted, same night (PR #141/#142)

What changed

PR #141 (replace card art with supplied icons) landed on main — then was immediately reverted, because it had auto-merged without being requested. A follow-on PR #142 (shrink card corner glyphs, built on top of #141) had already shipped separately; the revert + a reconciling merge backed out both PRs' card-art changes from main while preserving the full work on branch card-art-icons for a deliberate re-land later. A separate same-night fix greys out spent dice correctly under the always-on Upgradeable- Dice model (the Phase 38 spent-die gate assumed a legacy drafted-then-spent shape that the forced-on model never produces).

Why it changed

"PR #141 was auto-merged without being requested" — per the revert commit message. The card-art work itself is not abandoned, just pulled pending a deliberate re-land; flagged below for a human look at how the auto-merge fired.

commits 96d14423 · 98a00d6c · f4cdbc5e · 088a7fec · c7af56fa

✠ The marginalia


The night's watch — what ran while nobody looked
Time (UTC)VerbOutcome
07-20 13:51 → 14:50manual/oversight sessionPhase 38 promoted from candidate; used-dice grey-out jot filed + folded in; oversight drained 4 balance ballots + filed deck-tuning handoffs; missing-layers survey's unpromoted findings recorded to AUDIT
07-20 14:36 → 15:17march (scheduled)Phase 37 shipped (retire fallacy/paradox category); merged concurrent oversight/audit commits
07-20 20:01 → 20:38march (scheduled)Phase 38 shipped (central juice/animation layer)
07-20 17:29 → 07-21 02:45manual/direct session (PR #141, #142)card-icon art shipped then reverted same window; corner-glyph shrink kept; used-dice fix for the forced-on dice model; reconciled via merge
07-21 03:52 → 04:45march (scheduled)Phase 33d briefed and shipped (GLYPHS pilot) — build-plan queue now fully drained except the blocked D-FLIP row
07-21 09:07 → 09:16march (scheduled) → /expandqueue-drained hand-off fired automatically: expand pass 1 filed 2 candidates (GLYPHS follow-ups, early-game rethink)
07-21 (this run)digestthis entry — baseline re-measured (stale by 2 commits), breadth check re-run and unblocked by hand (Playwright's browser missing again, third-plus time running)

11 commits landed since yesterday's digest (6641602c). Build-plan queue (plan/steps/01_build_plan.md): every phase through 33d is now [x] shipped or [skipped] except Phase D-FLIP, which stays [blocked:] pending an /oversight call between two owner directions (flip narrowly vs. adopt the unmerged D10-D12 full teardown). plan/AUDIT.md: 38 pending (one new row filed this run — the mid-game reversal below). plan/CRITIQUE.md: 40 pending (5 marked [x] resolved but not yet filed to Done), last pass 2026-07-17 — four days stale now. plan/PHASE_CANDIDATES.md: 32 pending (2 filed today by /expand's automatic hand-off). No open triage:needs-user or loop:do issues. Deploy gate: HEAD (c0562bb3) is a plan-only tick, no gated verify-* workflow triggered yet (grace window) — nothing to check. Breadth check (npm --workspace axiomancer-mobile run e2e:minigames — the digest skill's own SMOKE_SAMPLE=full npm run e2e still doesn't exist in this repo, per the still-open AUDIT [3.2] row): Playwright's Chromium headless-shell binary was missing again, installed by hand, then hazard, combat, gathering, encounter-routing, exploration-roundtrip, and upgradeable-dice all ALL PASS with no NOTEs.

The measure — did the fighting change?

Baseline was STALE by 2 mechanics-source commits at open (345cb0a6 → Phase 33d + Phase 37). Re-measured reduced-nightly (30 runs/cell, seed 1, c0562bb3) — directionally honest, not confirmation-grade:

StageThis runPrior (345cb0a6, reduced)Doctrine bandVerdict
early77.4%86.1%~80%softest early read in three digests, still roughly in band
mid22.9%35.3%~50%reverses the two-day climb (7.3% → 31.0% → 35.3% → 22.9%)
late0.0%0.0%25-35%doctrine violation, flat zero, fourth measurement running
impossible0.0%0.0%0%in band, unchanged

The two commits between baselines were Phase 33d (GLYPHS pilot — sandbox-only per its own brief, no library/preset promotion) and Phase 37 (retire fallacy/paradox — billed as pure dead-code teardown, zero live consumers). Neither's stated scope should move the win curve at all, let alone reverse a two-day upward trend by double digits on both early and mid at once. Filed as an updated plan/AUDIT.md row recommending a full 3-seed baseline:regen confirm before treating this as reduced-nightly noise, and a bisect of Phase 37's diff if it holds — no code/deck changes made here per the digest's own rails. Late-game's flat 0% (fire-giant, rangda, tezcatlipoca, arch-demon, death, the-abortive) remains the standing "Post-D8 flag-on curve repair" plan/PHASE_CANDIDATES.md entry's sharper target.

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.