Repository navigation
docs(qa): re-point the cli / platform-core / records-forms bad-citation anchors (#18104 cut 3) - #19232
Merged
Conversation
…on anchors (#18104 cut 3) Fifteen `bad-citation` rows leave `SHARED_RESOLVER_RESIDUAL` by repair: each anchor is re-pointed at a symbol `scripts/symbol-anchors.mjs` genuinely resolves, the row is deleted in the same edit, and the grow-never ceiling comes down with it (33 -> 18). No floor is touched and the shared resolver is not widened — a repair moves an anchor from residual to resolved and leaves the floor population exactly where it was. The two `accept-set` rows on records-forms.json are deliberately untouched: that file mixes both verdicts, so the slice judges row by row by verdict. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017ef78bLdybu3AffehKkhfk
This was referenced Sep 20, 2026
os-try-charles
marked this pull request as ready for review
September 20, 2026 02:43
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.
Part of #18104 — cut 3 of the
SHARED_RESOLVER_RESIDUALdrain. Five area files and the eightaccept-setrows remain, so this PR closes nothing.What moved
Fifteen
bad-citationrows leave the ledger by repair: each anchor is re-pointed at a symbolscripts/symbol-anchors.mjsgenuinely resolves, its row is deleted fromSHARED_RESOLVER_RESIDUALin the same edit, andSHARED_RESOLVER_RESIDUAL_CEILINGcomes down with it (33 → 18, rows == ceiling). ⛔ No floor was touched, ⛔ the shared resolver was not widened, ⛔ no#symbolwas dropped to bare prose.areas/cli.jsoncommands/compile.ts#emitJson#Compileareas/cli.jsondoctor-deprecation-hint-commands.test.ts#Doctor#unregisteredHintsInareas/cli.jsonutils/format.exit-code.test.ts#emitJson#asExitCodeasExitCodeis the binding that carries the #4873 rejectionareas/cli.jsontemplates/blank/package.json#objectstack#scripts.devobjectstackis a VALUE in that manifest, never a keyareas/cli.jsonverify/src/verify.ts#VALIDATION_FAILED#ObjectVerifyResultareas/platform-core.jsonengine.ts#objectExtensions#registerAppregisterAppareas/platform-core.jsonauth-plugin.ts#Providers#nav_sso_providersareas/platform-core.jsonpackage-first-authoring.dogfood.test.ts#writable_package_required#WRITABLE_PACKAGE_REQUIREDareas/platform-core.jsonruntime/src/domains/notifications.ts#markRead#handleNotificationRequestareas/platform-core.jsonruntime/src/route-ledger.ts#commitId#ROUTE_LEDGERareas/records-forms.jsonobject.zod.ts#query#sharingModelqueryis not a key this schema declaresareas/records-forms.jsonseed/index.ts#Specimen#fieldZooareas/records-forms.jsonvalidate-action-locations.ts#action#ACTION_NO_PLACEMENTareas/records-forms.jsonobject.zod.ts#FEEDS_DISABLED#enable.feeds.describe()string and a commentareas/records-forms.jsonrest-route-ledger.ts#jobId#REST_ROUTE_LEDGERareas/records-forms.jsonstill carries its 2accept-setrows and that is correct, not half-done: they are #18101's letter, and reaching them would mean widening the shared core. That file mixes both verdicts, so this slice judged it row by row by verdict, never by file.Every re-pointed value carries the
re-pointed #18104trace cut 2 established, so the next cut can see what this one moved.Verification (at
76e8df900)node scripts/check-platform-checklist.mjs— exit 0:resolvedrose by exactly 15,residualfell by exactly 15, the 633 census total and the 310 cited sources are unchanged, and 17 file floors held on both sides — a repair moves an anchor fromresidualtoresolvedand leaves the floor population where it was.node scripts/check-platform-checklist.mjs --self-test— exit 0, 221 assertions (unchanged from cut 2).Positive control, both directions (ablation; committed first, restored byte-exact)
A — a repaired anchor is what resolves, not a row that merely left. Reverting one repaired citation to its old anchor while its ledger row stays deleted:
B — an unrelated row still reds. Deleting one still-listed residual row (
areas/studio-authoring.json, untouched by this slice):Both legs restored with
git checkout HEAD -- <path>, proven by an emptygit diff HEADplus agit hash-objectmatch against the HEAD blob, and the gate re-read 615/633 · exit 0 after each.Gate family
Derived with
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackfrom the merge base — 31 commands; 30 run locally green (check:pm-dispatch-gatesruns detached, its reference line records 430–450s while this container measures 535–712s). Repo-wide scans (pnpm lintand the 53 artifact-roster families the derivation scores silent for every card) are CI's.No changeset — measured, not assumed
Every changed path (
docs/qa/platform-checklist/areas/*.json,scripts/check-platform-checklist.mjs) is at the repo root, outside every one of the 70 published package directories, so no package'sfiles[]can pack it and nothing this PR touches is published.skip-changesetapplied.Acceptance notes
$commentonscripts/checklist-symbol-anchor-baseline.jsonstill reads «the count of anchors that RESOLVED in that family file» where an entry is now resolved + residual. That file is maintainer-only by its own$authorityline; Drain the 47bad-citationrows onSHARED_RESOLVER_RESIDUAL— a closed ledger with no owner is how it turns back into an allow-list #18104's body already records the one-sentence edit it is owed. ⛔ Not touched here.SHARED_RESOLVER_RESIDUALnow stands at 10bad-citation+ 8accept-set. The gate's own self-test assertsaccept-setcount is strictly less thanbad-citationcount, so the next cut that drains more than onebad-citationrow has to reckon with that assertion — noted for the next slice's dispatch, not a defect today.Generated by Claude Code