Section 8.4's M27 entry said M27 varies which clause is chosen. It now says each
of M22-M26 presupposes that selection succeeded and M27 attacks whether
selection is permitted at all. M25 is what varies which clause is chosen; a
correct implementation rejects M27 before selecting any clause.
Section 8.6 is untouched and verified so with a zero-context diff: its sentence
appears in the staged diff only as hunk context, never as an addition or a
deletion. It says M27 was the step no mutation had reached, which is true, and
an earlier draft of amendment 4 would have rewritten it.
Contract-only, three hunks: the replaced sentence, section 9's landed status
literal, and section 9's historical marker naming amendment 4. No annex edit --
its record that the correction was open as of bff7be0 remains true. Baseline
unchanged at 43 suites, 1586 passing; this commit changes prose only.
Section 9.6's gate observed, all items: one path staged; within section 8.4's
M27 entry the old sentence absent and the replacement present exactly once;
section 8.6 unchanged under zero context; within section 9's slice the landed
literal and an amendment-4-specific marker present; diff check clean.
One nuance in the ratified gate rationale is worth recording rather than
patching, since section 9 is frozen. Item 2 argues the scope is mandatory
because a file-wide form is unsatisfiable, section 9.1 quoting the old sentence
and 9.3 the replacement. Measured: under a normalising reader -- blockquote
prefixes stripped, whitespace collapsed, which is how every guard in this
repository reads .tex -- file-wide is indeed 1 and 2, and unsatisfiable. Under
raw exact matching against the source's own line wrapping it is 0 and 1, and
would pass. Section 9.6 does not say which reader it means. The scoping is right
under either, and item 4's scope is mandatory under both, the file carrying
eleven copies of the landed literal.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ps1szk2mSfgp4Cz21eVH9x