Skip to content

S2.6.8 — The M2.md and M4.md corrections, line-neutral #325

Closed

Description

@dev-pmallapp

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, :52 and :145 would keep resolving. They do. They are also no longer true. A guard that only checks a :NN still 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-109 restated to the run-1-mutates-then-run-2-does-not property
  • :105 restated per G5; ARCHITECTURE.md row already added by S2.6.1 — The adapter port, and the ARCHITECTURE.md build target #318
  • docs/milestones/M4.md:215 restated 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-232 fixed, or the deferral recorded with a reason and an owner

Refs #293

Activity

  1. added
    type:taskOne unit of work within a Story
    domain:devSoftware development pack
    iaiCreated or managed by iAI
    on Sep 7, 2026
  2. dev-pmallapp commented on Sep 15, 2026

    @dev-pmallapp
    OwnerAuthor

    iai-evidence

    Verdict: PASS. Artifact: docs/evidence/325-20260915T145546Z.md, pinned at c994d326cf01d6576f85ee72e57338ae0fe57004. PR #339.

    Build target 10. Cases 3 and 19 PASS. The last task of S2.6.

    Line-neutral, measured properly

    File Before After
    docs/milestones/M2.md 261 261
    docs/milestones/M4.md 259 259

    Proven with awk 'END{print NR}' against git show HEAD:<file>, not wc -l alone — wc counts 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

    Site Was Now
    M2.md:107-109 "the second run makes zero mutations" per scenario, never summed: run 1 mutates at least once, run 2 then none
    M2.md:105 iai-skills, a docs target with no build file iai-harness, its own build target (G5), checked against ARCHITECTURE.md:62
    M2.md:230-232 the bare-token ban the routing form domain:<id> / skills/<id>/ (G2 of #41)
    M4.md:215 silent on ownership the one fixture repository S2.6 owns and M4 consumes (G6)

    "Zero mutations" with no > 0 beside 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 :NN resolves 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 :105 assigns the harness to a docs target or that :230-232 still carries the bare-token rule, one quoting the replaced :107-109 sentence verbatim, one saying the M4.md:215 restatement 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

    A drafting error worth recording

    The first draft of the :107-109 rewrite 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.

  3. dev-pmallapp commented on Sep 23, 2026

    @dev-pmallapp
    OwnerAuthor

    PR #339 was merged into story/293-s2-6-skill-execution-harness at adb99697fd2bb2a61665399423239cd96428adb8 (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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:devSoftware development packiaiCreated or managed by iAIstatus:resolvedWork complete, awaiting closuretype:taskOne unit of work within a Story

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions