From 4f141ce197b8a0c6966085a5253dbe9f9a99ede2 Mon Sep 17 00:00:00 2001 From: Levi Neuwirth Date: Thu, 30 Jul 2026 20:57:59 -0400 Subject: [PATCH] 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 Claude-Session: https://claude.ai/code/session_01QjsEnYhm1gPpf6ii2iFxFV --- .../tests/binary_format_history.rs | 91 ++++++++++++++++++ spec/CONTRACT_GENESIS_G3B_MEASURE.md | 11 ++- spec/PASS13_CANDIDATES.md | 1 + spec/PLAN_GMINOR_SCHEMA_MINOR.md | 15 ++- spec/binary_format.pdf | Bin 291610 -> 292184 bytes spec/binary_format.tex | 17 +++- 6 files changed, 126 insertions(+), 9 deletions(-) diff --git a/crates/epiphany-testkit/tests/binary_format_history.rs b/crates/epiphany-testkit/tests/binary_format_history.rs index dec1283..609441d 100644 --- a/crates/epiphany-testkit/tests/binary_format_history.rs +++ b/crates/epiphany-testkit/tests/binary_format_history.rs @@ -36,6 +36,13 @@ //! guard to its own Revision History row, closing the genesis ladder: the //! contract's own M71 deletes the G3b row, observes this guard fail, and //! restores it by hand. +//! +//! **P13-S21** extends the file past rung identity to one vocabulary gap of +//! the same shape: `PreconditionFailureReason` 14 and 15 entered at Push 4a +//! and reached this document at neither of the two places that owe them — +//! not the bounded enumeration that assigns discriminants, and not Push 4a's +//! own history row. See +//! `precondition_failure_reasons_14_and_15_are_documented` below. use std::fs; use std::path::Path; @@ -221,3 +228,87 @@ fn revision_history_g2b_row_states_what_g2b_did() { 2 -> 3: {row_segment:?}" ); } + +/// Slice one `longtable` row: from `marker` to the `\\` that terminates the +/// row. Rows in this document carry no internal `\\`, so the first +/// terminator after the marker ends that row and nothing else. +fn row_segment<'a>(haystack: &'a str, marker: &str) -> &'a str { + let offsets = find_all(haystack, marker); + assert_eq!( + offsets.len(), + 1, + "expected exactly one occurrence of the row marker {marker:?}, found {} \ + (offsets {offsets:?})", + offsets.len() + ); + let start = offsets[0]; + let end = haystack[start..] + .find(r"\\") + .map(|relative| start + relative) + .unwrap_or(haystack.len()); + &haystack[start..end] +} + +/// `PreconditionFailureReason` 14 (`AcousticRealizationPinned`) and 15 +/// (`TranspositionOutOfRange`) entered the vocabulary at Push 4a — the +/// Operation Catalog documented both at its own 0.8.0, and `effect.rs` has +/// carried both ever since — but this document named neither anywhere, its +/// bounded enumeration running 13 straight to G3b's 16. That is P13-S21, and +/// it is why P13-S20's decoder could stop at 13 unchallenged: an implementer +/// reading only the wire specification would have built exactly that decoder +/// and been right. +/// +/// **Both sites are checked, each bounded to its own row**, because either +/// alone is satisfiable by the wrong thing. The G3b history row and the +/// bounded enumeration both discuss `PreconditionFailureReason` at length, so +/// an unbounded search for these names would go green the moment any row +/// mentioned them — the same hole P13-S17 was filed over, one vocabulary +/// down. No document version number appears here either; the Push 4a row is +/// located by its version-free `--- Transpose algebra (Push~4a)` separator +/// form, for the reason the module comment gives. +/// +/// The enumeration is asserted as a **discriminant/name adjacency**, since it +/// is the normative assignment and must be exact. The history row is asserted +/// by name and discriminant presence within its own bounded segment: it is +/// prose, its wording may legitimately be rewritten, and the bounding is what +/// makes presence load-bearing there. +#[test] +fn precondition_failure_reasons_14_and_15_are_documented() { + let source = binary_format_source(); + let normalized = normalize_whitespace(&source); + + let enumeration = row_segment( + &normalized, + r"\texttt{Precondition\allowbreak FailureReason} &", + ); + for pairing in [ + r"\tablenums{14} AcousticRealizationPinned", + r"\tablenums{15} TranspositionOutOfRange", + ] { + assert!( + enumeration.contains(pairing), + "the bounded PreconditionFailureReason enumeration does not assign \ + {pairing:?}; it is the normative discriminant assignment and the \ + pairing must be exact: {enumeration:?}" + ); + } + + let push4a = row_segment( + revision_history_slice(&normalized), + "--- Transpose algebra (Push~4a)", + ); + for owed in [ + "AcousticRealizationPinned", + "TranspositionOutOfRange", + r"\tablenums{14}", + r"\tablenums{15}", + ] { + assert!( + push4a.contains(owed), + "Push 4a's own Revision History row does not record {owed:?}. Both \ + reasons were appended in Push 4a's epoch alongside OperationKind 30, \ + and a row that records only the kind leaves the append unattributable: \ + {push4a:?}" + ); + } +} diff --git a/spec/CONTRACT_GENESIS_G3B_MEASURE.md b/spec/CONTRACT_GENESIS_G3B_MEASURE.md index 228e6c2..c1d7286 100644 --- a/spec/CONTRACT_GENESIS_G3B_MEASURE.md +++ b/spec/CONTRACT_GENESIS_G3B_MEASURE.md @@ -623,7 +623,16 @@ events only**: |---|---|---|---| | 10 | G2b | `13c3d2f` | 2026-07-29 | | 11 | G3a | `6c5e69f` | 2026-07-29 | -| 12 | G3b | this rung | — | +| 12 | G3b | `e64a4b7` | 2026-07-30 | + +**Closed by the pre-push repair.** G3b landed across six commits, so its row +needed the same distinction the 2026-07-28 correction draws for G2a: the +introducing commit is **`e64a4b7`** (packet 1), where kind/tag 39 enters +`ops/src/payload.rs` and reasons 16–18 enter `ops/src/effect.rs`. The four +commits after it introduce no discriminant, and the rung *completes* at +`d58eee8` (packet 3b, documentation). Recorded by the pre-push repair rather +than by G3b itself, because a commit cannot cite its own hash and G3b closed +the ladder — there was no later rung to fill it in. **G-minor and P13-S17 (`6170015`) do NOT belong in this chain** — G-minor built the epoch machinery and P13-S17 restored a document's history; neither diff --git a/spec/PASS13_CANDIDATES.md b/spec/PASS13_CANDIDATES.md index 4f238a7..954b0c5 100644 --- a/spec/PASS13_CANDIDATES.md +++ b/spec/PASS13_CANDIDATES.md @@ -98,3 +98,4 @@ visible — a value with a wire form and no canonical carrier to reach it.) | P13-S18 | **Graph invariant 20's agreement and boundary-consistency checks are partial, and nothing yet closes the residue.** Genesis tranche G3b (`spec/CONTRACT_GENESIS_G3B_MEASURE.md` pin 7) makes invariant 20 ABSTAIN — emit no violation — wherever pin 6's comparable relation cannot order two measure starts or pin 6b's musical delta cannot be computed between them: cross-clock offsets (`Musical` vs `WallClock`), differing boundary selectors (`pos`/`edge`), and any `Measure` *end* anchor (unresolvable without the deferred tempo/measure-length machinery, `invariants.rs:400`ff). This is deliberate — base-ingested data may predate the rule, so flagging every incomputable case would make the invariant useless on real scores — but it is a real gap: a score whose measure/meter disagreement happens to fall in one of these incomputable shapes passes invariant 20 silently | `spec/CONTRACT_GENESIS_G3B_MEASURE.md` pin 7 (filed 2026-07-30 during the G3b contract's own drafting, ratified as deliberate abstention rather than a defect) | **open, deliberately.** Closing it needs the deferred P11-C5 resolved-position machinery: once a `Measure` end, or an event position on a wall-clock-placed region, can be placed on a common timeline, the comparable relation and the musical delta both widen and the abstention residue shrinks. No code change is owed by G3b itself | | P13-S19 | **`CreateMeasure`'s ordering and boundary-distance preconditions are vacuous for an instance's first measure, so pickup/anacrusis measures are unauthored by this rung.** Genesis tranche G3b (`spec/CONTRACT_GENESIS_G3B_MEASURE.md` pin 9) makes clauses 1 and 3 of `create_measure`'s append-only discipline vacuous when there is no predecessor measure, and invariant 20's boundary clause is symmetrically exempt for a first measure (core specification, invariant 20's doc comment) — a partial first measure MUST NOT be refused or flagged by either. This is a scoped deferral, not an oversight: a pickup measure's *own* internal consistency (its declared duration against its content) is a decomposition-sum question, not a measure-to-measure boundary question, and modelling it correctly needs a notion of "partial measure" this rung does not introduce | `spec/CONTRACT_GENESIS_G3B_MEASURE.md` pin 9 (filed 2026-07-30 during the G3b contract's own drafting) | **open, deliberately.** A pickup/anacrusis authoring story — whatever shape it takes — is later schema-fill work, sequenced after the genesis ladder closes | | P13-S20 | **`decode.rs`'s `precondition_reason` decoder stopped at discriminant 13, so `PreconditionFailureReason` 14 (`AcousticRealizationPinned`) and 15 (`TranspositionOutOfRange`), both live since Push 4a, encoded but could not decode.** A materialized effect carrying either reason failed canonical round-trip in production code, undetected because `epiphany-testkit`'s `precondition_failure_reason` generator (`generators.rs:417`, then `rng.below(14)`) never drew past 13 despite its doc comment claiming "every core and registered variant" | `spec/CONTRACT_GENESIS_G3B_MEASURE.md` §0 / touch-table row 12a (found 2026-07-30 during the G3b contract's own drafting, verified against the working tree: `decode.rs:205`ff ended at 13, `generators.rs:417` drew `below(14)`) | **RESOLVED in this rung** (genesis tranche G3b packet 1, `e64a4b7`). `decode.rs`'s `precondition_reason` now decodes discriminants 14 through 18 (the pre-existing 14/15 hole plus G3b's own 16–18), and `generators.rs`'s `precondition_failure_reason` now draws `below(19)` with arms for all of them — the generator's doc comment claim is true again, and the decode hole this rung found already latent in the tree, not introduced by it, is closed alongside G3b's own additions | +| P13-S21 | **The wire specification never documented `PreconditionFailureReason` 14 and 15, so the decoder hole P13-S20 repaired had no normative text to be measured against.** `binary_format.tex`'s bounded reason table (`\sectionsc{Bounded Enumerations}`) ran `\tablenums{13}` straight to G3b's `\tablenums{16}`, and Push 4a's own Revision History row recorded only `OperationKind` `\tablenums{30}` (`TransposeInterval`) while saying nothing about the two reasons it appended in the same epoch. `AcousticRealizationPinned` and `TranspositionOutOfRange` appeared **nowhere** in the document, though the Operation Catalog documented both at 0.8.0 and `effect.rs` has carried both since Push 4a. This is P13-S20's specification-side twin: the same two variants, the same silence, and the reason a decoder that stopped at 13 could sit in the tree unchallenged — a conforming implementer reading only the wire specification would have built exactly that decoder and been right | Found 2026-07-30 while verifying genesis tranche G3b packet 3b (`d58eee8`), whose touch-table row 28 scoped the reason table to discriminants 16–18 only; the executing agent correctly declined to widen scope and reported the gap instead | **RESOLVED in this rung** (the G3b pre-push repair). The bounded table gains `\tablenums{14}` and `\tablenums{15}` with their refusal conditions, and Push 4a's Revision History row is amended to record both appends in its own epoch — no version bump and no new history row, because this documents an assignment that has been normative since Push 4a rather than making one. `binary_format_history.rs` gains a bounded regression test requiring both names in the reason table **and** in Push 4a's own row segment, so neither the G3b row's prose nor the Operation Catalog's coverage can satisfy it | diff --git a/spec/PLAN_GMINOR_SCHEMA_MINOR.md b/spec/PLAN_GMINOR_SCHEMA_MINOR.md index b24149e..6ce5ddd 100644 --- a/spec/PLAN_GMINOR_SCHEMA_MINOR.md +++ b/spec/PLAN_GMINOR_SCHEMA_MINOR.md @@ -199,8 +199,14 @@ numbering spaces are unrelated and must not be cross-read. > the rung's one kind and its three `PreconditionFailureReason` appends > together, the Push 4a precedent (epoch 7 bundled kind 30 with reasons 14–15) > rather than a kind epoch and a reason epoch separately. The introducing -> commit is this packet's own — the committing session owns `HEAD`, not this -> packet, so the hash is recorded once committed rather than invented here. +> commit is **`e64a4b7`** (2026-07-30), where kind/tag 39 enters +> `ops/src/payload.rs` and reasons 16–18 enter `ops/src/effect.rs` — G3b landed +> across six commits, and the four that follow packet 1 introduce no +> discriminant, exactly the distinction the 2026-07-28 correction below draws +> between `7df5ca1` and `55eff00`. The rung *completes* at **`d58eee8`** +> (2026-07-30), the documentation half; the hash was filled in by the pre-push +> repair that follows it, because a commit cannot cite itself and G3b closed +> the ladder, leaving no later rung to do it. > The ladder stays monotonic (G3b follows G3a) and prefix-closed. **The ladder is complete against the audit** — every post-baseline variant in @@ -215,8 +221,9 @@ introducing commits rather than assumed: M2c `a207077` (2026-06-25) → Push 3 `92aaccf` (07-02) → Phase-3 `0316160` (07-02) → G-pass `e4edea6` (07-07) → repeat pair `9b5339f` (07-07) → Push 4a `2740a6c` (07-09) → G1 `3b09595` (07-24) → **G2a `7df5ca1`** (07-28) → **G2b `13c3d2f`** (07-29) → **G3a -`6c5e69f`** (07-29) → **G3b** (this packet's own commit — the committing -session owns `HEAD`, hash recorded there rather than invented here). The two +`6c5e69f`** (07-29) → **G3b `e64a4b7`** (07-30, the packet-1 commit where +kind/tag 39 and reasons 16–18 enter the vocabularies; the rung completes at +`d58eee8`, which introduces no discriminant). The two events sharing 2026-07-07 are ordered correctly: the G-pass precedes the repeat revision. The two events sharing 2026-07-29 are ordered **by ancestry, not timestamp**: `13c3d2f` is an ancestor of `6c5e69f` (verified with diff --git a/spec/binary_format.pdf b/spec/binary_format.pdf index 8fb792eb63a1d99bbeb74fc9471e310a0da8e55d..9b10fdf25fad3541aa578af605d6e575d22689f4 100644 GIT binary patch delta 28173 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

-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 delta 27662 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 diff --git a/spec/binary_format.tex b/spec/binary_format.tex index c9aaf6a..5224bea 100644 --- a/spec/binary_format.tex +++ b/spec/binary_format.tex @@ -1637,6 +1637,8 @@ trailing bytes are decode errors. \tablenums{11} TempoMapMalformed; \tablenums{12} SystemDerivedContentImmutable (Pass~12, P12-K3); \tablenums{13} RecreateContentMismatch (Pass~12, P12-K9); + \tablenums{14} AcousticRealizationPinned; + \tablenums{15} TranspositionOutOfRange (both Push~4a); \tablenums{16} MeasureMeterMismatch, \tablenums{17} MeasureOutOfOrder, \tablenums{18} MeasureOrderUnverifiable (genesis tranche G3b). \\ \texttt{RepairRecord} & @@ -3548,10 +3550,17 @@ only}: implementations need not agree on an error taxonomy. $\mathrm{seq}^{\Uparrow}$ notation (strictly increasing; a decoder \MUST{} reject a duplicate rather than normalize it) and marks \tablenums{9} (\texttt{Transpose}) frozen, its - $\mathrm{seq}^{\uparrow}$ being a multiset. No existing assignment - changed. Semantics: Operation Catalog \sectionsc{TransposeInterval}, - 0.8.0; algebra: core Chapter~2, \sectionsc{Transposition and the - Interval Type}. \\ + $\mathrm{seq}^{\uparrow}$ being a multiset. Appends two + \texttt{PreconditionFailureReason} discriminants in the same epoch, + \tablenums{14} (\texttt{AcousticRealizationPinned}: a target whose + \texttt{AcousticRealization::AbsoluteHz} overrides the tuning system, so + moving its scale position would move the notehead without moving the + sound) and \tablenums{15} (\texttt{TranspositionOutOfRange}: an + \texttt{alteration} or \texttt{octave} driven past its \texttt{i8} + bound, where the frozen \tablenums{9} saturates and reports success). + No existing assignment changed. Semantics: Operation Catalog + \sectionsc{TransposeInterval}, 0.8.0; algebra: core Chapter~2, + \sectionsc{Transposition and the Interval Type}. \\ \today & Chunk references & 0.8.0 --- Strict \texttt{CompressionAlgorithm} decode (Push~5, P3): \texttt{req:binfmt:compression-none-parameter} \MUST{} reject a non-zero parameter byte on the \texttt{None} discriminant. Ignoring