config: drop the stale src/game/actors dead-reference baseline entry - #2076
Merged
Merged
Conversation
check_dead_references has been reporting "1 baselined reference(s) now
resolve -- run --update to shrink the baseline (not a failure)" on main.
The entry is:
{ "file": "notes/src-domain-buckets.md", "ref": "src/game/actors" }
It went stale when #1985 landed src/game/actors/WingFeather/, which made
the path resolve. Produced by tools/check_dead_references.py --update,
which removed exactly this one entry and added none: 133 -> 132.
A baselined reference that resolves is not inert. It is a pre-armed mask:
if that directory is ever consolidated away -- and TU promotion is a mass
path-deletion event -- the break is absorbed silently instead of failing.
Negative control, measured rather than argued. Removing WingFeather from
both the index and disk, then running the checker under each baseline:
entry present FAIL: 3 prose reference(s) ... src/game/actors MASKED
entry removed FAIL: 4 prose reference(s) ... notes/src-domain-buckets.md
names `src/game/actors`,
which is not in the tree
The two runs differ in exactly that one row, so the removal is what
restores the signal.
The other 3 rows are pre-existing and out of scope here: they are
per-symbol paths under src/game/actors/WingFeather/ in
notes/actor-leaf-provenance.md, which were never baselined and already
fire. They are part of a tree-wide backlog measured at 622 per-symbol
prose path mentions across 90 files, filed separately -- not bundled into
a single-entry config change.
Config only. No src/, no tools/, no generated state.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WdCK1xgrJdiJzPCh3bAJfQ
✅ PR validation — PassedCommitted merge introduces no reconstruction or attribution regression. Full merge validation
Byte-verified means the range carries The private worker commits a test merge, builds the stock ROM profile, compares every executable module, measures matched and source-built code, checks contributor lineage, and verifies affected relocations. The mod profile is opt-in and is not part of this merge gate. |
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.
A baselined reference that resolves is a pre-armed mask
check_dead_referenceshas been printing this on every run againstmain:The entry is:
{ "file": "notes/src-domain-buckets.md", "ref": "src/game/actors" }It went stale when #1985 landed
src/game/actors/WingFeather/, which made the path resolve. Produced bytools/check_dead_references.py --update, which removed exactly this one entry and added none — 133 → 132."Not a failure" is right today and wrong tomorrow. TU promotion is a mass path-deletion event — #2071 removed 23 per-symbol files in one commit — so if that directory is ever consolidated away, this entry absorbs the break silently instead of failing. That is the same class of hole as [
two-green-prs-can-make-a-red-main], one step earlier in the chain.Negative control
Measured, not argued. Removing
WingFeatherfrom both the index and disk (my first attempt moved it only on disk and nothing changed — the checker resolves viagit ls-files, so an on-disk move is invisible to it), then running the checker under each baseline:notes/src-domain-buckets.md→src/game/actorsFAIL: 3 prose reference(s) name a path that does not existFAIL: 4 prose reference(s) name a path that does not existnames `src/game/actors`, which is not in the treediffof the two runs is exactly that one row. The removal is what restores the signal, and nothing else moves.What I deliberately did not bundle
The other 3 rows in that control are pre-existing and unbaselined — they already fire. They are per-symbol paths in
notes/actor-leaf-provenance.md:Doomed twice over: by promotion, and by the rename promotion requires —
WingFeatheris a coined name the cartridge contradicts.I measured the tree-wide scale before deciding whether to fix them here: 622 per-symbol path mentions across 90 prose files (
notes/smartball-provenance.md67,notes/bgobject-provenance.md67,notes/actor-leaf-provenance.md44, …). That is a real backlog and it is not ased— each mention needs the reason written into the prose, or the next reader restores the path as a helpful clarification. It is filed separately rather than smuggled into a single-entry config change.Gates
Base is
eace12bd8= currentorigin/main, andgit merge-base --is-ancestor origin/main HEADsucceeds, so the merge tree is the branch tree — these are merge-tree measurements, not proxies:Both consumers of this file —
.github/workflows/dead-references.ymland.github/workflows/tool-tests.yml— are covered by those two runs.Config only. One file, four deleted lines, no
src/, notools/, no generated state.