Repository navigation
S2.6.8 — The M2.md and M4.md corrections, line-neutral #325
Description
Parent: #293
Build target 10. Anchors: CLAIM-293.3, CLAIM-293.9. Cases: 3, 19.
Blocked by: #323
The milestone's verification sentence is incomplete in the one direction that matters
docs/milestones/M2.md:107-109:
"Each skill runs twice against the same fixture repository and the second run makes zero mutations."
"Zero mutations" with no > 0 beside it is satisfied perfectly by a harness that never ran anything. Restate it to what this Story actually verifies: run 1 mutates, and then run 2 does not, per scenario, never summed.
Also restate :105, which assigns the harness to iai-skills — a docs target with no build file per ARCHITECTURE.md:69 and :73. Gate ruling G5 makes it a new build target.
MUST BE LINE-NEUTRAL
Roughly thirty citations index docs/milestones/M2.md positionally, and two are inside immutable evidence artifacts. Finding 26.
And read #297's lesson before assuming line-neutrality is enough. #297's edit was exactly line-neutral so that
:31,:52and:145would keep resolving. They do. They are also no longer true. A guard that only checks a:NNstill resolves would have passed it unchanged, because making it pass was the entire design goal. Line-neutrality preserves a citation's target and can destroy its truth. #304 is the owner; this task is its third live instance.
Also in scope, or explicitly deferred with a reason
docs/milestones/M2.md:230-232 still carries the bare-token domain-agnosticism exit criterion that gate ruling G2 of #41 overturned in favour of the routing-form restatement. This task opens the file; it must state which way that goes rather than leaving a superseded criterion in place a second time.
Done when
-
:107-109restated to the run-1-mutates-then-run-2-does-not property -
:105restated per G5;ARCHITECTURE.mdrow already added by S2.6.1 — The adapter port, and the ARCHITECTURE.md build target #318 -
docs/milestones/M4.md:215restated to record that this Story owns the fixture repository M4 consumes (G6) - Line counts identical before and after, verified and stated in the evidence artifact
-
:230-232fixed, or the deferral recorded with a reason and an owner
Refs #293
Activity
dev-pmallapp commentedon Sep 15, 2026
iai-evidence
Verdict: PASS. Artifact:
docs/evidence/325-20260915T145546Z.md, pinned atc994d326cf01d6576f85ee72e57338ae0fe57004. PR #339.Build target 10. Cases 3 and 19 PASS. The last task of S2.6.
Line-neutral, measured properly
docs/milestones/M2.mddocs/milestones/M4.mdProven with
awk 'END{print NR}'againstgit show HEAD:<file>, notwc -lalone —wccounts newlines, so a file whose final newline changed can read identically while its line count did not. 7 insertions, 7 deletions, four hunks.The four restatements
M2.md:107-109M2.md:105iai-skills, adocstarget with no build fileiai-harness, its own build target (G5), checked againstARCHITECTURE.md:62M2.md:230-232domain:<id>/skills/<id>/(G2 of #41)M4.md:215"Zero mutations" with no
> 0beside it is satisfied perfectly by a harness that never ran anything — the vacuity #322's runner was built to close, left standing in the sentence that seeds it.Eight citations now resolve and are false
#297's edit was exactly line-neutral so that its citations would keep resolving. They do. They are also no longer true. A guard checking only that a
:NNresolves would have passed it, because making it pass was the design goal.All ~30 citations into both files were resolved by hand. Every citation into the four edited sites still resolves; eight are now false in the present tense — six saying
:105assigns the harness to adocstarget or that:230-232still carries the bare-token rule, one quoting the replaced:107-109sentence verbatim, one saying theM4.md:215restatement is unresolved.None is edited. Each is a problem statement or gate ruling inside gate-approved documents recording the world as it was at ruling time; a Design that stopped describing the defect it commissioned a fix for would destroy the record of why the fix happened. They are tabled in the artifact with a verdict each, alongside the six that survive.
No immutable evidence artifact cites any edited site — checked across all of
docs/evidence/.Deliberately not done
M2.md:240-241untouched, owner M2's token-cost exit criterion can only be met with a session total today, not a per-verb measurement #337. S2.6.7 — The live rung, never required #324's token figure is a session total and an upper bound; ticking, restating or re-measuring is a ruling, not a line edit. It must not be ticked on that number.:NNstill says what the citing document claims — the third consecutive task to pay that cost.A drafting error worth recording
The first draft of the
:107-109rewrite silently dropped "every claim maps to at least one case" while compressing — a verification requirement, not a turn of phrase. A line-neutral edit can be line-neutral and still delete a requirement.Chain
1156 tests / 1142 pass / 0 fail / 14 skip / 4220
expect()· lint 0 across 126 files · claim-lint 126 files, 0 errors, 1 warning · both verifiers PASS at six · CI on PR #339 8/8.dev-pmallapp commentedon Sep 23, 2026
PR #339 was merged into
story/293-s2-6-skill-execution-harnessatadb99697fd2bb2a61665399423239cd96428adb8(2026-09-21T03:43:11Z).Closing as completed. Evidence:
docs/evidence/325-20260915T145546Z.md.This was the last of #293's eight tasks. A task PR targets the story branch, so closing keywords never fire — hence this explicit close citing the merge commit.