Repository navigation
test(spec): the class (e) remainder's titles state each cited decision in words instead of a tracker number (stage 30) - #22414
Merged
Conversation
…n in words instead of a tracker number (stage 30)
Seven test strings in five subdirectory test files drop their tracker id:
six titles and one expect message. Each title already stated the decision
it pins, so the number goes and the words stay; the assignment title keeps
"the `{token}` dialect retired" without the two cards it cited.
Ten strings carrying a `#` plus digits stay: four are CSS hex colours the
schema under test reads as input, and six are matched by an assertion that
reads a non-test source or by the file's own assertion, so they move with
that reader in a later stage.
Text only: the files are identical outside the seven string tokens, and
every file keeps its test count and status sequence.
Claude-Session: https://claude.ai/code/session_01DhTqaEHqPVSVnAkjG3jywn
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 was referenced Oct 9, 2026
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 30 of this card: the class (e) remainder, the test strings shipped under the
packages/spec/srcsubdirectories, as ruled in5902360492on #20513. The census at the base reads 17 messages / 18 ids in 12 files. This stage rewrites 7 of them (6 titles and 1 expect message, 8 ids) in 5 files: each now states what its record decided, or drops the number where the title already says it. The other 10 messages / 10 ids stay, 4 because earlier stages decided they are not citations and 6 because an assertion matches the string against text this claim does not let the stage edit; both groups are named under "What stays". Text only: no assertion, identifier, test count, code comment, file name or non-test file changes. No file is deferred.Census (re-taken first)
The instrument is stage 28's
census28.cjs, byte-identical (md531d8488b5194b8d3048e3fcaec0efaed, the value stages 28 and 29 published): an AST walk over thepackages/spec/srctest files, one message per folded string (a lone literal, a template, or a plus chain) that matches the gate's id pattern, a title when the folded root is argument 0 of a describe / it / test / suite / bench call, comments never read. It was run against the three published readings before it was trusted, and all three reproduce exactly: 128 messages / 130 ids in 37 files atf7b8a5932b, 191 / 200 in 53 files ataa09db58c9, 73 / 76 in 24 files atb7e01fbbd.11d119ab10ef9029daStage 29's ACCEPT carried 16 / 17 (ui 9 / 9 in 7 files, automation 2 / 3, ai 2 / 2, api 1 / 1, contracts 1 / 1, kernel 1 / 1). The base reads 1 / 1 more, all in
ui: the titlecarries no ruling date and no tracker id (#22093)atview-submit-redirect-url.test.ts:341, which PR #22322 (ad381fd94, landed 2026-10-09T00:35Z) added after stage 29's head. Souireads 10 / 10 in 7 files, and nothing else moved. The census atorigin/maine75dceddd(8 commits past the base, none touching the 12 files) reads the same 17 / 18 in the same 12 files, so nothing regrew while this stage ran. The reading is within one message of the claim's, so there was no re-cut.Per file, messages at base:
ai/build-progress2,api/meta-item-response-shapes1,automation/builtin-node-config2 (3 ids),contracts/approval-service1,kernel/manifest1,ui/action-description1,ui/component-props-unknown-members.pin1,ui/dashboard-chart-structure-refusal2,ui/dashboard2,ui/notification1,ui/strictness-batch141,ui/view-submit-redirect-url2.Controls:
describe(in 12 of 12 files and a nonsense word in none; the census scanned 12 of 12.Deferral
At the census (2026-10-09T03:03Z) 17 PRs were open; at the re-scan before opening this PR (04:13Z), 13. Every file list was read through REST (605 and 593 rows). None touches any of the 12 files: lit control
api/protocol.test.ts(PR #22323) found, dark control 0. Of the four PRs the claim named, #22380 has landed and #22315, #22323 and #22215 are open; none of them touches a file in this group. Deferred files: none.What changed
7 literals, one line each, in 5 files: +7 / -7. Every file keeps its line count.
api/meta-item-response-shapes.test.ts:226: the[#22114]prefix goes; the title already says what feat(meta): the /meta item read serves the version token, If-None-Match: * pins a first write, and the 409 carries currentVersion #22126 landed, that the read serves the version token and the 409 carries the current one as data.automation/builtin-node-config.test.ts:434: "a CEL envelope beside literals; the{token}dialect retired". A digest — one message per recipient listing their N records — is not authorable in a flow #14149's ruling A made an assignment value a CEL envelope beside literals, and [v18] retire the{var}template dialect in flow assignment slots: refuse at registration with per-spelling remedies (the C half of #11182 ruling D, on the v18 train) #19939 retires the{token}dialect in flow value slots; the title already stated both, so only the two numbers go.automation/builtin-node-config.test.ts:485: the[#19939]prefix goes from the REFUSES title.kernel/manifest.test.ts:681andui/action-description.test.ts:235: the trailing(#22093)goes. spec: author-visible describe/refusal strings carry internal references (II18nService.getDefaultLocale(), a ruling date, manifest.id, com.steedos.crm) #22093 decided that author-visible help and refusals carry no service-interface name, ruling date or foreign example id, and both titles already say what their bodies pin.ui/view-submit-redirect-url.test.ts:341: the trailing(#22093)goes from the title.ui/view-submit-redirect-url.test.ts:118: the expect messagestates the rule, not its ruling date (#22093)drops the number. It is an assertion's failure message, so it was needle-checked first (below) and is the one declared non-title string.All seven are "drop a number the title already explains". None needed a rewrite in new words, because each title already carried the decision.
What stays, and why
10 messages / 10 ids in 7 files, none edited.
Four are CSS hex colours, not citations.
colors: ['#111', '#222']atui/dashboard-chart-structure-refusal.test.ts:94andpalette: ['#111', '#222']atui/dashboard.test.ts:124are fixture input the schema under test reads. Stage 21's ACCEPT (6001279159, decision A) kept them by file and line, and every later stage carried them forward.Six are strings that an assertion matches against text outside this stage's edit surface. Moving one at the same strength means editing a non-test source docblock (and, for the first two, its generated reference page) or the assertion that matches it. The claim forbids both and says to stop and report, so none is touched;
open_questionsin the report carries the decision.ai/build-progress.test.ts:236'cloud#2172'and:237'objectui#7388 block 2':toContainover the source text ofai/build-progress.zod.ts(docblock lines 8, 27 and 85), whichcontent/docs/references/ai/build-progress.mdxrenders.contracts/approval-service.test.ts:274'#16495':toContainover the docblock abovecontinueRestoredRunincontracts/approval-service.ts(line 999).ui/notification.test.ts:123'// [#4610]': the locator of the tombstone note inui/notification.zod.ts:94; the file's owntoMatch(/^\[#4610\]/)at:134reads the same note.ui/strictness-batch14.test.ts:395'#5015':toContainoverui/notification.zod.tsandui/sharing.zod.ts.ui/component-props-unknown-members.pin.test.ts:322ruling: 'decision card #21704, fork 4, letter B (record 5979239990)': the file's own assertion at:417matches the value with/#21704/. Stage 20's ACCEPT (5998488373) kept it for this reason and sent it to the needles' stage.Readers of the seven rewritten strings: none.
git grep -Fat HEAD over the tracked tree outside the 12 files, with the full literal, a 24-character window around each id, and the text on each side of each id (29 needles over all 17 sites): the only hits are the readers of the kept strings named above, the lit control (composeStacksinstack.zod.ts) hits and the dark control does not. The same needles searched inside the 12 files, outside each literal's own span: the only hits are two code comments beside:322. The five short needles (cloud#2172,#16495,// [#4610],#5015,#21704) fall under the script's 12-character floor, so their readers were confirmed by directgit grep -Fwith a dark control.Cited records
Read with their comments as the API serves them: #22114 (8 of 8 comments; landed as PR #22126), #14149 (12 of 12; ruling A
5507504961, landed as PR #15113), #19939 (15 of 15; pass 1 landed as PR #22259, the card stays open), #22093 (17 of 17; PRs #22125, #22309 and #22322), and the four PRs themselves. #19939 is still open: its pass 1 refuses the{token}dialect in flow value slots and keeps two spellings (the date macros and{$User.*}) until CEL can write them. The describe's PRESERVATION test still accepts those two, and the title keeps the record's own verb, "retired", as PR #22259 wrote it. The title and the test body say the same thing the record says.Verification
At head
8885dbf1c(one commit on base11d119ab1):textonly28.cjs(stage 28's, md5957eff6b3837d762b8e03d070155930a) on all 12 base copies against their heads: 12 / 12 SAME. 7 changed tokens, as predicted in writing at 2026-10-09T03:08Z before any edit or test run: 6 titles and 1 declared string (--declared 118). Every other string token, identifier, number, punctuation mark and comment is byte-equal. 16 controls, expectations written in the script before the first run, 16 / 16 as predicted: an identifier rename, a numeric literal, a comment edit, an undeclared expect message, a rewritten title given a new id, an id-free title edited, one title reverted to base (SAME, 0 changed), a declared label without--declared, a declared line plus another changed string, the declared line alone (SAME, 2 changed), a title re-split into a plus chain, a test added, an untouched file (SAME, 0 changed), an id appended to a rewritten title, a kept needle rewritten, a kept hex colour rewritten. The two controls that mutate a string beside the declared line fail at the mutated line, not at 118.--project local --project repowith the JSON reporter, 618 tests in 88 suites each side, all passed. Per-file test count and status sequence identical in 12 / 12. 23 full names changed (4 + 14 + 1 + 3 + 1), 0 mismatches against the plan. Names carrying#plus digits: 23 at base, 0 at head. Duplicate full names: 3 and 3, the same three[object Object]it.each rows at both ends.Test Files 626 passed (626),Tests 18743 passed | 1 todo (18744).turbo run buildoverpackages/*andpackages/*/*,Tasks: 71 successful, 71 total;@objectstack/spectypecheckexit 0 withcheck:test-typecheckholding 52 files / 246 errors / 135 pinned signatures, the same figures as stage 29; the 12 files are all in thetsconfig.test.jsonprogram.dispatch-gates.mjs --commandsat the head derives 79 (stage 29's 77 pluscheck:authorable-surfaceandcheck:yaml-examples); all 79 exit 0, and--ranreconciles 79 derived, 79 run, 0 NOT-MEASURED. The five artifact-roster families that keep their roster in a directory one of the paths is in (check:meta-url-spelling,check:spec-changes,check:authz-resolver,check:error-code-casing,check:filter-alias-parity) andcheck:generated(all 15 artifacts up to date) also exit 0.--no-inline-config, 12 files: 0 errors, 0 warnings. Population from ESLint's own config: 12 configured, 0 ignored, 0 with a type-aware parser option, so this diff cannot move the verdict of a file it does not touch.npm pack --dry-run --json --ignore-scriptsinpackages/spec: 2069 files, 0*.test.ts, 0 of the 5 edited files; controlssrc/stack.zod.ts,dist/index.mjsandpackage.jsonpresent. The rewritten expect message occurs in 0 files ofdist/; the controlUnrecognized keyoccurs in 42. Nothing published changes.check-governed-merges.mjs --teston the 5 paths: 0 of 5, not governed; 14 changed lines.git merge-tree --write-treeontoorigin/maine75dceddd: clean.#plus digits; 0 control bytes in the changed files.Declared narrowing: the 12-file base and head comparison ran outside
os-verify-lock.sh, after three queue turns (about 28 minutes) ended without a grant. It is a 12-file run with two workers; the workspace build, the typecheck and the full unit tier all ran under the lock. The gates arecheck:*runs, which do not use the lock.Acceptance notes
{…}template dialect, naming the CEL spelling of each token (#19939, C half) #22259 and fix(spec): the submitBehavior property help carries no ruling date #22322) added 7 messages / 8 ids to test strings in files that already existed, one of them to a title fix(spec): the submitBehavior property help carries no ruling date #22322 wrote while stripping a ruling date from a describe. Test files sit outsidecheck:doc-authoring's ledgered leg, and the ruling adds no gate, so the per-stage census is the only instrument. An observation about the burn-down's denominator, not a class a / b / c finding.// ─── assignment (#14149) ───atbuiltin-node-config.test.ts:432); comments are packages/spec/src: 1,277 comment lines still cite 170 deleted tracker numbers (1,295 sites) — the staged remainder of ruling C+D on #19123, measured by PR #20226 #20234's share.Generated by Claude Code