test(spec): kernel test titles state each cited decision in words instead of a tracker number (stage 11) - #21736
Merged
Conversation
…tead of a tracker number (stage 11) Class (e) of the spec lane's share, the second area: the 102 test strings under packages/spec/src/kernel that carried a tracker id (106 ids, 69 records). Each id is either replaced by the decision its record made, stated in words, or dropped where the title already says it. Text only: no assertion, comment or non-test file changes. Claude-Session: https://claude.ai/code/session_01T9u38rswFp5Rw8DswRUReJ Co-authored-by: Claude <noreply@anthropic.com>
… not "already titled" twice Claude-Session: https://claude.ai/code/session_01T9u38rswFp5Rw8DswRUReJ Co-authored-by: Claude <noreply@anthropic.com>
Contributor
📓 Docs Drift CheckNothing in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 0 changed package(s)), so this run has no opinion about the docs. What this run could not see
Coarse fallback — 0 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
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 #20749
Clause-②: no
Stage 11 of this card, and the second area of class (e): the test strings shipped under
packages/spec/src, as ruled in5902360492on #20513. This stage takes the wholekernel/directory. Its 102 test-title and test-message literals carried 106 tracker ids citing 69 records. Each id now either states what its record decided, in words (form D), or is dropped where the title already says it. Text only: no assertion, fixture value, test count or code comment changes.Census at the base (
3fa850cf00, the claim's base)Instrument: stage 10's
census10.cjs(md59d08602ab972b4b8643c90d64d40fa41) and stage 9'scensus.cjs(md56e42a45a926d375013c32d62f16a296e), both byte-identical to the copies stage 10 used. A literal counts as a test title when its folded message is argument 0 of adescribe/it/testcall,.each/.skip/.onlychains included. Everything else is an "other" string.Both instruments read 1696 messages / 1807 ids in 405 files at the base, which is stage 10's reading at its head exactly.
kernel/reads 102 / 106, also stage 10's figure.data/ui/api/system/src/)kernel/(this PR)shared/contracts/conversions/security/ai/identity/integration/migrations/marketplace/,meta-spelling/,studio/kernel/capability-metadata-kind.test.ts:66reads one message withcapability无 DEFAULT_METADATA_TYPE_REGISTRY / schema 条目 ——PUT /api/v1/meta/capability/:name接受任意 JSON 且/meta/types报 allowRuntimeCreate:true(与 #5271 的api同形) #5961. Lit, a template-literal expect message:kernel/cli-command-contribution-retirement.test.ts:74reads one message. Dark: the// ─── [#17178] …comment atkernel/execution-context.test.ts:205reads 0 (the file's messages sit at:72,:167,:219,:233and:237). Planted in a scratch copy: an id added to a title reads 1 / 1, and an id in an added comment reads 0.#plus digits) reads 107 / 111 underkernel/at the base. The five extra hits are hex colours (#94A3B8,#0f0) infunctional-completeness.test.tsand one§3.10 #3section reference inmanifest.zod.ts, a non-test file. None is a tracker id. At the head the wider pattern reads only those five, and the gate pattern reads 0 / 0.kernel/reads 0 / 0. Nothing else moved.How the area was chosen
Stage 10's rule, applied before any card was read: rank whole first-level directories by ids, and take the busiest one within about 10% of the ~100-id bound. The four busiest each exceed the bound alone:
data/(501),ui/(415),api/(201) andsystem/(165). The files directly insrc/(120) are 20% over.kernel/(106) is the busiest whole directory within the bound, and its census reads exactly stage 10's 106, so the rule needed no second pass.Named for the next stages:
data/(about five stages, by subdirectory or file group;data/driver/alone is 52),ui/(about four),api/(two),system/(two), the files directly insrc/(one, 120),shared/(one, 95),contracts/withconversions/(one, 108), andsecurity/,ai/,identity/,integration/,migrations/,marketplace/,meta-spelling/andstudio/together (one, 96).What each id became
Of the 106 ids, 32 now state a decision in words, in 31 literals. 74 are dropped where the title already explains them; two of those (#14478) sit in literals that also gained words for another id. Every record was read with its comments through REST. 58 answer 200. Ten answer 404, and their decisions were read from what landed. One is in a repository not attached to this session.
describe/ittitles that already say what was retired, and were dropped. #11846 answers 404; its retirement was read from the CHANGELOG entry for landing0c2334f.authGateis declared onExecutionContextSchema, not spread behind anas any.{ type: 'summary' }field read 0 forever, and the rule now flags it as an error.4d0d944:ManifestSchemagoes strict and refuses unknown keys insidemanifest:.http.servermount, maintainer-ruled 2026-08-22", where the title said "Option B". Read from landingbc56e18and PR #12417's body: Option B removescontributes.routesand points authors at the imperativehttp.servermount. Dropped once.→ ttlMs/→ timeoutMsrenames and "carry their unit" already state the rule: the unit lives in the key name.NOT_CREATABLEbefore anything persists.marketplace", where the title said "ruling A′".%svalues do not change.2306a76: each bound entry is its stack collection's schema), #10338 (d2619fd:targetoptional, the gate holds the flow requirement), #10724 (be21955: the nine dead members tombstoned), #11330 (a9ee98992: the trust-tier text tells the truth), #11332 (dce5cd4: the three dead containers retired), #13135 (9e0ba21: the paper customization protocol retired), #17147 (2,aaacf1d5c: the granted set is registered and refuses nothing, said truthfully). Each title already carries what landed.Readers
-tand--testNamePatternfinds onlypackages/qa/dogfood/README.md:142(-t "owner-scoped"), which is unrelated.kernel/has no__snapshots__, and no.snapfile is tracked underpackages/spec.metadata-protocol/src/protocol.capability-write-door.test.ts:183,spec/src/api/contract.test.ts:813,spec/src/system/auth-config.test.ts:520), three releasedpackages/spec/CHANGELOG.mdentries, and one code comment inkernel/metadata-authoring-lint.ts:268, which belongs to the comment lane.Text-only proof
Stage 10's scratch tool (
textonly10.cjs, md5d5e4801dbb4329ab1984da91e92fc47c) compares base and head file by file on three legs:cli-command-contribution-retirement.test.ts:74and:86,plugin-lifecycle-advanced-retirement.test.ts:103,:124and:141,plugin-loading-retirement.test.ts:125,plugin-security-scan-result-retirement.test.ts:123,preview-mode-retirement.test.ts:193andstartup-orchestrator-retirement.test.ts:85and:106. Each changed leaf must carry a tracker id before and no#plus digits after.+chain DIFF.Test counts: the 36 files were run at the base (in a separate base worktree) and at the head: 841 / 841 tests on both sides, with the same count and status sequence per file in 36 of 36. 388 full test names change, and each equals the base name with the planned replacements applied.
Changeset:
skip-changesetMeasured, not assumed:
npm pack --dry-runof@objectstack/speclists 2068 files underfiles[]. 0 of the 36 touched files are in it, and 0*.test.tsat all. The controlssrc/kernel/manifest.zod.tsandsrc/kernel/execution-context.zod.tsare in it.dist/, three new phrases and three old ones each read in 0 files. The controlPlugin compatibility ranges (ADR-0025reads in 20.So this PR publishes nothing, and no changeset is added.
Verification (at
e0ad8f50af)pnpm turbo run buildover all packages: 71 / 71 (at the first commit), then@objectstack/specrebuilt ate0ad8f50af.@objectstack/spec:vitest run --project local, 613 files and 18215 passed, 1 todo.typecheckexit 0, includingcheck:test-typecheck, whose program holds all 36 touched files.dispatch-gates --commandsderived 79 families ate0ad8f50af, and all 79 exit 0.--ranreconciles: 79 derived, 79 run, 0 NOT-MEASURED, 0 UNRUN.--no-inline-configover the 36 files, 0 errors and 0 warnings. The population comes from ESLint's own config: 36 configured, 0 ignored. NoparserOptions.projectorprojectService, so no untouched file's verdict can move.check-governed-merges --test: NOT governed, 204 changed lines.Acceptance notes
kernel/sources, for exampleexecution-context.test.ts:205,metadata-authoring-lint.ts:268andfunctional-completeness.ts:148. They are the comment lane's, untouched here.#5961 — capability(packages/metadata-protocol/src/protocol.capability-write-door.test.ts:183). It is that package's test-string stage, not this one.e0ad8f50af) rewords one title from this PR's first commit, "the one carrier already titled", which read as a tautology, to "the first carrier given item-level names". Every proof above was re-run at that head.origin/mainmoved three commits past the base before this PR opened (fix(ci): the Console Pin Gate never counts text objectui's own source carries as the published spec (#21709) #21717, fix(metadata-protocol)!: the ADR-0010 _lock gate refuses on a host-config kernel too, and the diagnostics locked count reads the item envelope derivation (#21694) #21715, fix(runtime)!: an app-authored body may not read the stored-metadata tables; it reaches them through the metadata API only (#21594) #21660). None touchespackages/spec, so nothing was merged.Generated by Claude Code