Skip to content

fix(B-0533): Slice A baseline cleanup — 10 dead xrefs → 0#3552

Merged
AceHack merged 1 commit into
mainfrom
fix/b0533-baseline-cleanup-10-dead-xrefs-otto-cli-2026-05-15
May 15, 2026
Merged

fix(B-0533): Slice A baseline cleanup — 10 dead xrefs → 0#3552
AceHack merged 1 commit into
mainfrom
fix/b0533-baseline-cleanup-10-dead-xrefs-otto-cli-2026-05-15

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 15, 2026

Summary

Completes B-0533 Slice A baseline cleanup. Following PR #3548's scanner empirical baseline of 10 dead xrefs, updates all live-nav references to migrated §33 archive files.

Mapping

`docs/research/` → `memory/persona//conversations/`

Files updated (6 files, 10 line-edits)

Persona File Line(s)
Riven `docs/backlog/P1/B-0159-...md` 135 (PR #3529 fixed line 17 only)
DeepSeek `docs/backlog/P1/B-0463-...md` 95, 97
DeepSeek `docs/backlog/P3/B-0202-...md` 62, 444
DeepSeek `docs/backlog/P3/B-0203-...md` 36, 430 (markdown link + relative path)
DeepSeek `memory/feedback_carved_sentence_*.md` 580, 1225
DeepSeek `memory/feedback_dbsp_zsets_*.md` 55

Verification

```
$ bun tools/hygiene/audit-section-33-migration-xrefs.ts
Dead xrefs found: 0
No dead xrefs found.
```

After this PR merges, the scanner reports 0 dead xrefs across all live-nav surfaces. Slice B.3 (wire into gate.yml as warn-only) is now safe to land without spamming warnings; Slice B.4 (promote to error) becomes a one-step flip.

Composes with

  • B-0533 (parent row)
  • PR #3544 (Slice A POC — established the pattern)
  • PR #3548 (Slice B.1 scanner — surfaced 10/10)
  • PR #3529 (narrow Codex P2 fix that missed B-0159:135)

Test plan

  • All 10 line-edits verified via diff stat
  • Scanner reports 0 dead xrefs
  • Relative-path math verified for `docs/backlog/P3/` (`../../../memory/persona/...`)
  • CI green
  • Auto-merge arms

🤖 Generated with Claude Code

Completes B-0533 Slice A baseline cleanup. Following the scanner
(PR #3548) empirical baseline of 10 dead xrefs, updates all live-nav
references to migrated §33 archive files.

Mapping: docs/research/<basename> → memory/persona/<persona>/conversations/<basename>

Files updated (6 files, 10 line-edits):

Riven (1):
- docs/backlog/P1/B-0159-refresh-github-worldview-cross-cutting-claudeai-2026-05-01.md:135
  (PR #3529 fixed line 17; this completes the second reference at line 135)

DeepSeek (9):
- docs/backlog/P1/B-0463-wallet-immune-system-vaccine-spread-poucc-spec.md:95, :97
  (hkt-clifford-e8 + immune-system files)
- docs/backlog/P3/B-0202-...md:62, :444
  (claudeai-tinygrad-uop file; ×2 occurrences)
- docs/backlog/P3/B-0203-...md:36, :430
  (claudeai-tinygrad-uop file; ×2 markdown-link occurrences;
  relative path also updated to ../../../memory/persona/deepseek/...)
- memory/feedback_carved_sentence_*.md:580, :1225
  (deepseek-csap-architecture-review-verbatim file; ×2 occurrences)
- memory/feedback_dbsp_zsets_*.md:55
  (claudeai-tinygrad-uop file; 1 occurrence)

Verification: `bun tools/hygiene/audit-section-33-migration-xrefs.ts`
returns "Dead xrefs found: 0" after these edits.

Composes with:
- B-0533 (parent row)
- B-0533 Slice A POC (PR #3544 — established the pattern)
- B-0533 Slice B.1 (PR #3548 — the scanner that surfaced 10/10)
- PR #3529 (narrow Codex P2 fix that missed B-0159:135)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 15, 2026 18:44
@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 15, 2026 18:44
@AceHack AceHack merged commit aa63d37 into main May 15, 2026
27 of 29 checks passed
@AceHack AceHack deleted the fix/b0533-baseline-cleanup-10-dead-xrefs-otto-cli-2026-05-15 branch May 15, 2026 18:46
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

This PR completes B-0533 Slice A baseline cleanup by updating live-navigation references from migrated docs/research/ archive paths to their canonical memory/persona/<persona>/conversations/ locations.

Changes:

  • Repoints DeepSeek and Riven migrated archive references in backlog rows.
  • Repoints migrated archive references in top-level memory feedback files.
  • Preserves existing citation context while removing the dead docs/research/ xrefs.

Reviewed changes

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

Show a summary per file
File Description
docs/backlog/P1/B-0159-refresh-github-worldview-cross-cutting-claudeai-2026-05-01.md Updates the Riven conversation reference to the migrated memory archive.
docs/backlog/P1/B-0463-wallet-immune-system-vaccine-spread-poucc-spec.md Updates two DeepSeek research substrate references to migrated memory archives.
docs/backlog/P3/B-0202-tinygrad-uop-ir-kernel-layer-model-zeta-emulator-dispatch-aaron-2026-05-05.md Updates DeepSeek preservation references to the migrated memory archive.
docs/backlog/P3/B-0203-deepseek-v4-csa-hca-zset-algebra-composability-aaron-2026-05-05.md Updates DeepSeek preservation markdown links to the migrated memory archive.
memory/feedback_carved_sentence_fixed_point_stability_soul_executor_bayesian_inference_aaron_2026_04_30.md Updates DeepSeek CSAP review references to the migrated memory archive.
memory/feedback_dbsp_zsets_multi_algebra_aperiodic_tile_stops_infinite_recursion_into_monad_or_monk_not_infinity_stones_aaron_2026_05_05.md Updates a DeepSeek conversation reference to the migrated memory archive.

- `memory/feedback_ts_dependencies_as_interface_di_pattern_sqlsharp_anchor_aaron_2026_05_01.md`
— the architectural pattern for the new script's structure.
- `docs/research/2026-05-01-claudeai-backlog-driven-dual-pm-loop-with-refresh-discipline.md`
- `memory/persona/riven/conversations/2026-05-01-claudeai-backlog-driven-dual-pm-loop-with-refresh-discipline.md`
Comment on lines +95 to +97
- `memory/persona/deepseek/conversations/2026-05-11-deepseek-hkt-clifford-e8-klein-bottle-beacon-smooth.md`
(15-layer synthesis)
- `docs/research/2026-05-11-deepseek-immune-system-ilife-redteam-qubic-bankerbot-simulations.md`
- `memory/persona/deepseek/conversations/2026-05-11-deepseek-immune-system-ilife-redteam-qubic-bankerbot-simulations.md`

Full verbatim research-doc preservation will land at
`docs/research/2026-05-05-claudeai-tinygrad-uop-turboquant-deepseek-v4-symbolica-categorical-aaron-forwarded-preservation.md`
`memory/persona/deepseek/conversations/2026-05-05-claudeai-tinygrad-uop-turboquant-deepseek-v4-symbolica-categorical-aaron-forwarded-preservation.md`

Full verbatim research-doc preservation:
[`docs/research/2026-05-05-claudeai-tinygrad-uop-turboquant-deepseek-v4-symbolica-categorical-aaron-forwarded-preservation.md`](../../research/2026-05-05-claudeai-tinygrad-uop-turboquant-deepseek-v4-symbolica-categorical-aaron-forwarded-preservation.md)
[`memory/persona/deepseek/conversations/2026-05-05-claudeai-tinygrad-uop-turboquant-deepseek-v4-symbolica-categorical-aaron-forwarded-preservation.md`](../../../memory/persona/deepseek/conversations/2026-05-05-claudeai-tinygrad-uop-turboquant-deepseek-v4-symbolica-categorical-aaron-forwarded-preservation.md)
AceHack added a commit that referenced this pull request May 15, 2026
…d xrefs → 0) (#3553)

- PR #3550 (1833Z) merged
- PR #3552 — Slice A baseline cleanup: 6 files, 10 line-edits
- Scanner re-run after edits: 0 dead xrefs
- 8-tick parallel-substantive pattern continues

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 15, 2026
* feat(b-0533): Slice B.3 + B.4 — --enforce flag + gate.yml wiring

Completes B-0533 mechanization. Scanner now supports --enforce flag
(exit 1 if dead xrefs found, exit 0 otherwise). New gate.yml job
lint-section-33-migration-xrefs runs the scanner in --enforce mode
on every PR.

With baseline = 0 (PR #3552 cleanup landed) the new gate fires only
when a future migration leaves dead xrefs in live-nav surfaces —
the catch-once-then-lint pattern completing for the §33 migration
class.

Sibling of lint-archive-header-section33 (B-0036): same shape,
different failure-class. Both catch §33-discipline violations at PR
time before merge.

Changes:

- tools/hygiene/audit-section-33-migration-xrefs.ts:
  - Add --enforce CLI flag
  - Add exit code 1 when dead xrefs found and --enforce set
  - Update header comment with new exit-code semantics
- .github/workflows/gate.yml:
  - Add lint-section-33-migration-xrefs job after lint-archive-header-section33
  - Same install.sh + bun pattern as sibling job
  - Header comment cites empirical baseline (10) + full lineage

Discipline arc complete:

| Tick | Slice | PR |
|------|-------|----|
| 1749Z | Catch | #3529 |
| 1807Z | Row | #3540 |
| 1820Z | Slice A POC | #3544 |
| 1833Z | Slice B.1 scanner | #3548 |
| 1844Z | Slice A baseline | #3552 |
| 1848Z | Slice B.3 + B.4 (this) | (new) |

Remaining: Slice B.2 (test file with DST fixtures) — optional, scanner
logic is simple enough that the end-to-end gate.yml job acts as integration test.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(B-0533): dynamically detect root .md files in audit-section-33 scanner

ROOT_MD was hard-coded to 4 files; readdirSync now discovers all repo-root
*.md files so CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md, SUPPORT.md
are protected by the enforced gate. Resolves Copilot P1 thread on PR #3555.

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

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 16, 2026
…ed (PR #3692) (#3693)

Highest-value-per-effort substrate of session — mechanizes the bug class
that shipped twice this session (5-`..` paths resolving to docs/ instead of
repo root). 255-line audit walks 833 shards, found 17 pre-existing
findings as detect-only baseline. Followup: cleanup PR + enforce gate
following same 4-step pattern as §33 migration xrefs (PR #3513#3529#3548#3552 → enforce).

GraphQL still 0/5000 (resets 02:55:28Z); REST sufficient for PR creation.
Auto-merge arming on #3690 + #3692 deferred to post-reset tick.

Co-authored-by: Claude <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 16, 2026
…cleanup pending) (#3692)

* feat(hygiene): tick-shard relative-path audit (detect-only; baseline cleanup pending)

Bug class: tick shards live 5 directories below docs/, so the count-the-..
pattern is error-prone. Empirical evidence this session: PR #3676 + PR #3679
both shipped with 5-`..` paths that resolved to docs/ instead of repo root;
Copilot caught both via review threads, but the broken links landed on main
briefly (PR #3680 fixed post-merge).

This audit walks docs/hygiene-history/ticks/**/*.md, extracts every relative
markdown link target (skipping URLs/anchors/code-blocks/images), resolves
from the shard's directory, and reports missing-or-escaping targets.

Empirical baseline (run on origin/main at 2026-05-16T02:48Z):
  - 833 tick shards scanned
  - 17 broken relative-path links across multiple historical shards
  - Real bug classes detected: wrong-depth `..` (B-0442 link in 1436Z),
    malformed link syntax (`docs/api(v2`), missing-file refs

Detect-only initially. CI enforce wires in after baseline cleanup (same
pattern as §33 migration xrefs: PR #3513#3529#3548#3552 → enforce).

`bun --bun tsc --noEmit -p tsconfig.json` exit 0.

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

* fix(audit): skip placeholder targets (..., parens, identifier-only)

First baseline showed 17 findings; ~7 were false positives where shard prose
contained inline `[label](path-shape)` constructs as pattern illustrations:
- `path` / `otto-kenji-...` / `.claude/...` / `docs/...` — placeholder names
- `docs/api(v2` — fragmentary malformed syntax
- `docs/research/...amara-...md` — ellipsis-marked example

Add `isPlaceholderTarget` filter:
- contains `...` → placeholder
- contains `(` or `)` → malformed/fragment
- no `/` AND no `.` → pure identifier (not a path)

Re-run: 17 → 10 findings. The 10 remaining are real broken links
(wrong-depth `..` in `1436Z.md`, `0329Z.md`, `0852Z.md`; one borderline
`docs/foo.md` example). Worth a separate baseline-cleanup PR.

`bun --bun tsc --noEmit -p tsconfig.json` exit 0.

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

* fix(audit): 4 Copilot P1/P2 — sonarjs disable, main export, URI scheme, --files validation

PR #3692 review threads:

P1 (lint failure risk):
1. spawnSync("git", ...) at repoRoot() needs the standard repo-convention
   `// eslint-disable-next-line sonarjs/no-os-command-from-path` comment.
   Every sibling tool (check-tick-history-shard-schema.ts:23, etc.) uses it.
2. Top-level `process.exit(main(...))` blocks safe module-import for tests
   or composition. Switch to `export function main` + guarded
   `if (import.meta.main) { process.exit(main(...)); }` per the sibling
   audit-section-33-migration-xrefs.ts convention.

P2 (precision / brittleness):
3. isRelativeTarget only exempts http(s) + mailto. Replace with a generic
   `<scheme>:` regex (`/^[A-Za-z][A-Za-z0-9+.-]*:/`) so ftp:, file:, tel:,
   data:, etc. are properly classified as absolute.
4. --files inputs aren't validated; readFileSync throws on missing path.
   Add an explicit existence check at the args boundary; emit
   `input not found: <path>` and return exit 64.

Local verify:
- Baseline still 10 findings (no regression)
- `--files /tmp/does-not-exist` → exit 64 with structured message
- `bun --bun tsc --noEmit -p tsconfig.json` exit 0

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

* fix(audit): 2 Copilot fixups — directory inputs + Windows path separator

PR #3692 second-pass review threads:

P1 (line 244): --files validation only checked existsSync; a directory or
unreadable file passed the preflight, then `readFileSync` threw EISDIR/EACCES
inside extractLinks, bypassing the structured exit-64 contract. Tighten to
also require `statSync(abs).isFile()` and wrap stat in try/catch for
permission failures. Empirical verify:
- --files docs/hygiene-history/ → "input not a regular file" + exit 64
- --files /tmp/does-not-exist → "input not found" + exit 64

P2 (line 210): Repo-boundary check hardcoded "/" in `ROOT + "/"`. On Windows
`resolve()` returns paths with `\\` separators, so valid in-repo targets like
`C:\\repo\\docs\\...` would fail the `C:\\repo/` prefix test and be flagged
as `escapes-repo` — false positive that would break --enforce mode on
Windows CI. Replace with platform-correct `PATH_SEP` imported as
`sep as PATH_SEP` from node:path.

Local verify:
- Baseline still 10 findings (no regression)
- `bun --bun tsc --noEmit -p tsconfig.json` exit 0

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

---------

Co-authored-by: Claude <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 16, 2026
…eal cross-platform fixes) (#3698)

PR #3695 (0252Z + prose fixes) merged 03:02:45Z. Second-pass Copilot review
on PR #3692 surfaced 2 real findings:
- P1: --files validation rejected only missing paths; directories pass
  existsSync but fail later in readFileSync. Add statSync.isFile() check.
- P2: ROOT + "/" prefix breaks on Windows (resolve returns \\-separated
  paths). Use platform-correct PATH_SEP from node:path.

Fixup commit 4e80655 pushed; both threads resolved. 6-tick audit lifecycle
matches §33 pattern (PR #3513#3552 → enforce) compressed.

Co-authored-by: Claude <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 16, 2026
…ection

Two real Copilot findings on the §33 worked-example table:

P2 (line 37): direct name attribution outside allowed roster surfaces.
"Codex P2 catch on Riven section-33 archive migration" used Zeta persona
names inline. Replace with role-ref: "Reviewer P2 catch on the section-33
archive-migration PR". (Copilot stays as-is — it's an external automated-
reviewer role-ref, accepted style per existing gate.yml comments.)

Line 44 (factual error): I'd attributed BOTH baseline cleanup AND CI
enforce to PR #3552. Verified via git log + gh api:
- PR #3552 (Slice A): "baseline cleanup — 10 dead xrefs → 0"
- PR #3555 (Slice B.3 + B.4): "--enforce flag + gate.yml wiring"

Split the row: PR #3552 = "Baseline (cleanup-to-zero)"; PR #3555 = "CI enforce"
with sub-slice attribution preserved. Calendar duration range extended to
PR #3513 → PR #3555.

Co-Authored-By: Claude <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 16, 2026
… gate (PR #3708) (#3709)

* shard(tick): 2026-05-16T03:28Z — audit-script lifecycle CLOSED via CI gate (PR #3708)

3 PRs landed during tick 13 cycle (#3699 baseline mechanism, #3703 0316Z
shard, #3690 finally after MD038 fix). The audit-script lifecycle is now
structurally complete: discovery → narrow-fix → scanner → quality × 3 →
baseline → CI enforce gate. PR #3708 ships the gate.

Same §33-audit lifecycle pattern (PR #3513#3552 → enforce), compressed
across 14 ticks of one session.

Local gate-invocation verify on main + new files: 842 shards, 10
grandfathered, 0 NEW, exit 0. The earlier transient 0249Z.md:4 → 0240Z.md
finding self-resolved when PR #3690 merged.

TodoWrite adopted this tick for the 4-step gate-wire (wire → verify → PR →
shard). Aligned naturally with per-tick discipline.

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

* shard(tick): 0328Z — fix parent-tick link + status-term drift (PR #3709 review)

- Merged origin/main: adds 0322Z.md to tree so parent-tick link
  resolves at review time (was P0 copilot + P2 codex finding;
  link target existed on main but not on the PR branch)
- "landed" → "opened (armed for auto-merge)" for #3708, since
  the lifecycle table marks it as armed not merged (copilot)
- Table-syntax finding (||) is a false positive — table uses
  single | (line 18: `| ~~#3690~~ ...`)

---------

Co-authored-by: Claude <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 16, 2026
…ate (#3710)

* docs(hygiene): land tools/hygiene/AUDIT-LIFECYCLE.md — reusable template

Promotes the audit-lifecycle pattern (discovery → narrow-fix → scanner →
quality iterations → baseline → CI enforce gate → maintenance) to a
canonical doc co-located with the hygiene-audit tooling.

Two worked examples documented:
1. §33 migration xrefs audit (PR #3513#3552 → enforce; ~4 weeks)
2. Tick-shard relative-path audit (PR #3676#3708; ~80 min single
   autonomous-loop session)

Captures the step-ordering rationale (why each step depends on the
previous), the mutable-vs-immutable surface distinction for baseline
strategy, and pre-emptive scanner-author findings worth implementing
in step 3 to shorten the quality iteration loop:
- sonarjs disable comment
- main export + import.meta.main guard
- generic URI scheme regex
- --files validation (existsSync + statSync.isFile)
- platform-correct PATH_SEP
- JSON output schema discipline
- baseline schema type guard

Local markdownlint clean.

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

* fix(pr-3710): 2 Copilot threads — role-refs + §33 PR-attribution correction

Two real Copilot findings on the §33 worked-example table:

P2 (line 37): direct name attribution outside allowed roster surfaces.
"Codex P2 catch on Riven section-33 archive migration" used Zeta persona
names inline. Replace with role-ref: "Reviewer P2 catch on the section-33
archive-migration PR". (Copilot stays as-is — it's an external automated-
reviewer role-ref, accepted style per existing gate.yml comments.)

Line 44 (factual error): I'd attributed BOTH baseline cleanup AND CI
enforce to PR #3552. Verified via git log + gh api:
- PR #3552 (Slice A): "baseline cleanup — 10 dead xrefs → 0"
- PR #3555 (Slice B.3 + B.4): "--enforce flag + gate.yml wiring"

Split the row: PR #3552 = "Baseline (cleanup-to-zero)"; PR #3555 = "CI enforce"
with sub-slice attribution preserved. Calendar duration range extended to
PR #3513 → PR #3555.

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

---------

Co-authored-by: Claude <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 16, 2026
…stale/FP) (#3715)

PR #3707 + #3708 merged. 6 new Copilot threads investigated:
- PR #3710 (AUDIT-LIFECYCLE.md): 2 real — name attribution (Codex/Riven →
  role-refs) + §33 PR-attribution factual error (PR #3552 baseline cleanup
  + PR #3555 CI enforce, not both #3552). Fixup cd7ba81.
- PR #3709 (0328Z shard): 4 threads — 2 stale (0322Z merged via #3707),
  1 minor prose-drift, 1 false-positive (4th time on table-pipes). All
  resolved no-op.

The Copilot table-pipe || hallucination is now a 4-time pattern (#3685,
#3690, #3699-era, #3709) — verify-first-resolve-no-op discipline.

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