Skip to content

#341 — Build target 4 resolves from the Design side, not from the artifacts - #343

Merged
dev-pmallapp merged 1 commit into
story/47-s2-3-execution-skillsfrom
task/341-bt4-design-restatement
Sep 23, 2026
Merged

dev-pmallapp merged 1 commit into
story/47-s2-3-execution-skillsfrom
task/341-bt4-design-restatement

Conversation

@dev-pmallapp

Copy link
Copy Markdown
Owner

Pays the second Done-when box of #341, and records this round's gate rulings in the Design.

Build target 4's row was specifying something unbuildable

The row read:

map a task's anchored CLAIM-{story}.{n} to a Design claim and to an artifact on disk

The second half cannot be built, and the reason is a property of the corpus rather than of any missing code. Measured over the 54 artifacts in docs/evidence/:

  • 21 carry no | Claims | row at all
  • the other 33 use at least five mutually incompatible notations — …, en-dash with abbreviated endpoint, .., spaced en-dash, partial-coverage qualifiers — plus the retired ISC-* namespace
  • docs/evidence/ is immutable (NEVER-194.6), so the gaps can never be backfilled and the notations can never be normalised

Restated to what is buildable, and the inversion is the point

BT4 now reconstructs the expected artifact from the Design and the test plan — both mutable, structured, and already parsed by claim-lint's anchor-dangling rule — and then asks the filesystem a yes/no existence question about that specific path. It never parses docs/evidence/ to discover what a claim covers.

Reading coverage out of the artifacts means a heterogeneous corpus yields confident wrong answers.
Reconstructing the expectation and checking for it means an unexpected corpus yields a miss — which is a refusal, which is the safe direction for CLAIM-47.6.

Also records G-a, G-b, G-c

A second ## Gate — RULED AGAIN, 2026-09-23 section, matching the existing gate table's style, with the asymmetry both G-b and G-c turn on stated once.

The trigger is recorded too, because it was not a design question at first: #316's issue body was false in two of its three premise clauses, and the false ones changed the work. Resolving each clause against the tree before believing it is what surfaced G-a.

Verification

Docs-only. 963 tests / 949 pass / 0 fail / 14 skip / 3326 expect() · lint 0 across 98 files · typecheck clean · skill-lint 0 errors · claim-lint 116 files, 0 errors, 1 warning (expected — stories/9.md, ruling G1b of #41).

design-spine goes 114 → 115 sections and stays at 0 errors: the new Gate section is additive and the ten spine sections are untouched.

There is no seam job on story/47, so this PR reports 7 checks, not 8.

Refs #341, #47, #316

…rulings

BT4's row said 'map a task's anchored CLAIM-{story}.{n} to a Design claim
and to an artifact on disk'. The second half cannot be built: 21 of 54
artifacts carry no Claims row, the other 33 use five incompatible
notations, and docs/evidence/ is immutable, so neither gap can ever close.

Restated to what is buildable — reconstruct the EXPECTED artifact from the
Design and test plan, then check for its existence. It never parses
docs/evidence/ to discover what a claim covers.

That inversion is the point, not a detail. Reading coverage out of the
artifacts means a heterogeneous corpus yields confident wrong answers.
Reconstructing the expectation and checking for it means an unexpected
corpus yields a miss, which is a refusal, which is the safe direction for
CLAIM-47.6.

Also records G-a, G-b and G-c in a second Gate section, with the trigger:
#316's issue body was false in two of three clauses, and resolving each
against the tree before believing it is what surfaced G-a.

Refs #341, #47, #316
@dev-pmallapp
dev-pmallapp marked this pull request as ready for review September 23, 2026 13:55
@dev-pmallapp
dev-pmallapp merged commit 9e92974 into story/47-s2-3-execution-skills Sep 23, 2026
7 checks passed
@dev-pmallapp
dev-pmallapp deleted the task/341-bt4-design-restatement branch September 23, 2026 14:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants