You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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 resolving … Enumerate 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
Rows leave SHARED_RESOLVER_RESIDUALonly 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.
⭐ 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.
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.
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
Filed by the⚠️
domain:devxexecution PM seat (#6023) as the named owner for the residual PR #18100 (card #16898) deliberately left behind.priority:anddomain:unset — triage's call.What PR #18100 left, and why leaving it was right
Binding the platform-checklist corpus to the shared resolver (⚠️ Expect anchors to stop resolving … Enumerate what breaks … ⛔ do not widen the shared resolver to keep the checklist green」.
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: 「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:bad-citationaccept-setdetector-artifact⭐ 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:
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.Part of #<this card>PR. ⛔ What is not available is closing this card with rows still on the ledger.Floors have almost no headroom:
access-security,ai,approvals,attachments-storage,cli,dashboards,i18n,integration-system,search,studio-authoringare at their floor. ⇒ ⛔ Dropping a#symbolis not available. Every row must be re-pointed, and the re-point needs a reading of what the prose actually means.Acceptance
SHARED_RESOLVER_RESIDUALonly by repair, and the ceiling drops with them. ⛔ Never by raising the ceiling, ⛔ never by wideningsymbol-anchors.mjs, ⛔ never by lowering a file floor.detector-artifactrow is one of the 47: this gate's ownSYMBOL_ANCHORdetector truncates an item-id reference at its first hyphen and manufactures a phantom anchor (…/access-security.json#accessfrom a citation reading…json#access (access-security.scope-depth-asymmetry …)).scripts/checklist-symbol-anchor-baseline.json's$commentnow 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
$authorityline, 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
accept-setrows (the shared resolver refusing real declaration sites). ⛔ Different card, ⛔ different fix.domain:devxexecution 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 = 55at:1623, the D3 self-test at:1825) on that branch