Skip to content

fix: post-merge cleanup — MEMORY.md discoverability + grammar + internal contradiction#1290

Merged
AceHack merged 1 commit intomainfrom
fix/post-merge-cleanup-memory-md-grammar-contradiction-otto-2026-05-03
May 3, 2026
Merged

fix: post-merge cleanup — MEMORY.md discoverability + grammar + internal contradiction#1290
AceHack merged 1 commit intomainfrom
fix/post-merge-cleanup-memory-md-grammar-contradiction-otto-2026-05-03

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 3, 2026

Summary

Bundles three real findings from #1286 + #1287 + #1288 reviews:

  1. MEMORY.md discoverability lost (hygiene(tick-history): 2026-05-03T03:02Z — calibration cluster review-cycle #1286 finding): The architectural-intent-guesses/ directory's MEMORY.md entry was lost when free-memory: guess #002 — in-the-moment guess on B-0172 skill-domain-plugin-packaging (Otto 2026-05-03) #1282 closed-as-superseded. Re-added with full series progression note.
  2. Grammar (fix(#1283 follow-up): provenance drift + grammar in B-0172 calibration recovery #1287 P2): "landed to main" / "landing to main" → "merged into main". Two instances.
  3. Internal contradiction (GROUND-TRUTH-RECOVERY-EXTENSION: B-0172 calibration refined via Aaron 2026-05-03 first-party query (hooks PRIMARY + dev-distribution SECONDARY) #1288 P1): "Composition-as-contracts" appeared in BOTH the "What I got" column AND the "inferred-from-principles, not load-bearing" classification below. Fixed by moving to "What I missed" column consistently.

Lessons

🤖 Generated with Claude Code

…nal contradiction (3 PRs of findings)

Three real findings from #1286 + #1287 + #1288 review:

**#1286**: MEMORY.md entry for architectural-intent-guesses/ directory was
LOST when #1282 closed-as-superseded. Fix was on #1282's branch but
didn't propagate to #1283's chained merge. Re-added newest-first entry
pointing at architectural-intent-guesses/README.md with series
progression note (guess #1 48% + guess #2 65% + pattern observations
including the architect-vs-UX divide finding).

**#1287**: Grammar — "landed to main" / "landing to main" → "merged
into main". Two instances fixed (recovery section + footer).

**#1288**: P1 internal contradiction in calibration delta table —
"Composition-as-contracts" was listed under "What I got" while the
refined-analysis paragraph below said it was inferred-from-principles
NOT named by Aaron. Fixed by moving composition-as-contracts (+
versioning-as-lineage + isolation-as-namespace) to the "What I missed"
column with explicit "Inferred-from-principles, not load-bearing"
classification — consistent with the refined-analysis paragraph.

Lessons:

- **Branch-chain provenance hygiene** (Otto-355 derivative): when a
  chained PR's parent gets closed-as-superseded, fixes on the parent's
  branch can be lost. Even my second attempt to address this (#1287
  fix) missed re-applying #1282's MEMORY.md entry. Future-Otto: when
  closing a parent PR, explicitly enumerate which fixes need to
  propagate to the merging chain
- **Internal-contradiction at write-time**: the calibration table's
  "got" column listed composition-as-contracts while the analysis below
  classified it as missed; this is intra-file semantic-equivalence drift
  that v1+ substrate-claim-checker would catch via its semantic-
  equivalence sub-class

Co-Authored-By: Claude Opus 4.7 <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

Documentation-only post-merge cleanup to restore lost discoverability in memory/MEMORY.md, fix two “landed/landing to main” grammar instances, and resolve an internal inconsistency in a calibration-delta table entry.

Changes:

  • Re-add architectural-intent-guesses/ to the memory/MEMORY.md index for discoverability.
  • Replace “landed/landing to main” phrasing with “merged into main” in two places.
  • Fix a table classification contradiction by moving “Composition-as-contracts” out of “What I got” into “What I missed”.

Reviewed changes

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

File Description
memory/architectural-intent-guesses/2026-05-03-b-0172-skill-domain-plugin-packaging.md Adjusts provenance wording (“merged into main”) and corrects the calibration-delta table to remove an internal contradiction.
memory/MEMORY.md Restores an index entry pointing to architectural-intent-guesses/README.md to make the directory grep-/browse-discoverable again.

@AceHack AceHack merged commit a9a7625 into main May 3, 2026
28 checks passed
@AceHack AceHack deleted the fix/post-merge-cleanup-memory-md-grammar-contradiction-otto-2026-05-03 branch May 3, 2026 03:15
AceHack added a commit that referenced this pull request May 3, 2026
…-drift sub-class)

Second sub-class of B-0170's 7-class taxonomy. Catches claims that a
file or directory exists when it doesn't on disk.

**What it catches**:

- Backtick-quoted paths in markdown
- Markdown link targets (relative paths only)
- Cases where the path doesn't resolve to anything on disk

**Resolution discipline**: tries 3 candidate roots in priority order:

1. File's own directory (intra-dir cross-references)
2. Parent directory (bare-filename refs for files in subdirs)
3. Repository root (repo-relative paths)

Stops on first hit; only emits finding if NO root resolves.

**Future-state context detection**: claims marked future-state are
exempt (proposed/planned/will-be/would-be/tbd/deferred/i'm-guessing/
concretely-something-like/will-probably/etc.).

**Skipped automatically**: globs (*, ?, [...]), URLs, anchors,
absolute paths, placeholders, fenced code blocks.

**Tests**: 17 new tests across looksLikePath / isFutureStateContext /
findPathClaims (33 total in tools/substrate-claim-checker/, all pass).

**Multiple findings this session would have been caught**:

- PR #1280 B-0173 ground-truth recovery claimed `tools/git/hooks/`
  exists; reviewer flagged that it doesn't (B-0173 row deliverable)
- PR #1289 + #1290 review threads flagged similar existence-drift
  patterns

**Sanity check on real substrate**:
- alignment-frontier memo: clean (0 findings)
- B-0173 guess file (post-#1285 fix): 2 false-positives in
  calibration-delta tables (acceptable v0.5 limitation; documented)
- B-0166 guess file: 1 finding (proposed `tools/chat-events/replay.ts`)

**v0.5 known limitations** (documented in README):

- Calibration-delta tables citing path-forms as discussion topics
  may false-positive (mitigated but imperfect)
- Section-level future-state markers don't propagate to claims
  further down; use inline markers per claim or paragraph

**Out of scope (v0.6+)**:

- Tool-existence (e.g., "running `bun X` returns Y") — separate
  empirical-output drift sub-class
- URL existence (web fetches; not file-system)
- Convention drift, path-form drift, self-recursive drift —
  separate sub-classes per the 7-class taxonomy

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 3, 2026
…-drift sub-class)

Second sub-class of B-0170's 7-class taxonomy. Catches claims that a
file or directory exists when it doesn't on disk.

**What it catches**:

- Backtick-quoted paths in markdown
- Markdown link targets (relative paths only)
- Cases where the path doesn't resolve to anything on disk

**Resolution discipline**: tries 3 candidate roots in priority order:

1. File's own directory (intra-dir cross-references)
2. Parent directory (bare-filename refs for files in subdirs)
3. Repository root (repo-relative paths)

Stops on first hit; only emits finding if NO root resolves.

**Future-state context detection**: claims marked future-state are
exempt (proposed/planned/will-be/would-be/tbd/deferred/i'm-guessing/
concretely-something-like/will-probably/etc.).

**Skipped automatically**: globs (*, ?, [...]), URLs, anchors,
absolute paths, placeholders, fenced code blocks.

**Tests**: 17 new tests across looksLikePath / isFutureStateContext /
findPathClaims (33 total in tools/substrate-claim-checker/, all pass).

**Multiple findings this session would have been caught**:

- PR #1280 B-0173 ground-truth recovery claimed `tools/git/hooks/`
  exists; reviewer flagged that it doesn't (B-0173 row deliverable)
- PR #1289 + #1290 review threads flagged similar existence-drift
  patterns

**Sanity check on real substrate**:
- alignment-frontier memo: clean (0 findings)
- B-0173 guess file (post-#1285 fix): 2 false-positives in
  calibration-delta tables (acceptable v0.5 limitation; documented)
- B-0166 guess file: 1 finding (proposed `tools/chat-events/replay.ts`)

**v0.5 known limitations** (documented in README):

- Calibration-delta tables citing path-forms as discussion topics
  may false-positive (mitigated but imperfect)
- Section-level future-state markers don't propagate to claims
  further down; use inline markers per claim or paragraph

**Out of scope (v0.6+)**:

- Tool-existence (e.g., "running `bun X` returns Y") — separate
  empirical-output drift sub-class
- URL existence (web fetches; not file-system)
- Convention drift, path-form drift, self-recursive drift —
  separate sub-classes per the 7-class taxonomy

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 3, 2026
…-drift sub-class)

Second sub-class of B-0170's 7-class taxonomy. Catches claims that a
file or directory exists when it doesn't on disk.

**What it catches**:

- Backtick-quoted paths in markdown
- Markdown link targets (relative paths only)
- Cases where the path doesn't resolve to anything on disk

**Resolution discipline**: tries 3 candidate roots in priority order:

1. File's own directory (intra-dir cross-references)
2. Parent directory (bare-filename refs for files in subdirs)
3. Repository root (repo-relative paths)

Stops on first hit; only emits finding if NO root resolves.

**Future-state context detection**: claims marked future-state are
exempt (proposed/planned/will-be/would-be/tbd/deferred/i'm-guessing/
concretely-something-like/will-probably/etc.).

**Skipped automatically**: globs (*, ?, [...]), URLs, anchors,
absolute paths, placeholders, fenced code blocks.

**Tests**: 17 new tests across looksLikePath / isFutureStateContext /
findPathClaims (33 total in tools/substrate-claim-checker/, all pass).

**Multiple findings this session would have been caught**:

- PR #1280 B-0173 ground-truth recovery claimed `tools/git/hooks/`
  exists; reviewer flagged that it doesn't (B-0173 row deliverable)
- PR #1289 + #1290 review threads flagged similar existence-drift
  patterns

**Sanity check on real substrate**:
- alignment-frontier memo: clean (0 findings)
- B-0173 guess file (post-#1285 fix): 2 false-positives in
  calibration-delta tables (acceptable v0.5 limitation; documented)
- B-0166 guess file: 1 finding (proposed `tools/chat-events/replay.ts`)

**v0.5 known limitations** (documented in README):

- Calibration-delta tables citing path-forms as discussion topics
  may false-positive (mitigated but imperfect)
- Section-level future-state markers don't propagate to claims
  further down; use inline markers per claim or paragraph

**Out of scope (v0.6+)**:

- Tool-existence (e.g., "running `bun X` returns Y") — separate
  empirical-output drift sub-class
- URL existence (web fetches; not file-system)
- Convention drift, path-form drift, self-recursive drift —
  separate sub-classes per the 7-class taxonomy

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 3, 2026
…-drift sub-class)

Second sub-class of B-0170's 7-class taxonomy. Catches claims that a
file or directory exists when it doesn't on disk.

**What it catches**:

- Backtick-quoted paths in markdown
- Markdown link targets (relative paths only)
- Cases where the path doesn't resolve to anything on disk

**Resolution discipline**: tries 3 candidate roots in priority order:

1. File's own directory (intra-dir cross-references)
2. Parent directory (bare-filename refs for files in subdirs)
3. Repository root (repo-relative paths)

Stops on first hit; only emits finding if NO root resolves.

**Future-state context detection**: claims marked future-state are
exempt (proposed/planned/will-be/would-be/tbd/deferred/i'm-guessing/
concretely-something-like/will-probably/etc.).

**Skipped automatically**: globs (*, ?, [...]), URLs, anchors,
absolute paths, placeholders, fenced code blocks.

**Tests**: 17 new tests across looksLikePath / isFutureStateContext /
findPathClaims (33 total in tools/substrate-claim-checker/, all pass).

**Multiple findings this session would have been caught**:

- PR #1280 B-0173 ground-truth recovery claimed `tools/git/hooks/`
  exists; reviewer flagged that it doesn't (B-0173 row deliverable)
- PR #1289 + #1290 review threads flagged similar existence-drift
  patterns

**Sanity check on real substrate**:
- alignment-frontier memo: clean (0 findings)
- B-0173 guess file (post-#1285 fix): 2 false-positives in
  calibration-delta tables (acceptable v0.5 limitation; documented)
- B-0166 guess file: 1 finding (proposed `tools/chat-events/replay.ts`)

**v0.5 known limitations** (documented in README):

- Calibration-delta tables citing path-forms as discussion topics
  may false-positive (mitigated but imperfect)
- Section-level future-state markers don't propagate to claims
  further down; use inline markers per claim or paragraph

**Out of scope (v0.6+)**:

- Tool-existence (e.g., "running `bun X` returns Y") — separate
  empirical-output drift sub-class
- URL existence (web fetches; not file-system)
- Convention drift, path-form drift, self-recursive drift —
  separate sub-classes per the 7-class taxonomy

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 3, 2026
…-drift sub-class)

Second sub-class of B-0170's 7-class taxonomy. Catches claims that a
file or directory exists when it doesn't on disk.

**What it catches**:

- Backtick-quoted paths in markdown
- Markdown link targets (relative paths only)
- Cases where the path doesn't resolve to anything on disk

**Resolution discipline**: tries 3 candidate roots in priority order:

1. File's own directory (intra-dir cross-references)
2. Parent directory (bare-filename refs for files in subdirs)
3. Repository root (repo-relative paths)

Stops on first hit; only emits finding if NO root resolves.

**Future-state context detection**: claims marked future-state are
exempt (proposed/planned/will-be/would-be/tbd/deferred/i'm-guessing/
concretely-something-like/will-probably/etc.).

**Skipped automatically**: globs (*, ?, [...]), URLs, anchors,
absolute paths, placeholders, fenced code blocks.

**Tests**: 17 new tests across looksLikePath / isFutureStateContext /
findPathClaims (33 total in tools/substrate-claim-checker/, all pass).

**Multiple findings this session would have been caught**:

- PR #1280 B-0173 ground-truth recovery claimed `tools/git/hooks/`
  exists; reviewer flagged that it doesn't (B-0173 row deliverable)
- PR #1289 + #1290 review threads flagged similar existence-drift
  patterns

**Sanity check on real substrate**:
- alignment-frontier memo: clean (0 findings)
- B-0173 guess file (post-#1285 fix): 2 false-positives in
  calibration-delta tables (acceptable v0.5 limitation; documented)
- B-0166 guess file: 1 finding (proposed `tools/chat-events/replay.ts`)

**v0.5 known limitations** (documented in README):

- Calibration-delta tables citing path-forms as discussion topics
  may false-positive (mitigated but imperfect)
- Section-level future-state markers don't propagate to claims
  further down; use inline markers per claim or paragraph

**Out of scope (v0.6+)**:

- Tool-existence (e.g., "running `bun X` returns Y") — separate
  empirical-output drift sub-class
- URL existence (web fetches; not file-system)
- Convention drift, path-form drift, self-recursive drift —
  separate sub-classes per the 7-class taxonomy

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 3, 2026
…-drift sub-class)

Second sub-class of B-0170's 7-class taxonomy. Catches claims that a
file or directory exists when it doesn't on disk.

**What it catches**:

- Backtick-quoted paths in markdown
- Markdown link targets (relative paths only)
- Cases where the path doesn't resolve to anything on disk

**Resolution discipline**: tries 3 candidate roots in priority order:

1. File's own directory (intra-dir cross-references)
2. Parent directory (bare-filename refs for files in subdirs)
3. Repository root (repo-relative paths)

Stops on first hit; only emits finding if NO root resolves.

**Future-state context detection**: claims marked future-state are
exempt (proposed/planned/will-be/would-be/tbd/deferred/i'm-guessing/
concretely-something-like/will-probably/etc.).

**Skipped automatically**: globs (*, ?, [...]), URLs, anchors,
absolute paths, placeholders, fenced code blocks.

**Tests**: 17 new tests across looksLikePath / isFutureStateContext /
findPathClaims (33 total in tools/substrate-claim-checker/, all pass).

**Multiple findings this session would have been caught**:

- PR #1280 B-0173 ground-truth recovery claimed `tools/git/hooks/`
  exists; reviewer flagged that it doesn't (B-0173 row deliverable)
- PR #1289 + #1290 review threads flagged similar existence-drift
  patterns

**Sanity check on real substrate**:
- alignment-frontier memo: clean (0 findings)
- B-0173 guess file (post-#1285 fix): 2 false-positives in
  calibration-delta tables (acceptable v0.5 limitation; documented)
- B-0166 guess file: 1 finding (proposed `tools/chat-events/replay.ts`)

**v0.5 known limitations** (documented in README):

- Calibration-delta tables citing path-forms as discussion topics
  may false-positive (mitigated but imperfect)
- Section-level future-state markers don't propagate to claims
  further down; use inline markers per claim or paragraph

**Out of scope (v0.6+)**:

- Tool-existence (e.g., "running `bun X` returns Y") — separate
  empirical-output drift sub-class
- URL existence (web fetches; not file-system)
- Convention drift, path-form drift, self-recursive drift —
  separate sub-classes per the 7-class taxonomy

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 3, 2026
…-drift sub-class)

Second sub-class of B-0170's 7-class taxonomy. Catches claims that a
file or directory exists when it doesn't on disk.

**What it catches**:

- Backtick-quoted paths in markdown
- Markdown link targets (relative paths only)
- Cases where the path doesn't resolve to anything on disk

**Resolution discipline**: tries 3 candidate roots in priority order:

1. File's own directory (intra-dir cross-references)
2. Parent directory (bare-filename refs for files in subdirs)
3. Repository root (repo-relative paths)

Stops on first hit; only emits finding if NO root resolves.

**Future-state context detection**: claims marked future-state are
exempt (proposed/planned/will-be/would-be/tbd/deferred/i'm-guessing/
concretely-something-like/will-probably/etc.).

**Skipped automatically**: globs (*, ?, [...]), URLs, anchors,
absolute paths, placeholders, fenced code blocks.

**Tests**: 17 new tests across looksLikePath / isFutureStateContext /
findPathClaims (33 total in tools/substrate-claim-checker/, all pass).

**Multiple findings this session would have been caught**:

- PR #1280 B-0173 ground-truth recovery claimed `tools/git/hooks/`
  exists; reviewer flagged that it doesn't (B-0173 row deliverable)
- PR #1289 + #1290 review threads flagged similar existence-drift
  patterns

**Sanity check on real substrate**:
- alignment-frontier memo: clean (0 findings)
- B-0173 guess file (post-#1285 fix): 2 false-positives in
  calibration-delta tables (acceptable v0.5 limitation; documented)
- B-0166 guess file: 1 finding (proposed `tools/chat-events/replay.ts`)

**v0.5 known limitations** (documented in README):

- Calibration-delta tables citing path-forms as discussion topics
  may false-positive (mitigated but imperfect)
- Section-level future-state markers don't propagate to claims
  further down; use inline markers per claim or paragraph

**Out of scope (v0.6+)**:

- Tool-existence (e.g., "running `bun X` returns Y") — separate
  empirical-output drift sub-class
- URL existence (web fetches; not file-system)
- Convention drift, path-form drift, self-recursive drift —
  separate sub-classes per the 7-class taxonomy

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 3, 2026
…-drift sub-class)

Second sub-class of B-0170's 7-class taxonomy. Catches claims that a
file or directory exists when it doesn't on disk.

**What it catches**:

- Backtick-quoted paths in markdown
- Markdown link targets (relative paths only)
- Cases where the path doesn't resolve to anything on disk

**Resolution discipline**: tries 3 candidate roots in priority order:

1. File's own directory (intra-dir cross-references)
2. Parent directory (bare-filename refs for files in subdirs)
3. Repository root (repo-relative paths)

Stops on first hit; only emits finding if NO root resolves.

**Future-state context detection**: claims marked future-state are
exempt (proposed/planned/will-be/would-be/tbd/deferred/i'm-guessing/
concretely-something-like/will-probably/etc.).

**Skipped automatically**: globs (*, ?, [...]), URLs, anchors,
absolute paths, placeholders, fenced code blocks.

**Tests**: 17 new tests across looksLikePath / isFutureStateContext /
findPathClaims (33 total in tools/substrate-claim-checker/, all pass).

**Multiple findings this session would have been caught**:

- PR #1280 B-0173 ground-truth recovery claimed `tools/git/hooks/`
  exists; reviewer flagged that it doesn't (B-0173 row deliverable)
- PR #1289 + #1290 review threads flagged similar existence-drift
  patterns

**Sanity check on real substrate**:
- alignment-frontier memo: clean (0 findings)
- B-0173 guess file (post-#1285 fix): 2 false-positives in
  calibration-delta tables (acceptable v0.5 limitation; documented)
- B-0166 guess file: 1 finding (proposed `tools/chat-events/replay.ts`)

**v0.5 known limitations** (documented in README):

- Calibration-delta tables citing path-forms as discussion topics
  may false-positive (mitigated but imperfect)
- Section-level future-state markers don't propagate to claims
  further down; use inline markers per claim or paragraph

**Out of scope (v0.6+)**:

- Tool-existence (e.g., "running `bun X` returns Y") — separate
  empirical-output drift sub-class
- URL existence (web fetches; not file-system)
- Convention drift, path-form drift, self-recursive drift —
  separate sub-classes per the 7-class taxonomy

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 3, 2026
…-drift sub-class)

Second sub-class of B-0170's 7-class taxonomy. Catches claims that a
file or directory exists when it doesn't on disk.

**What it catches**:

- Backtick-quoted paths in markdown
- Markdown link targets (relative paths only)
- Cases where the path doesn't resolve to anything on disk

**Resolution discipline**: tries 3 candidate roots in priority order:

1. File's own directory (intra-dir cross-references)
2. Parent directory (bare-filename refs for files in subdirs)
3. Repository root (repo-relative paths)

Stops on first hit; only emits finding if NO root resolves.

**Future-state context detection**: claims marked future-state are
exempt (proposed/planned/will-be/would-be/tbd/deferred/i'm-guessing/
concretely-something-like/will-probably/etc.).

**Skipped automatically**: globs (*, ?, [...]), URLs, anchors,
absolute paths, placeholders, fenced code blocks.

**Tests**: 17 new tests across looksLikePath / isFutureStateContext /
findPathClaims (33 total in tools/substrate-claim-checker/, all pass).

**Multiple findings this session would have been caught**:

- PR #1280 B-0173 ground-truth recovery claimed `tools/git/hooks/`
  exists; reviewer flagged that it doesn't (B-0173 row deliverable)
- PR #1289 + #1290 review threads flagged similar existence-drift
  patterns

**Sanity check on real substrate**:
- alignment-frontier memo: clean (0 findings)
- B-0173 guess file (post-#1285 fix): 2 false-positives in
  calibration-delta tables (acceptable v0.5 limitation; documented)
- B-0166 guess file: 1 finding (proposed `tools/chat-events/replay.ts`)

**v0.5 known limitations** (documented in README):

- Calibration-delta tables citing path-forms as discussion topics
  may false-positive (mitigated but imperfect)
- Section-level future-state markers don't propagate to claims
  further down; use inline markers per claim or paragraph

**Out of scope (v0.6+)**:

- Tool-existence (e.g., "running `bun X` returns Y") — separate
  empirical-output drift sub-class
- URL existence (web fetches; not file-system)
- Convention drift, path-form drift, self-recursive drift —
  separate sub-classes per the 7-class taxonomy

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 3, 2026
…-drift sub-class) (#1298)

Second sub-class of B-0170's 7-class taxonomy. Catches claims that a
file or directory exists when it doesn't on disk.

**What it catches**:

- Backtick-quoted paths in markdown
- Markdown link targets (relative paths only)
- Cases where the path doesn't resolve to anything on disk

**Resolution discipline**: tries 3 candidate roots in priority order:

1. File's own directory (intra-dir cross-references)
2. Parent directory (bare-filename refs for files in subdirs)
3. Repository root (repo-relative paths)

Stops on first hit; only emits finding if NO root resolves.

**Future-state context detection**: claims marked future-state are
exempt (proposed/planned/will-be/would-be/tbd/deferred/i'm-guessing/
concretely-something-like/will-probably/etc.).

**Skipped automatically**: globs (*, ?, [...]), URLs, anchors,
absolute paths, placeholders, fenced code blocks.

**Tests**: 17 new tests across looksLikePath / isFutureStateContext /
findPathClaims (33 total in tools/substrate-claim-checker/, all pass).

**Multiple findings this session would have been caught**:

- PR #1280 B-0173 ground-truth recovery claimed `tools/git/hooks/`
  exists; reviewer flagged that it doesn't (B-0173 row deliverable)
- PR #1289 + #1290 review threads flagged similar existence-drift
  patterns

**Sanity check on real substrate**:
- alignment-frontier memo: clean (0 findings)
- B-0173 guess file (post-#1285 fix): 2 false-positives in
  calibration-delta tables (acceptable v0.5 limitation; documented)
- B-0166 guess file: 1 finding (proposed `tools/chat-events/replay.ts`)

**v0.5 known limitations** (documented in README):

- Calibration-delta tables citing path-forms as discussion topics
  may false-positive (mitigated but imperfect)
- Section-level future-state markers don't propagate to claims
  further down; use inline markers per claim or paragraph

**Out of scope (v0.6+)**:

- Tool-existence (e.g., "running `bun X` returns Y") — separate
  empirical-output drift sub-class
- URL existence (web fetches; not file-system)
- Convention drift, path-form drift, self-recursive drift —
  separate sub-classes per the 7-class taxonomy

Co-authored-by: Claude Opus 4.7 <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