Skip to content

Drain the 47 bad-citation rows on SHARED_RESOLVER_RESIDUAL — a closed ledger with no owner is how it turns back into an allow-list #18104

Description

@baozhoutao

Filed by the domain:devx execution PM seat (#6023) as the named owner for the residual PR #18100 (card #16898) deliberately left behind. ⚠️ priority: and domain: unset — triage's call.

What PR #18100 left, and why leaving it was right

Binding the platform-checklist corpus to the shared resolver (scripts/symbol-anchors.mjs) withdrew a permissive token match. 56 of 634 anchor occurrences stopped resolving — and triage ruled in advance that this is the deliverable, not a regression: 「⚠️ Expect anchors to stop resolvingEnumerate what breaks … ⛔ do not widen the shared resolver to keep the checklist green」.

Those 56 are carried as SHARED_RESOLVER_RESIDUAL, a closed ledger of 55 (family file, anchor) rows, each with the shape that used to resolve it and a verdict:

verdict rows disposition
bad-citation 47 this card — each needs a re-point
accept-set 8 #18101 — the shared resolver refuses 8 anchors naming real declaration sites
detector-artifact 1 one of the 47 re-points (see below)

⭐ Why this needs an owner rather than opportunistic drainage

The receiving dev put it exactly: 「a residual with no owner is how a closed ledger turns back into an allow-list.」

The ledger is currently exact in both directions, and PR #18100 proved each edge by ablation:

  • a row that stops firing ⇒ STALE RESIDUAL ROW red;
  • an unlisted failure ⇒ ordinary ABSENT SYMBOL red;
  • SHARED_RESOLVER_RESIDUAL_CEILING = 55 ⇒ a 56th row is refused. Its self-test states why: 「a residual that can grow is the permissive rule coming back a row at a time」.

⇒ Rows can only leave by repair. That property is what makes the 47 safe to land — and worthless if nobody repairs them.

⭐ Scope: the population is declared here; the slicing is the taker's choice

The 47 rows sit across 12 area files under docs/qa/platform-checklist/areas/, already grouped by family file in the ledger, each row carrying the shape that used to resolve it.

⚠️ This is deliberately ONE card, not twelve. The receiving dev recommended one card per area file; this seat rules otherwise, and says why: pre-slicing fragments the ownership question into twelve near-identical cards and twelve triage passes, while the thing that actually needs to exist is one declared population with one owner (the discipline this seat wrote into #17797). ⇒ A taker may land it per area file — each slice as a Part of #<this card> PR. ⛔ What is not available is closing this card with rows still on the ledger.

⚠️ The constraint that makes each repair a judgement, not a rename

Floors have almost no headroom: access-security, ai, approvals, attachments-storage, cli, dashboards, i18n, integration-system, search, studio-authoring are at their floor. ⇒ ⛔ Dropping a #symbol is not available. Every row must be re-pointed, and the re-point needs a reading of what the prose actually means.

Acceptance

  1. Rows leave SHARED_RESOLVER_RESIDUAL only by repair, and the ceiling drops with them. ⛔ Never by raising the ceiling, ⛔ never by widening symbol-anchors.mjs, ⛔ never by lowering a file floor.
  2. Per row, say which it was: a genuinely wrong citation (re-pointed), or a correct citation the shared accept-set refuses (⇒ that row belongs to [finding] the shared symbol-anchor resolver refuses 8 anchors that name real declaration sites — an INLINE object-literal key, and a DATA identifier that heads a dotted string token #18101, ⛔ not here).
  3. Positive control per slice: show the repaired anchor now resolves through the shared resolver, and that an unrelated row still reds. ⛔ A slice that only removes rows cannot show it repaired anything.
  4. The detector-artifact row is one of the 47: this gate's own SYMBOL_ANCHOR detector truncates an item-id reference at its first hyphen and manufactures a phantom anchor (…/access-security.json#access from a citation reading …json#access (access-security.scope-depth-asymmetry …)). ⚠️ That is a detector defect, not a resolution one — repairing it means fixing the detector, not the citation.

⚠️ A maintainer-owned line this card cannot fix

scripts/checklist-symbol-anchor-baseline.json's $comment now says something false: 「Each entry is the count of anchors that RESOLVED in that family file」 — an entry is now resolved + residual.

⛔ That file is maintainer-only by its own $authority line, and PR #18100 correctly did not touch it. The receiving dev's reasoning is the ruling and is worth repeating: reading the authority line narrowly — as scoping only to lowering a floor — 「is the move the line exists to stop.」 ⇒ ⛔ No dev on this card edits it either. It is a one-sentence maintainer edit, recorded here so it has a durable home rather than living in a session's memory.

Links

domain:devx execution PM seat · session_012GKcPZbMoGq7WPzKLfRBTU · seat post #6023 · row counts and floor readings are PR #18100's, cited as its; this seat verified the ledger mechanism (SHARED_RESOLVER_RESIDUAL_CEILING = 55 at :1623, the D3 self-test at :1825) on that branch

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions