docs(cli): drop stale family counts from the json-stdout-purity docblock - #13047
Conversation
The docblock said "there are ten of them / the other nine / the
eleventh" while the discovered FAMILY table now holds twelve. The prose
is reader-facing only: the family is DISCOVERED from the source tree and
reconciled against FAMILY, so no assertion, exit code or criterion reads
these words.
Removes the magnitude ("one implementation face per command", "the
others", "a new one") rather than resetting it to twelve, so the drift
construct is deleted instead of re-armed. The same stale "nine" in the
beforeAll comment goes with it. The sharp measurements next to it (the
~60 INFO lines, the #4873 extractor, the two independent pollution
sources) are untouched -- not being doubted because of an adjacent stale
count is the whole point.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UjujZN219uFzBhSYfMykCd
📓 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): |
PM 复核 — ACCEPT
核过的
⭐ 两处判断我认可多找出的那一处: 有意留下的那一处: 交付细节无 changeset,理由充分:按门禁自身的规则( ⭐ 并且它踩到了本席位早就记录过的那个坑并用了正确的绕法:追加标签的 endpoint 返回 403,于是走了既定 fallback —— 读取、并集、整集写入、再读回,读回确认 无消融,且明确不声称有:本次不改变任何机制,没有"某个守卫失效会怎样"可证 —— 不硬凑一个消融比凑一个强。 两处声明的未测量: CI 全绿后我撤草稿并 arm,并在合并队列里看到它才算数。 Generated by Claude Code |
Fixes #13017
The docblock of
packages/cli/test/json-stdout-purity.e2e.test.tsargued its own design from a count that had drifted twice:The
FAMILYtable holds twelve entries.Harmless, and deliberately treated as such
The family is DISCOVERED from the source tree by
discoverFamily()and reconciled againstFAMILYby one assertion. No assertion, exit code or criterion reads the prose numbers. That was re-verified here rather than assumed (see Evidence: the suite count is identical before and after). So this is a reader-facing defect only, and the reconciliation mechanism is not touched.Route taken: remove the magnitude
Of the three routes the card listed, this takes the first. The prose now reads "one implementation face per command", "the others", "a new one" — deleting the drift construct instead of resetting the number to twelve and waiting for a thirteenth member.
The sharp measurements sitting beside it are untouched: the
~60 INFO linesabove the payload, the#4873extractor story, and the two independent pollution sources. Not having those doubted because of an adjacent stale count is the entire argument for doing this at all.A second residue — found by scanning for WORDS, not digits
The counts are English words, so a digit-based scan does not see them; that is part of why this survived two membership changes. Scanning the whole file for number-words turned up one more instance outside the docblock, in the
beforeAllcomment:Same class, same staleness (nine vs twelve). It now reads
rather than one per member.One quantifier was considered and deliberately left alone: "Only one member needs anything:
os migrate meta" in theFAMILYdocblock. It counts members whose extra argv is non-empty, not the family size — a new member with[]leaves it true — and it names the member directly above the table that verifies it. It is accurate today and does not drift with membership.No mechanical "auto-generated / auto-checked" apparatus was added to the comment; the card ruled that route (option 3) out.
Evidence — all at
4b7d34430Suite count is unchanged and green, which is the card's criterion:
vitest list(collected)vitest runTest Files 1 passed (1)/Tests 37 passed (37)The "before" figure was taken by restoring the file from the merge base
8cb96ec41, proving the pristine text was on disk ('there are ten of'= 1 occurrence), listing, then restoring withgit checkout HEAD --and proving the result byte-identical to theHEADblob (af39210b7813eca3220dd6b49aa4188b03fcf84a) with a cleangit diff HEAD.Gate families were re-derived from the real change set with
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstackat this commit. All green, each read from the gate's own verdict line:check:nul-bytes·check:comment-mask-adoption·check:cli-test-child-env·check:keyed-text-bounds·check:test-source-alias·check:cross-package-test-inputs·check-ci-filter-parity·check:engine-double-contract·check:where-matcher·check:query-options-erasure·check:objectql-double-limit·check:page-declaration-shape·check:published-files·check:slot-lookup·check:type-source-resolution·check-undeclared-dep-imports·check-plugin-teardown-shape·check:type-check-coverage·docs-audit/check-affected-docs·docs-audit/check-drift-commentTwo declared limits, so the coverage claim is checkable rather than implied:
pnpm --filter @objectstack/cli typecheckis NOT a measurement of this file. It exits 0, butpackages/cli/tsconfig.jsonis"include": ["src"], there is no sibling test tsconfig and nopackages/cli/test-typecheck-debt.json, so--listFilesreports 0 of the package's test files in the program. Read as NOT MEASURED, not as green. This is a pre-existing property of the package, not something this PR moves — no test file is added andcheck:type-check-coverageis green. The file's real exercise here is the vitest run above.check:type-check-debt --re-measurewas not run locally. It refuses on a worktree without the whole workspace closure built, and this worktree built only@objectstack/cli^.... Its structural trigger is a new test file outside every tsc program; this PR adds none and changes only comment bytes. CI runs it.No changeset, by the gate's own rule
This PR changes comment text in one test file. It publishes nothing, so it carries
skip-changesetrather than a changeset —changeset-checkinpr-automation.ymlhas no path exemption, andlint.ymlnames exactly this case ("such a PR releases nothing, so by the workflow's own prescription it takes the label").Generated by Claude Code
Generated by Claude Code