Go to file
Levi Neuwirth 012a2de16d G3a contract repairs: the authorship cycle, and four maps the pin promised without
Five review findings, all confirmed against the tree before repair.

1. StaffGroup/Staff authorship cycle. CreateStaff requires its group live
   (reduce.rs:4117); CreateStaffGroup requires its members live. With mints
   only, NO authoring order yields a bidirectionally consistent group, and the
   inconsistency is unrepairable in-packet -- there is no ModifyStaffGroup and
   deletes are deferred. Invariant 10 checks resolution in both directions
   independently (invariants.rs:1126, :1135) and agreement in neither; the
   spec declares both fields (core_spec.tex:4231, :5578) without saying which
   is authoritative. Added as §1.1, UNRESOLVED, with two dispositions and a
   recommendation -- the shape G2b's accidental_extensions pin took. t8's
   claim is narrowed accordingly: what closes is that CreateStaff's group
   precondition becomes satisfiable, not that a consistent group becomes
   authorable. The unqualified "defect closes" framing was wrong.

2. Pin 4 promised byte-identical re-carry without the machinery that makes it
   work. Comparing "the same value" requires retaining it, and the object map
   holds only Live/Tombstoned. Exactly three carried-value maps exist
   (reduce.rs:999-1007), each threaded through seven sites; G3a needs four
   more, so 28 touch points the first draft omitted entirely. Added pin 4a
   with the seven sites enumerated. Site 4, base seeding, is the one that
   fails silently: a re-carry test that only reduces from empty cannot see a
   missing seed at all. Added t5b (base re-carry) and t13 (each of the four
   seeds killed separately), modelled on G1's documented instrument_values
   precedent at reduce.rs:13264.

3. The companion bump was stale. The tree is at 0.11.0 (G2b bumped it,
   textproj/src/lib.rs:47); the contract repeated G2b's 0.10.0 -> 0.11.0.
   Corrected to 0.11.0 -> 0.12.0 at both sites, with the negative vector
   rejecting 0.11.0.

4. Mutation table repairs:
   - t4's mutation was impossible. A create op's encode_canonical is a single
     push_lp_bytes line over one carried value, so there is nothing in the op
     to reorder. Moved to the carried type's struct_codec! declaration
     (codec.rs:1790), which is where the layout actually lives and is
     self-consistent across both halves -- exactly trap 4's shape.
   - t6 omitted PartDefinition.staves. Now three independent mutations, one
     per referential loop; an uncovered loop is a loop that deletes green.
   - t9 moved fixture and production together, which proves only that a bad
     score fails a checker. Fixture now constant and already dangling; only
     production mutates, one skipped check at a time.
   - t12 could not fail: grepping the whole file matches the implementation
     body, which contains the identifiers the doc comment is meant to gain.
     Now slices the invariant-10 doc block and searches only that.

5. Touch table missed testkit/src/layout_stub.rs:1373, whose 30..=34 range
   restates the coverage claim in prose. Added there and to the plan's trap 6,
   now five boundary-crossing literals rather than four.

Editor authorization recorded as granted narrowly: barriers.rs for the four
exhaustive subjects_of arms only, barrier.rs for the invalid-tag literal,
comment, and assertions 35 -> 39 only. No other change in either crate.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QjsEnYhm1gPpf6ii2iFxFV
2026-07-29 11:26:41 -04:00
.github/workflows Editor T2 W3: the goldens become conformance gate [9/9] 2026-07-23 17:20:14 -04:00
crates Sign t9 with a mutation that actually kills it 2026-07-29 10:18:57 -04:00
spec G3a contract repairs: the authorship cycle, and four maps the pin promised without 2026-07-29 11:26:41 -04:00
spikes/editor-toolkit T4 round 1 record: both candidates PASS, and the two carry-forwards that outlive the verdict 2026-07-29 11:10:05 -04:00
.gitignore Schema major 1 Phase F: ratify engrave I8/I9/I10 + process trail 2026-07-06 17:40:38 -04:00
CONFORMANCE.md Editor T2 W3: the goldens become conformance gate [9/9] 2026-07-23 17:20:14 -04:00
Cargo.lock Editor T4-pre W2: the glyph outlines become a shared typed seam 2026-07-24 18:54:30 -04:00
Cargo.toml T4 round 0: iced is eliminated, and the probe that cleared it proved nothing 2026-07-28 19:01:51 -04:00