epiphany/crates
Levi Neuwirth 4f141ce197 P13-S21: the two precondition reasons the wire spec never named
PreconditionFailureReason 14 (AcousticRealizationPinned) and 15
(TranspositionOutOfRange) entered the vocabulary at Push 4a and reached this
document at neither place that owed them. The bounded enumeration ran 13 straight
to G3b's 16, and Push 4a's own history row recorded only OperationKind 30 while
saying nothing about the two reasons it appended in the same epoch. The Operation
Catalog documented both at its 0.8.0 and effect.rs has carried both throughout;
only the wire specification was silent.

This is P13-S20's specification-side twin, and it is why that decoder could stop
at 13 unchallenged: an implementer reading only the wire specification would have
built exactly that decoder and been right. No version bump and no new history
row -- this records an assignment normative since Push 4a rather than making one.

The regression test checks both sites, each bounded to its own longtable row,
because either alone is satisfiable by the wrong thing: the G3b row and the
enumeration both discuss PreconditionFailureReason at length, and an unbounded
search would go green the moment any row mentioned the names. Each half was
observed red alone while the other stayed green. The Push 4a row is located by a
version-free separator marker, per the file's standing rule against encoding a
document version number anywhere in it.

The epoch-12 evidence hash is e64a4b7, not this rung's parent. G3b landed across
six commits, and the chain records introducing commits -- the commit where
kind/tag 39 enters payload.rs and reasons 16-18 enter effect.rs -- exactly the
distinction the 2026-07-28 correction draws between 7df5ca1 and 55eff00 for G2a.
d58eee8 completes the rung and introduces no discriminant; both are named, with
their roles stated, in the plan and in the contract's pin 15.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QjsEnYhm1gPpf6ii2iFxFV
2026-07-30 20:57:59 -04:00
..
epiphany-bundle G2b: unconflate the corpus version domains, unscope t10, and sign the mutations 2026-07-29 10:09:49 -04:00
epiphany-core G3b packet 3b: the documentation half, and the ladder closes 2026-07-30 20:45:27 -04:00
epiphany-determinism P12-I2: wire the ratified MUSCLOID layout-object id derivation 2026-06-27 12:46:19 -04:00
epiphany-editor-core G3b packet 1: CreateMeasure reaches the wire, the mint, and the grid oracle 2026-07-30 12:19:32 -04:00
epiphany-editor-gui Editor T3: the note-entry caret [W1+W2] 2026-07-24 12:55:05 -04:00
epiphany-engrave Editor T4-pre W1: the resolved layout stops discarding its own partition 2026-07-24 14:47:31 -04:00
epiphany-glyphs Editor T4-pre W2: the glyph outlines become a shared typed seam 2026-07-24 18:54:30 -04:00
epiphany-layout-ir G3b packet 1: CreateMeasure reaches the wire, the mint, and the grid oracle 2026-07-30 12:19:32 -04:00
epiphany-ops G3b packet 3b: the documentation half, and the ladder closes 2026-07-30 20:45:27 -04:00
epiphany-render-svg Editor T4-pre W2: the glyph outlines become a shared typed seam 2026-07-24 18:54:30 -04:00
epiphany-testkit P13-S21: the two precondition reasons the wire spec never named 2026-07-30 20:57:59 -04:00
epiphany-textproj G3b packet 1: CreateMeasure reaches the wire, the mint, and the grid oracle 2026-07-30 12:19:32 -04:00