Uh oh!
There was an error while loading. Please reload this page.
docs(readme): make the "count it yourself" line-count and package-directory count agree with what they describe - #11012
Merged
Conversation
…-directory count agree with what they describe The examples/app-crm size blurb hard-coded 31 files, 1,792 lines, roughly 16k tokens and invited the reader to verify it with the find | wc -l command printed right below — running that command against origin/main returns 1,930 lines, not 1,792. The Package Directory summary claimed 72 published packages; the table beneath it actually lists 45 rows (a curated subset, not every package — three of those rows are private, unpublished example apps), against a true count of 69 non-private package.json files repo-wide. Both passages now name their own source of truth explicitly instead of re-asserting a competing hand-typed figure that drifts again at the next merge: the CRM blurb states its numbers "as of this writing" and says the command below it is authoritative, not the sentence; the package-directory summary's count is now the table's actual row count and says the table is the source of truth for it. Fixes#10320 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019bmVFqoQPq63zhKrxdYG1r
os-elon
marked this pull request as ready for review
August 22, 2026 07:32
Contributor
⛔ merge queue 构建失败 — 先分诊,再决定要不要重排队列构建 32559900963 红了。队列跑的是全量套件(PR 侧 CI 只跑 affected 子集), 失败的 job(日志抽取,best effort):
跨 PR 相同签名(24h,按失败测试文件聚合):
历史信号:
分诊清单:
Generated by Claude Code · merge-queue-triage workflow (#4859) |
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 freeto 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.
Fixes#10320
The three figures, observed at
1b5a279942(branch point490879ad0f)Claim 1 —
examples/app-crmsize blurb (README.md:143-150).Re-ran the README's own command verbatim:
find examples/app-crm/src -name '*.ts' -not -name '*.test.ts' | xargs cat | wc -l→1930.Claim 2 — Package Directory summary (README.md:265).
package.jsonfiles repo-wide (packages/,apps/,examples/)72 matched neither the table it introduces nor the repo's real publishable-package count.
Source of truth, and why
Claim 1: the shell command is the source of truth. It's executable and reproducible by any reader in one line; the prose sentence is a restatement that can drift the moment anyone edits
examples/app-crm/srcwithout touchingREADME.md— which is exactly how it went stale (the file count still matched; only the line count had moved). No CI wiring in this repo currently re-runs that command against the README's number, and adding one is out of scope for this card (filed as a devx finding, see below) — so instead of re-hardcoding a fresh point-in-time number that will silently drift again at the next unrelated merge, the sentence now says so explicitly: it states its numbers "as of this writing" and tells the reader in as many words that the command below it, not the sentence, is authoritative. A future drift is now a declared, expected snapshot rather than a broken promise.Claim 2: the table is the source of truth for its own count. The table is a curated set of highlights across the monorepo's categories (Core, Engine, Drivers, …), not a literal enumeration of every published package — three of its own rows (the example apps) are
"private": trueand were never published at all, so "published packages" was never quite the right noun for what it lists either way. The summary's count is now the table's actual row count (45), and the summary states that the table itself is the source of truth for that number — so expanding it can never again disagree with what it claims about itself. The real total (69) isn't asserted anywhere in this string any more, since nothing in this section claims to enumerate every published package.Family / scope note
Per the dispatch note, this is cluster A (root
README.md) of the #10264 family, run SERIAL — #10319 (also rootREADME.md) stayed unclaimed while this ran, untouched here. #10322/#10324/#10325 (cluster B, blank template) are also untouched.One factual correction for the record: the dispatch note said root
README.md"has since taken #10881, #10929 and #10968" since the card's figures were measured (08-20). Checkedgit log --oneline -- README.mdat this branch's point — the last actual edit to rootREADME.mdwas #9293/#9304, well before those three. #10881/#10929/#10968 (and the visible commitseee2b65018/65c4a1305e) touchedpackages/cli/README.mdinstead. Doesn't change this PR's fix — both README figures were re-measured directly against the live tree rather than trusted from any prior report — but flagging it since it's a premise the dispatch note asserted.Reverse verification
Does not apply — this is a prose/count correction, not a behavioral fix with a code path to ablate. What was run instead: the README's own verification command, and a literal row count over the Package Directory table (both shown above, both reproduced against the final commit).
Out of scope, filed not built
The card's "should this be a gate" question is filed as #11011 (
finding,domain:cli, unassigned, nopm:queue) — labels verified landed after create. Not built here, per the card's explicit instruction not to widen this PR with a new gate.Gate verdicts (derived via
node scripts/pm/dispatch-gates.mjs, no paths, at1b5a279942)Diff surface:
README.md,.changeset/readme-count-it-yourself.md. Six local gates were derived for that surface, all run throughscripts/pm/os-verify-lock.sh, all green:pnpm check:doc-anchors→✅ check-doc-anchors: 279 internal #fragment link(s) across 407 source file(s) all resolve to a real headingnode scripts/check-empty-changeset.mjs --base origin/main→✓ No empty-frontmatter changeset introduced by this diff (1 declaring changeset(s) added).pnpm check:objectui-changeset→ both self-tests (objectui-changeset-digest,objectui-range) passpnpm check:changeset-gate-self-tests→ all three constituent self-tests passnode scripts/check-adr-0087-registration.mjs --base 490879ad0f→✓ check-adr-0087-registration: this PR adds no declared-breaking changeset (1 non-breaking changeset(s) seen).node scripts/check-changeset-no-major.mjs --base 490879ad0f→✓ This diff introduces no 'major' bump.Check Documentation Links(named in-scope by the dispatch brief): its ADR-cross-link half is reproducible locally with zero dependencies and was run —node scripts/check-adr-links.mjs --self-test && node scripts/check-adr-links.mjs→✅ check-adr-links: 551 relative link destination(s) under docs/adr/ resolve. Its other half (lychee, checkingREADME.mdamong other files) runs via a pinned binary this container doesn't have installed and isn't wired into anypackage.jsonscript for local reproduction; it's also advisory (not in the required set) and this diff adds/removes/edits zero markdown links, so it's inert to this change either way. CI will run it regardless.node scripts/check-nul-bytes.mjsalso run clean over the whole tree (this diff touches only ASCII prose).No package build/typecheck was needed — this diff has no code surface (
README.md+ a changeset only).Generated by Claude Code