Go to file
Levi Neuwirth a5f3013044
S16: ratification round 9 -- harden the locator, not only the assertion
Whole-artifact review of 942f261 returned one blocking finding. A sweep of it
escalated a second.

1. The expected-outcome table recombined M7a and M7b as "its own grep guard;
   the other guard." That recreates the exact ambiguity M7's split existed to
   remove: a report can say "own guard failed" without establishing which guard
   failed or which survived -- and round 8's full-suite rule reports tests by
   name, so a row naming none cannot be checked against it.

   Split into two rows with the exact names. M7a fails
   t14_staff_group_field_doc_comment_states_sole_authority (graph.rs:2136)
   while t14_staff_group_members_field_doc_comment_states_non_authoritative_projection
   (:2160) must pass; M7b the reverse. Each quotes its needle-miss message and
   the doc_block that message dumps.

   M7 was divided in draft amendment 1 precisely because one mutation covering
   two guards could pass with the other still weak. The table re-merged them
   for brevity. A summary row is a restatement, and a restatement of a
   distinction can drop it.

2. Sweep: M7b's required output was unobtainable. Both guards locate their doc
   block by searching for a phrase from the doc text, and :2163's anchor is the
   disposition-B claim pin 10 rewrites. Once the anchor is updated to the A
   wording, M7b's revert to B makes .find() return None and
   .expect("StaffGroup.members's doc comment is present") panics -- naming no
   needle and dumping no block. The required observation would be an anchor
   panic pointing at absent text.

   Pin 10 now requires the slice to be located from the FIELD DECLARATION --
   pub group: Option<StaffGroupId>, and pub members: Vec<StaffId>,, which no
   wording changes -- extending backwards over the contiguous /// lines. The
   block then exists under either disposition and the only way to fail is the
   needle assertion, with message and block intact.

   This is the absence-grep lesson one level down. Pin 10 hardened the NEEDLES
   against wording both dispositions satisfy and left the ANCHORS matching
   wording only one disposition has. A guard whose locator depends on the text
   it inspects fails before it can report, and failing early looks like failing
   correctly: the test is red, the mutation "worked", and the evidence never
   existed.

Still DRAFT, still unratified. No implementation work has begun.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ps1szk2mSfgp4Cz21eVH9x
2026-08-09 20:32:43 +02:00
.github/workflows Editor T2 W3: the goldens become conformance gate [9/9] 2026-07-23 17:20:14 -04:00
crates P13-S27: accept reduction authority implementation 2026-08-09 15:05:58 +02:00
spec S16: ratification round 9 -- harden the locator, not only the assertion 2026-08-09 20:32:43 +02:00
spikes/editor-toolkit Packet 2B: both candidates consume the frozen text apparatus 2026-07-30 21:42:05 -04:00
.gitignore Schema major 1 Phase F: ratify engrave I8/I9/I10 + process trail 2026-07-06 17:40:38 -04:00
CLAUDE.md Post-S27 doc reconciliation: CLAUDE, handoff, S16 contract, both ledger cells 2026-08-09 15:24:21 +02: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