Commit 847e577
Part of #18104 — cut 3 of the `SHARED_RESOLVER_RESIDUAL` drain. Five
area files and the eight `accept-set` rows remain, so this PR closes
nothing.
## What moved
Fifteen `bad-citation` rows leave the ledger **by repair**: each anchor
is re-pointed at a symbol `scripts/symbol-anchors.mjs` genuinely
resolves, its row is deleted from `SHARED_RESOLVER_RESIDUAL` in the same
edit, and `SHARED_RESOLVER_RESIDUAL_CEILING` comes down with it (**33 →
18**, rows == ceiling). ⛔ No floor was touched, ⛔ the shared resolver
was not widened, ⛔ no `#symbol` was dropped to bare prose.
| file | old anchor | re-pointed to | why the old one did not resolve |
|---|---|---|---|
| `areas/cli.json` | `commands/compile.ts#emitJson` | `#Compile` |
imported and called, never declared here |
| `areas/cli.json` | `doctor-deprecation-hint-commands.test.ts#Doctor` |
`#unregisteredHintsIn` | imported and driven; the sweep itself is the
local function |
| `areas/cli.json` | `utils/format.exit-code.test.ts#emitJson` |
`#asExitCode` | imported and called; `asExitCode` is the binding that
carries the #4873 rejection |
| `areas/cli.json` | `templates/blank/package.json#objectstack` |
`#scripts.dev` | `objectstack` is a VALUE in that manifest, never a key
|
| `areas/cli.json` | `verify/src/verify.ts#VALIDATION_FAILED` |
`#ObjectVerifyResult` | survives only inside a regex literal; the
six-member union is on the interface |
| `areas/platform-core.json` | `engine.ts#objectExtensions` |
`#registerApp` | read off the manifest — a member access; the loop lives
in `registerApp` |
| `areas/platform-core.json` | `auth-plugin.ts#Providers` |
`#nav_sso_providers` | a substring of longer tokens and label strings |
| `areas/platform-core.json` |
`package-first-authoring.dogfood.test.ts#writable_package_required` |
`#WRITABLE_PACKAGE_REQUIRED` | lower-case spelling is only in a test
title and comments; the test pins the ADR-0112 code |
| `areas/platform-core.json` |
`runtime/src/domains/notifications.ts#markRead` |
`#handleNotificationRequest` | a provider method called off the inbox
capability — a member access |
| `areas/platform-core.json` | `runtime/src/route-ledger.ts#commitId` |
`#ROUTE_LEDGER` | a route PATH PARAMETER inside a route string |
| `areas/records-forms.json` | `object.zod.ts#query` | `#sharingModel` |
`query` is not a key this schema declares |
| `areas/records-forms.json` | `seed/index.ts#Specimen` | `#fieldZoo` |
only inside the record names, a substring of a longer string |
| `areas/records-forms.json` | `validate-action-locations.ts#action` |
`#ACTION_NO_PLACEMENT` | a local binding inside the walk, not a declared
surface |
| `areas/records-forms.json` | `object.zod.ts#FEEDS_DISABLED` |
`#enable.feeds` | named only inside a `.describe()` string and a comment
|
| `areas/records-forms.json` | `rest-route-ledger.ts#jobId` |
`#REST_ROUTE_LEDGER` | a route PATH PARAMETER inside a route string |
⚠️ `areas/records-forms.json` still carries its **2 `accept-set` rows**
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 #18104` trace cut 2
established, so the next cut can see what this one moved.
## Verification (at `76e8df900`)
`node scripts/check-platform-checklist.mjs` — exit 0:
```
before symbol anchors: 600/633 resolved … 33 on the named #16898 residual, 17 file floors held
after symbol anchors: 615/633 resolved … 18 on the named #16898 residual, 17 file floors held
```
`resolved` rose by exactly 15, `residual` fell 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 from `residual`
to `resolved` and 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:
```
✗ areas/cli.json: ABSENT SYMBOL — `packages/cli/src/commands/compile.ts#emitJson` … exit 1
```
**B — an unrelated row still reds.** Deleting one still-listed residual
row (`areas/studio-authoring.json`, untouched by this slice):
```
✗ areas/studio-authoring.json: ABSENT SYMBOL — `packages/rest/src/rest-route-ledger.ts#REST` … exit 1
```
Both legs restored with `git checkout HEAD -- <path>`, proven by an
empty `git diff HEAD` plus a `git hash-object` match 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/objectstack` from the merge base — 31 commands; 30 run
locally green (`check:pm-dispatch-gates` runs detached, its reference
line records 430–450s while this container measures 535–712s). Repo-wide
scans (`pnpm lint` and 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's
`files[]` can pack it and nothing this PR touches is published.
`skip-changeset` applied.
## Acceptance notes
- The `$comment` on `scripts/checklist-symbol-anchor-baseline.json`
still 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 `$authority` line; #18104's body already
records the one-sentence edit it is owed. ⛔ Not touched here.
- `SHARED_RESOLVER_RESIDUAL` now stands at 10 `bad-citation` + 8
`accept-set`. The gate's own self-test asserts `accept-set` count is
strictly less than `bad-citation` count, so the next cut that drains
more than one `bad-citation` row has to reckon with that assertion —
noted for the next slice's dispatch, not a defect today.
---
_Generated by [Claude
Code](https://claude.ai/code/session_017ef78bLdybu3AffehKkhfk)_
Co-authored-by: Claude <noreply@anthropic.com>
1 parent e233db9 commit 847e577
4 files changed
Lines changed: 29 additions & 32 deletions
File tree
- docs/qa/platform-checklist/areas
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
170 | 170 | | |
171 | 171 | | |
172 | 172 | | |
173 | | - | |
| 173 | + | |
174 | 174 | | |
175 | | - | |
| 175 | + | |
176 | 176 | | |
177 | 177 | | |
178 | 178 | | |
| |||
352 | 352 | | |
353 | 353 | | |
354 | 354 | | |
355 | | - | |
| 355 | + | |
356 | 356 | | |
357 | 357 | | |
358 | 358 | | |
| |||
841 | 841 | | |
842 | 842 | | |
843 | 843 | | |
844 | | - | |
| 844 | + | |
845 | 845 | | |
846 | 846 | | |
847 | 847 | | |
| |||
1038 | 1038 | | |
1039 | 1039 | | |
1040 | 1040 | | |
1041 | | - | |
| 1041 | + | |
1042 | 1042 | | |
1043 | 1043 | | |
1044 | 1044 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
463 | 463 | | |
464 | 464 | | |
465 | 465 | | |
466 | | - | |
| 466 | + | |
467 | 467 | | |
468 | 468 | | |
469 | 469 | | |
| |||
561 | 561 | | |
562 | 562 | | |
563 | 563 | | |
564 | | - | |
| 564 | + | |
565 | 565 | | |
566 | 566 | | |
567 | 567 | | |
| |||
819 | 819 | | |
820 | 820 | | |
821 | 821 | | |
822 | | - | |
| 822 | + | |
823 | 823 | | |
824 | 824 | | |
825 | 825 | | |
| |||
913 | 913 | | |
914 | 914 | | |
915 | 915 | | |
916 | | - | |
| 916 | + | |
917 | 917 | | |
918 | 918 | | |
919 | 919 | | |
| |||
1640 | 1640 | | |
1641 | 1641 | | |
1642 | 1642 | | |
1643 | | - | |
| 1643 | + | |
1644 | 1644 | | |
1645 | 1645 | | |
1646 | 1646 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
| 52 | + | |
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| |||
349 | 349 | | |
350 | 350 | | |
351 | 351 | | |
352 | | - | |
| 352 | + | |
353 | 353 | | |
354 | 354 | | |
355 | 355 | | |
| |||
1581 | 1581 | | |
1582 | 1582 | | |
1583 | 1583 | | |
1584 | | - | |
| 1584 | + | |
1585 | 1585 | | |
1586 | 1586 | | |
1587 | 1587 | | |
| |||
2441 | 2441 | | |
2442 | 2442 | | |
2443 | 2443 | | |
2444 | | - | |
| 2444 | + | |
2445 | 2445 | | |
2446 | 2446 | | |
2447 | 2447 | | |
| |||
3006 | 3006 | | |
3007 | 3007 | | |
3008 | 3008 | | |
3009 | | - | |
| 3009 | + | |
3010 | 3010 | | |
3011 | 3011 | | |
3012 | 3012 | | |
| |||
0 commit comments