Skip to content

feat(B-0170.4): seed path-form-drift fixture + regression test#3696

Merged
AceHack merged 3 commits into
mainfrom
otto-cli/b0170-4-path-form-fixture-2026-05-16
May 16, 2026
Merged

feat(B-0170.4): seed path-form-drift fixture + regression test#3696
AceHack merged 3 commits into
mainfrom
otto-cli/b0170-4-path-form-fixture-2026-05-16

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 16, 2026

Summary

Adds the third eval-set fixture for B-0170.4 (substrate-claim-checker regression coverage), extending coverage from {count, existence} to {count, existence, path-form}. Same proven shape as PR #3611 (count-drift fixture) and PR #3624 (existence-drift fixture).

  • tools/substrate-claim-checker/fixtures/path-form-drift-bare-vs-qualified.md — small markdown fixture referencing check-counts.ts (bare) and tools/substrate-claim-checker/check-counts.ts (qualified). Both resolve to the same absolute file via the checker's 3-root strategy (fileDir / parentDir / repoRoot) — no synthetic files required.
  • tools/substrate-claim-checker/fixtures.test.ts — new test pins exact finding count (1) AND exact body-claim line (28) per PR feat(B-0170.4): seed eval-set fixture for count-drift regression coverage #3611 review-thread discipline (chatgpt-codex-connector + copilot-pull-request-reviewer): pinning prevents a body-claim regression from being silently masked by an HTML-comment-side match.
  • tools/substrate-claim-checker/fixtures/README.md — index row added.

Why this slice

Re-decomp check against B-0170's listed children:

  • B-0170.1 (semantic-equivalence-drift): in-flight branch otto-cli/b0170-1-semantic-equiv-checker-2026-05-15 already exists; touching it risks duplicate-work split-brain.
  • B-0170.2 / .3: brand-new sub-class checkers — bigger slice than "smallest safe."
  • B-0170.4 (eval-set coverage): 2 of 5 shipped checkers fixturedso far (count, existence); 3 still lack regression coverage (path-form, convention, cross-surface). Each additional fixture is genuinely independent, has zero merge-conflict risk, and closes one more line of the parent row's done-criteria Round 28 — FsCheck LawRunner (Option B) + round-29 CI anchor #4.

This PR adds one of those three. Convention + cross-surface fixtures remain as future smallest-safe slices following the same shape.

Focused check outcome

$ bun tools/substrate-claim-checker/check-path-forms.ts \
    tools/substrate-claim-checker/fixtures/path-form-drift-bare-vs-qualified.md
tools/substrate-claim-checker/fixtures/path-form-drift-bare-vs-qualified.md:28: path-form drift — same file referenced as "check-counts.ts" (line 28), "tools/substrate-claim-checker/check-counts.ts" (line 30) — use a consistent form
1 path-form drift finding(s).

$ bun test tools/substrate-claim-checker/fixtures.test.ts
 3 pass / 0 fail / 17 expect() calls

$ bun test tools/substrate-claim-checker/
 115 pass / 0 fail / 261 expect() calls

Negative-path stderr from check-existence.test.ts is intentional (tests verify the ENOENT/EISDIR branches return ok: false).

Test plan

  • Standalone CLI emits exactly 1 path-form drift finding for the new fixture
  • fixtures.test.ts passes with exact-count + exact-line pinning
  • Full substrate-claim-checker test suite still green (115 pass / 0 fail)
  • Fixture references only on-disk files (no synthetic paths to break later)
  • HTML provenance comment avoids restating body-claim path forms (PR feat(B-0170.4): seed eval-set fixture for count-drift regression coverage #3611 discipline)

Composes with

🤖 Generated with Claude Code

Adds the third eval-set fixture for B-0170.4, extending regression
coverage from {count, existence} to {count, existence, path-form}.
Same proven shape as PR #3611 (count) and PR #3624 (existence): a
small on-disk markdown file under fixtures/ plus a pinned-expectation
test in fixtures.test.ts.

The fixture references tools/substrate-claim-checker/check-counts.ts
as both a bare basename (`check-counts.ts`) and a fully-qualified
path. Both resolve to the same absolute file via check-path-forms.ts's
3-root strategy (fileDir / parentDir / repoRoot), so the drift is
deterministically detected without depending on synthetic files.

Per PR #3611 review-thread discipline (chatgpt-codex-connector +
copilot): pin exact finding count (1) AND exact body-claim line (28)
so a regression in body-claim detection cannot be silently masked by
an HTML-comment-side match. The provenance comment intentionally
avoids restating either path form.

Re-decomposition note: original B-0170 lists B-0170.1-.4 as children.
B-0170.1 (semantic-equivalence) has an in-flight branch already;
B-0170.2 / .3 introduce brand-new sub-class checkers (bigger slices).
Adding one more fixture under B-0170.4 is genuinely the smallest safe
slice — it extends the proven pattern, has no merge risk, and closes
one more line of the parent row's done-criteria (eval-set coverage).

Focused check: bun test tools/substrate-claim-checker/fixtures.test.ts
→ 3 pass, 0 fail, 17 expect() calls. Full suite: 115 pass, 0 fail.

operative-authorization: aaron 2026-05-14: "- **Devil-pole**
(edge-runner drive): keep pushing, discover, go hard, never-be-idle"

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 16, 2026 02:56
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@AceHack AceHack enabled auto-merge (squash) May 16, 2026 02:56
…3696)

Per-tick shard documenting the path-form-drift fixture slice landed
in PR #3696. Captures the re-decomp reasoning (B-0170.1 has in-flight
branch; B-0170.2/.3 are bigger slices; B-0170.4 fixture continuation
is smallest safe), the subdecimal-vs-top-level scheme discipline
observed (per ac9d9a4 rule), the focused-check outcome, and the
catch-43 cron sentinel re-arm at session start.

operative-authorization: aaron 2026-05-14: "- **Devil-pole**
(edge-runner drive): keep pushing, discover, go hard, never-be-idle"

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds the path-form drift fixture slice for B-0170.4 so the substrate-claim-checker eval-set covers another shipped drift class.

Changes:

  • Adds a new path-form drift markdown fixture.
  • Adds a regression test invoking check-path-forms.ts.
  • Updates the fixture index with the new fixture row.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
tools/substrate-claim-checker/fixtures/README.md Adds the path-form drift fixture to the eval-set index.
tools/substrate-claim-checker/fixtures/path-form-drift-bare-vs-qualified.md Introduces the new bare-vs-qualified path-form drift fixture.
tools/substrate-claim-checker/fixtures.test.ts Adds regression coverage for the new path-form fixture.

Comment thread tools/substrate-claim-checker/fixtures.test.ts
Comment thread tools/substrate-claim-checker/fixtures/README.md Outdated
Per Copilot review threads on PR #3696: the path-form fixture's anchor
was cited as "taxonomy row 4" but path-form is actually instance #15
of the verify-then-claim memo's body table (PR #1256), and sub-class
#6 of the 7-class list. Corrects the README index + adds the historical
anchor comment in the test.

The current fixture remains a synthetic exemplar covering the sub-class;
instance #15's literal substance (adjacent ADR citations from PR #1256)
is queued as follow-on fixture B-0170.4.1 per the per-thread plan.

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link
Copy Markdown
Member Author

@AceHack AceHack left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Antigravity check: Clean atomic slice. No blob detected. Shadow check clear.

@AceHack AceHack merged commit bd0d2fa into main May 16, 2026
28 checks passed
@AceHack AceHack deleted the otto-cli/b0170-4-path-form-fixture-2026-05-16 branch May 16, 2026 03:18
AceHack added a commit that referenced this pull request May 17, 2026
Adds the 5th eval-set fixture for the substrate-claim-checker, covering
the convention sub-class of the 7-class verify-then-claim taxonomy. The
fixture pair (current ADR + sibling predecessor ADR support file) makes
the broken half of the bidirectional ADR supersession convention
reproducible without depending on any real ADR pair in the repo.

Anchor: PR #2512 (the PR that shipped check-convention.ts) — synthetic
exemplar, same shape as the path-form-drift fixture's synthetic case.

Focused check outcomes:
- bun test tools/substrate-claim-checker/fixtures.test.ts → 5 pass / 0 fail
- bun test tools/substrate-claim-checker/ → 117 pass / 0 fail
- Direct CLI run reports 1 convention-drift finding on line 36 with the
  expected reciprocal-marker reason string

Composes with B-0170 (parent), B-0170.4 eval-set thread (PRs #3611,
#3624, #3696, #3749).

operative-authorization: aaron 2026-05-14: "- **Devil-pole** (edge-runner drive): keep pushing, discover, go hard, never-be-idle"

Co-authored-by: Claude <noreply@anthropic.com>
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