✠ The Chronicle

✠ ENTRY XXVII


Another quiet, clean cycle: two content/copy findings drained (an…

Another quiet, clean cycle: two content/copy findings drained (an authored-text honesty gap and a catalog keyword-bolding hygiene fix), critique pass 17 came back clean, every breadth leg is green, and the deck-matrix baseline — stale by exactly one text-only commit — came back byte-identical to the last three reads. Fifth straight confirmation that the mid/late flag-on collapse hasn't moved.

CONTENT

Authored paidSummary text closes the WI-2 gap for real

What changed

reworded the 12 authored paidSummary strings that still claimed round-clock POISON/BLEED duration ("Inflict POISON 1 for 4 turns.") even though both effects tick per event, not per round; extended the honesty guard to sweep every card's combatEffects directly instead of trusting faceStats's single-primary-effect classification.

Why it changed

critique pass 16 found that the WI-2 fix (issue #168, landed 2026-07-12) only patched the auto-generated card-face path — a card's authored paidSummary fully replaces that text and was never in scope. The gap that let this ship: the existing guard test walked faceStats's classification, which reflects a card's single PRIMARY effect and silently skips multi-effect cards (Opening Statement's primary effect is MARK, not its POISON).

commits d320ee12 · f · 2458d51e · ad · fd · ced · e · 170

CONTENT

Catalog generator stops bolding retired keywords

What changed

pruned 12 dead words — DAMAGE, STUN, SLOW, BURN, CONFUSION, SILENCE, REGEN, EXECUTE, COMPOUND, VULNERABLE, BARRIER, REPRISE — from scripts/build-catalog.mjs's KEYWORD_WORDS bolding list and regenerated devlog/catalog.html.

Why it changed

none of the 12 appear in the mechanics guard allowlist (paid-summary-honesty.engine.test.ts) or the live mobile KEYWORD_GLOSS registry — spec 32 v3 retired them or never had them. Bolding a word implies the glossary overlay can define it; these 12 couldn't be defined, so the catalog was printing fake keywords. "damage" was the only one actually live in card text (18 bolded occurrences pre-fix, 0 after).

commits 489819a6 · f · e · 171 · 444886eb · ad · fd · ced

✠ The marginalia


The night's watch — what ran while nobody looked
Tick (UTC)VerbOutcome
08-05 20:01 → 20:35/march/iterateshipped — authored paidSummary DoT-text fix (#170)
08-06 03:47 → 03:59/march/critiqueno-oppass 17, 0 findings
08-06 09:18 → 09:37/march/iterateshipped — catalog keyword-bolding fix (#171)
  • loop:phase GitHub issues (the phase mirror): 55 total, 50 closed,

5 still open for in-flight phases (#143 GLYPHS pilot, #140 Phase 38, #139 Phase 37, #98 Phase D1, #83 Phase 32) — expected, not stale.

  • plan/AUDIT.md: 28 open pending rows (46 total under Pending, 18

already resolved-in-place; today's new doctrine-curve confirmation row is one of the 28).

  • plan/CRITIQUE.md: 18 open pending rows; last full pass today

(2026-08-06, commit c4f67d5c, pass 17, 0 findings).

  • plan/PHASE_CANDIDATES.md: 34 pending candidates, unchanged this

window; last /expand pass 2026-08-04.

  • triage:needs-user / loop:do issues: 0 open. No open PRs.
  • Deploy: nothing to check — HEAD is a docs/plan-only tick, no gated

verify-* workflow triggered.

  • Breadth check (npm --workspace axiomancer-mobile run e2e:minigames

— the real command; skills/digest.md's own SMOKE_SAMPLE=full npm run e2e still doesn't exist, per the standing [divergence] row) ran full and green: hazard, combat, gathering, encounter-routing, exploration/combat-prelude round-trip, and upgradeable-dice all ALL PASS.

  • Deck-matrix baseline re-measured this cycle — see Tuning proposals.
The measure — did the fighting change?

baseline:check opened this cycle stale by exactly one mechanics-source commit (d320ee12) — re-measured with the reduced nightly pass (npm run baseline:regen -- --runs=30 --confidence=reduced-nightly), now committed at 444886eb.

The regenerated report is byte-identical to the last two reads (acc64eca 2026-08-02, ef492fff 2026-08-01) — confirmed by diffing the committed JSON directly; only the meta stamp changed. Read (blind policy-pick, doctrine early ~80 / mid ~50 / late 25-35 / impossible 0): early 61.1%, mid 0.0%, late 0%, impossible 0% — the fifth consecutive digest confirming the flag-on mid/late collapse first exposed 2026-07-30. This is the expected outcome, not a stalled repair: d320ee12 only reworded 12 cards' authored display text (verified via diff — string literals only, no numeric/effect change), and a quick trace confirmed neither scoreCard (Cards/cards.pricing.ts) nor draftCombatDeck's verbClass-based weighting (Combat/combat.deck-draft.ts, Combat/combat.cards.ts) reads paidSummary — the only consumer of card-face text (cardComplexity's keyword scan) feeds preset:-path complexity reporting, never the policy-pick deck this matrix measures. No new tuning action: /deck-tuning continues to own the actual repair via the existing "Post-D8 flag-on curve repair" candidate; the persistent late=0% doctrine violation stays tracked live in plan/CRITIQUE.md's [HIGH] late-stage global collapse row.

Today's intent

No baseline screenshots changed since the last digest, so no UI shots this cycle. The two shipped fixes both belong to the same family — authored/generated text drifting out of sync with what the guard tests actually check — and both closed the same day they were found. The baseline re-measure this cycle did more verification than usual (tracing whether a text-only commit could legitimately move a simulation's win rate) precisely because the numbers looked like they might have moved before the byte-diff proved they hadn't; worth noting for the next stale-by-a-suspicious-commit cycle that the fast check is git diff <old>..<new> -- axiomancer-mechanics/docs/reports/baselines/deck-matrix-baseline.json before re-deriving percentages by hand.

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.