Skip to content

[worklist] Migrate liveness line citations to symbol anchors — census: 117-173 of 298 live line-cited pairs fail key-proximity at line granularity today #13003

Description

@os-trump

Origin: the os-dev run for #12516 (symbol-anchor citation grammar). Filed unassigned as the scope report that card's dispatch prescribed — the mechanism + the two measured-rotted entries landed there; adoption across the rest of the ledger is this card.

What exists now

Since #12516's PR, a liveness citation may anchor the consuming symbol — packages/path/file.ts#symbolName — and check:liveness fails red when the symbol leaves the cited file. The anchor lives inside the existing evidence/producer string (no ledger schema change), so adoption is per-citation. Day-one anchored population: the two action.json entries (target, requiredPermissions).

Why adoption is a real worklist, not polish

The remaining ~298 live-entry local line citations still rot IN RANGE (the #12516 class: file exists, line in range, file names the key, consumer moved to another line). Measured on the tree at 2b4178aa5 during the route decision: requiring the property key within a window of the cited line misses 173/298 at W=10, 143/298 at W=20, 117/298 at W=40. That population mixes true in-range drift with matcher limitations (keys read via helpers, destructured locals, citations at declaration sites), and the two cannot be told apart without re-closing each call graph by hand — which is exactly why the window detector was NOT switched on as a gate (the 48-of-227 noise lesson in evidence.mts's header), and why this migration cannot be mechanical.

Shape of the work

Per entry, oldest verifiedAt first, hot files first (action-execution.ts is 1670 lines and drifted twice in one day):

  1. Re-close the call graph (read the code, not the diff).
  2. Re-cite anchored to the consuming symbol (file.ts#symbol, line optional), stamp verifiedAt.
  3. Where the consumer is gone or foreign, take the other two repairs the gate's guidance names (re-attribute with a realm marker, or re-classify under ADR-0049).

Batchable by ledger file; each batch is independently landable. The census script used for the numbers above is reproducible from the #12516 report (window key-proximity over live-entry local citations).

Blocked-by: the #12516 PR (the anchor grammar must be on main first).

Dedup (searched 2026-08-28)

#11210 / #11457 (closed) built the line bound and the key-mention check and each names the in-range residual without covering adoption; #7142 (closed) was the objectui-side citation-repair sweep; #12516 (open) delivers the mechanism and exactly two repoints, and its dispatch explicitly scoped the sweep OUT. No open card covers anchor adoption.

⚠️ Dedup channel deviation: repo-scoped REST reads return HTTP 403 from this dev seat (probed this session: labels and issues endpoints both 403 with the seat token), so the REST-first dedup rule could not be followed; this search used one targeted MCP semantic search (non-empty result set, channel self-validating) over the PM-supplied dedup readings carried by the #12516 dispatch.


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions