Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 11 additions & 5 deletions tools/substrate-claim-checker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Substrate-claim-checker per the verify-then-claim discipline memo
(`memory/feedback_verify_then_claim_discipline_dominant_failure_mode_substrate_authoring_otto_2026_05_03.md`).

Catches 4 of the 7 sub-classes B-0170 names:
Catches 5 B-0170 check-types:

- **Count drift** (v0.4.4) — between narrative claims (e.g. "18+ drift
instances", "13-row table", "5 procedure skills") and the actual
Expand All @@ -19,15 +19,20 @@ Catches 4 of the 7 sub-classes B-0170 names:
Catches eval-set instances #19 and #20 (frontmatter claims a count
that diverges from the actual table row count). Implemented in
`check-cross-surface.ts`.
- **Convention drift** (v0.9) — claims that a current ADR supersedes
an earlier ADR when the earlier ADR lacks the reciprocal top-of-file
`Superseded by` marker naming the superseding ADR. Implemented in
`check-convention.ts`.

The remaining 3 sub-classes (semantic-equivalence, empirical-output,
convention) are deferred to v0.9+.
The remaining deferred check-types include semantic-equivalence,
empirical-output, and self-recursive drift.

## Usage

```bash
bun tools/substrate-claim-checker/check-counts.ts <file>
bun tools/substrate-claim-checker/check-counts.ts memory/feedback_*.md
bun tools/substrate-claim-checker/check-convention.ts docs/DECISIONS/*.md
```

Exit code 0 = no drift detected (warnings alone are non-blocking per the v0.6 severity model — see "v0.6 — gitignore awareness for existence-drift" below). Exit code 1 = drift detected (or
Expand Down Expand Up @@ -61,13 +66,14 @@ input error).
or blockquotes) aren't recognized yet. v1 candidate: relax the
leading-anchor in `findTables` from `^\|` to `^\s*\|`.

## What this does NOT do (v0)
## Drift classes

- **Count drift** (claimed markdown-table row count doesn't match) — shipped v0
- **Existence drift** (file/dir/tool claimed to exist; doesn't) — shipped v0.5
- **Path-form drift** (fully-qualified vs bare paths inconsistent) — shipped v0.7
- **Convention drift** (recommended pattern doesn't match canonical) — shipped v0.9
- **Semantic-equivalence drift** (command substitution claims) — v1
- **Empirical-output drift** (run-the-command-and-compare) — v1
- **Convention drift** (recommended pattern doesn't match canonical) — v1
- **Self-recursive drift** (the memo about drift contains its own drift) — v1
Comment thread
AceHack marked this conversation as resolved.

## Composes with
Expand Down
Loading
Loading