From 339b1e475b9fd1376f14ddf077920d51b547c471 Mon Sep 17 00:00:00 2001 From: Levi Neuwirth Date: Wed, 24 Jun 2026 13:06:22 -0400 Subject: [PATCH] Agent K M1 review follow-up: correct two doc-accuracy findings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From the M1 review (no correctness bugs found; these are accuracy corrections to shipped artifacts, not new feature work): - migration gate: the `v1 == migrated` assertion's comment overclaimed a universal inverse. It is round-trip self-consistency over the representative corpus (which is built from the same valuegen helpers the migration reconstructs values with); the spec-level property is the reduction-equivalence asserted alongside it. The ReplaceWithRest rest-voice is the known non-invertible field, recovered from the deleted event's placement at reduction. - operation_catalog §CreateCrossCutting: document that v0→v1 migration covers the event-anchored Tie/Slur/Beam; a Spanner (anchor-based) cannot be reconstructed from the v0 event-reference and is reported unmigratable (read-only) under M1, so the catalog no longer silently implies it round-trips. Review findings deferred to M2 (per project lead): migrate.rs unit tests for the untested reconstruction branches, and the valuegen::spelling() mod-7 domain cleanup. Gates unchanged and green (comment + spec-text only). Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/epiphany-testkit/src/migration.rs | 13 ++++++++++--- spec/operation_catalog.pdf | Bin 73744 -> 74284 bytes spec/operation_catalog.tex | 9 +++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/crates/epiphany-testkit/src/migration.rs b/crates/epiphany-testkit/src/migration.rs index 97d8078..36b2ed2 100644 --- a/crates/epiphany-testkit/src/migration.rs +++ b/crates/epiphany-testkit/src/migration.rs @@ -77,11 +77,18 @@ pub fn run_migration_equivalence(n_ops: usize, seed: u64) { "v0->v1 migration changed the canonical reduction state (seed {seed})" ); - // The migration faithfully inverts the projection on the representative - // payloads (a stronger property than reduction-equivalence alone). + // Round-trip self-consistency over *this* corpus: because the corpus is + // built from the same `valuegen` helpers the migration reconstructs values + // with, `migrate(project(env)) == env` holds exactly here. This is a sharper + // check than reduction-equivalence for the corpus, but it is NOT a universal + // inverse: the v0 projection drops fields the migration cannot recover (e.g. + // a `ReplaceWithRest` rest's own voice — recovered from the deleted event's + // placement at reduction, not from the value). The spec-level property is the + // reduction-equivalence asserted above; widening `operation_envelopes` to emit + // such a payload would surface here and is M2's cue to revisit faithfulness. assert_eq!( v1, migrated, - "migration is not the inverse of projection (seed {seed})" + "migration round-trip diverged from the original on this corpus (seed {seed})" ); // Deterministic: migrating the same projection against the same context diff --git a/spec/operation_catalog.pdf b/spec/operation_catalog.pdf index 60e2006e45afb3c9e0dd371d132562719893e1a0..e5734ddf795aa3f1de4fa6328242e45bdad83b9e 100644 GIT binary patch delta 20915 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 z%0A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 diff --git a/spec/operation_catalog.tex b/spec/operation_catalog.tex index ca20b5a..a873ae5 100644 --- a/spec/operation_catalog.tex +++ b/spec/operation_catalog.tex @@ -500,6 +500,15 @@ policy. \textbf{Re-anchoring.} The structure participates in the re-anchoring rule table when one of its endpoints is later tombstoned (see DeleteEvent). +\textbf{Migration coverage.} The v0$\rightarrow$v1 migration +(Chapter~\ref{ch:migration}) reconstructs the event-anchored \texttt{Tie}, +\texttt{Slur}, and \texttt{Beam} from the v0 reference (id plus event endpoints). +A \texttt{Spanner} is anchored by \texttt{TimeAnchor}s rather than a fixed pair +of event endpoints, so its full value is not reconstructable from the v0 +event-reference projection; a \texttt{Spanner}-create is therefore reported +unmigratable (read-only) under M1, alongside the respell case of P12-K1. A +faithful spanner migration joins when the projection carries the anchors --- M2. + \section{ChangeRegionTimeModel} \label{sec:k0:change-region-time-model}