fix(B-0533): Slice A baseline cleanup — 10 dead xrefs → 0#3552
Merged
AceHack merged 1 commit intoMay 15, 2026
Merged
Conversation
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>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
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) |
3 tasks
5 tasks
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>
This was referenced May 16, 2026
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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)
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
Test plan
🤖 Generated with Claude Code