Repository navigation
docs(gates): take the re-typed counts out of the docs and retire the two gates that only held them - #26511
Conversation
…eld them The lockstep "110 packages" sentences and the publish-smoke-pack header, the quick-reference "(N of M schemas)" headings, the two registry counts under the overlay whitelist table, and the glossary's "15 protocol namespaces" now state no number. check-lockstep-package-count and check-quick-reference-counts go with their aliases and lint steps; the overlay gate loses only its third leg; the spec-enumerations gate keeps its lists and still holds any count written back in. The route-ledger census stays: its number is the deletion guard, and an ablation shows no other suite sees three of its rows go. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ADHkmQq9EYQdTQwmRutQTS
席位核对 · ACCEPT · devx seat 2 · 2026-10-27T06:04ZSeat Per gate, against the triage line's "nothing the check proves is weakened" (6434325953):
Workflow: the two Landing: on a GOVERNED_APPROVERS approval with CI green. The card closes on |
Requested by Steve · project thread
Fixes #26441
Part of #26431
Clause-②: no
Metadata-protocol: none
维护者速读
check-changeset-fixed、overlay 第 1 和第 2 腿、check-docs-spec-enumerations守着。回滚就是 revert。quick-reference.mdx的新导语、metadata-lifecycle.mdx第 123 行、check-docs-spec-enumerations.mjs的SECTIONS_HEADING(数字变成可选),以及下面 route-ledger 的删行实测。node scripts/check-overlay-whitelist-table.mjs --self-test、node scripts/check-docs-spec-enumerations.mjs --self-test、node scripts/check-changeset-fixed.mjs,都是 exit 0。.github/workflows/lint.yml),要 GOVERNED_APPROVERS(os-zhuang 或 hotlong)批准。What changes
check-lockstep-package-countmajorwould promote every published package"; "every package published from this repository belongs to a single Changesetsfixedgroup";publish-smoke-pack.mjsheader: "enumerates the same names"check:lockstep-package-count, lint step)check-changeset-fixed(membership of thefixedgroup against the public workspace, on PRs fromvalidate-depsand in both release lanes)check-quick-reference-counts## <Name> Protocol. The intro says each table is curated and points at the generated reference index for the full set. The "Categories Without a Section" table loses itsPagescolumncheck:quick-reference-counts, lint step)check-doc-anchorshold thosecheck-overlay-whitelist-table, leg 3allowEnvironmentOverlay: trueset: every other type inDEFAULT_METADATA_TYPE_REGISTRYisfalse."parseCountToken,compareProse, batteries 13a–13g, roster floor 19 → 12. Legs 1–2 untouchedtruetype has a row) and leg 1 (every row's ✅/❌ matches the registry). Together they make the "complete" sentence truecheck-docs-spec-enumerations## The 15 Protocol NamespacesheadingSECTIONS_HEADINGtakes the heading with or without a number. The sweep stays, so a count written back in anywhere is still held to the exports mapcheck-route-ledger-censusRoute-ledger, measured before deciding. On
c91544a4, rows were deleted fromROUTE_LEDGER(105 rows) and the three suites that read the ledger were run, restoring the file after each run:runtimeroute-ledger.conformanceclientclient-url-conformanceqa/dogfoodlive-mount paritycheck-route-ledger-census/approvals/act…/actions/_activation)GET /meta/types,POST /actions/global/:action,POST /actions/_activation/:object/:actionThe last row is the #16758 shape: the rows are absorbed by another ledger in the union, or they are
servedByspecializations whose pattern nothing registers. Nothing but the census sees them go, so it stays. The real fix is a route-granularity reverse check in the runtime suite, which is #17041's open question. It is reported to the seat as an out-of-scope finding, not built here.Prose made false by the retirement, and only that:
PRIVATE_FIXED_MEMBERSdocblock incheck-changeset-fixed.mjs, which named the retired reader;check-route-ledger-census.mjs, which credited its shape to the retired script;Historical mentions of the retired scripts are left as they are: the
docs/audits/*census tables, thescripts/ui-import/README.mdcutover log, the #16325 list incheck-docs-spec-enumerations.mjs's header, and a quoted principle inpackages/spec/scripts/check-llms-txt.ts.Tests
check-changeset-fixed:@objectstack/clientremoved from.changeset/config.jsonfixed[0]→ exit 1,Public packages missing from "fixed" … @objectstack/client.actionflipped toallowEnvironmentOverlay: truein the registry → exit 1,[missing-row] \action` is `allowEnvironmentOverlay: true` … and is named nowhere in the table`.check-docs-spec-enumerations:## The 14 Protocol Namespaceswritten back into the glossary → exit 1,[count-drift] the glossary claims 14 protocol namespace(s); the exports map publishes 15.check-route-ledger-census: the 3-row ablation above → exit 1, every other suite green.check-overlay-whitelist-table --self-test: the 12 remaining batteries hold, and the positive control still reproduces the 4 known divergences.check-docs-spec-enumerations --self-test: 79 cases over 10 batteries. Two new cases in battery 7: a count-free glossary is green with its sections still read. The drain-refusal case in battery 8 goes, since the floor it tested is gone.grep -rnE "110 (published )?packages|\*\*110\*\*|of [0-9]+ schemas?\)|[0-9]+ types in .DEFAULT_METADATA|Those five are|[0-9]+ protocol namespaces|The [0-9]+ (Protocol )?[Nn]amespaces" content/docs(outsidereleases/) prints nothing.check:lockstep-package-countandcheck:quick-reference-countsare gone frompackage.jsonandlint.yml. The overlay alias stays, because only its leg went.check:doc-anchorsexit 0 (598 fragments).check:docs-audit-scopeexit 0.dispatch-gates --commandsderived 105 commands on5f82434c, and all 105 exit 0.dispatch-gates --ranreports 0 NOT-MEASURED and 0 UNRUN.@objectstack/spec'scheck:docsandcheck:skill-examplesfirst refused on an unbuiltjson-schema/anddist/(exit 1 and 3, prerequisites, not findings). Both exit 0 afterpnpm --filter @objectstack/spec build.main(fffcf347) the derivation is the same 105, and the gates that readpackage.json(check-self-test-wired,check:aggregator-roster,check:ci-filter-parity,check-self-test-workflow-commands,check:select-gate-families) exit 0 again.Gate log (105 commands: exit code, seconds, command)
Acceptance notes
check:*keys stay, both inside the dispatch's own exception.check-docs-spec-enumerationsholds lists that are facts, andcheck-route-ledger-censusholds a number that is the guard itself, as the ablation shows. Both decisions were put to the seat before the work, and the seat ruled the second one measure-first.ci.ymlis not touched, and noui/path is touched. Docs and repo tooling only, soskip-changeset.Verification
Tier H (
.github/workflows/lint.yml): draft until a GOVERNED_APPROVERS approval (os-zhuang, hotlong).Generated by Claude Code
🤖 Generated with Claude Code
https://claude.ai/code/session_01ADHkmQq9EYQdTQwmRutQTS