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