Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions scripts/check-pnpm-filter-targets.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -127,10 +127,16 @@ const SCANNED_EXTENSIONS = [...JS_EXTENSIONS, ...HASH_COMMENT_EXTENSIONS, '.json
* ── Why `scripts/**` is honest here, with the measurement ───────────────────
*
* This is the `subtree` case: the walk descends the whole of scripts/ and every
* file carrying a scanned extension is judged. Measured on this tree, the
* declaration names 235 tracked files under scripts/ and this gate reads 228 of
* them — 97.0%. The 7 it skips are the non-code files the extension filter
* drops, not a subtree it never opens.
* file carrying a scanned extension is judged. Measured at `52a41b72e`
* (2026-08-23): the declaration named 235 tracked files under scripts/ and this
* gate read 228 of them — 97.0%, the 7 it skipped being the non-code files the
* extension filter drops rather than a subtree it never opens.
*
* ⛔ That reading is deliberately pinned to its commit and NOT refreshed here.
* Both counts move with every file added under scripts/ and nothing reprints
* them, so a figure restored in the present tense would read as current and go
* false in silence. What this paragraph argues is the SHARE, and the share is
* what survives the churn; for today's counts, run the walk below.
*
* ── Why the workspace manifests stay UNDECLARED ─────────────────────────────
*
Expand Down
16 changes: 11 additions & 5 deletions scripts/check-published-files.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -388,11 +388,17 @@ function matcher(pattern) {
* This is the `subtree` case, not the `filtered` one check-examples-live-imports
* refuses. `walk()` below enumerates EVERY non-build file of every publishable
* member and MINIMAL judges each of them against FORBIDDEN, so the declaration
* names files this gate really opens. Measured on this tree: the declaration
* names 5263 tracked files and the gate judges 4803 of them — 91.3%. The 460 it
* does not judge are the members whose OWN manifests this gate read in order to
* exclude them (`private`), which is itself a read of the declared subtree, so
* a manifest card there is a true lead rather than a fabricated one.
* names files this gate really opens. Measured at `52a41b72e` (2026-08-23):
* the declaration named 5263 tracked files and the gate judged 4803 of them —
* 91.3%. The 460 it did not judge are the members whose OWN manifests this gate
* reads in order to exclude them (`private`), which is itself a read of the
* declared subtree, so a manifest card there is a true lead rather than a
* fabricated one.
*
* ⛔ Those counts are deliberately pinned to that commit and NOT refreshed. They
* move with every package added to or removed from the workspace, no gate
* reprints them, and the claim this paragraph rests on is the SHARE — that the
* declaration names what the gate really opens — never the level.
*
* The contrast that sets the boundary is in check-published-readme-exports.mjs,
* which enumerates the same members and scores 2.8% — its refusal docblock
Expand Down
12 changes: 10 additions & 2 deletions scripts/check-skill-compatibility-version.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -97,14 +97,22 @@ const PACKAGE_ROOTS = ['packages', 'apps', 'examples'];
* The instrument can only express a SUBTREE: `hintCovers` collapses globs, so a
* declared hint names every tracked file beneath it and there is no way to spell
* "the package manifests under this root". That makes the two sides of this gate
* completely different trades, and both were measured on this tree:
* completely different trades, and both were measured at `f29e89717`
* (2026-08-22):
*
* skills/** 49 of 50 tracked files are skill directories this gate
* skills/** 49 of 50 tracked files were skill directories this gate
* reads — 98% precision over a 50-file subtree.
* packages/** 73 package.json files out of 4903 tracked files — 1.5%,
* pasted into every packages/** dispatch prompt in the repo.
* apps/** 1 of 35 (2.9%) · examples/** 4 of 238 (1.7%).
*
* ⛔ Those four readings are deliberately pinned to that commit and NOT
* refreshed in place. Every term moves with the tree, nothing reprints them,
* and what decides the trade is the ORDER of magnitude between the two sides —
* which is why a figure restored in the present tense would be a new decaying
* claim rather than a better one. `node scripts/pm/bare-root-worklist.mjs`
* carries this gate's rows for the three package roots, with their own dates.
*
* The three package roots are therefore the +139084 fabrication one level up —
* the very measurement in `hintCovers`' docblock, which prices accepting bare
* top-level directory words at that many fabricated (gate, file) pairs because
Expand Down
14 changes: 11 additions & 3 deletions scripts/check-slot-lookup-ratchet.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -147,9 +147,17 @@ const BASELINE_PATH = 'scripts/slot-lookup-baseline.json';
* a lead it does not need. That trade is the one `CHANGE_KIND_GATES` already
* decided for the three structurally identical whole-tree ratchets in
* `dispatch-gates.mjs`, and it is decided the same way here — by what the gate
* costs to run needlessly. Measured on this tree: 46s, no build required, and a
* failure names the offending file and line. A seat that runs it needlessly
* loses seconds; a seat that is never prompted loses a CI round.
* costs to run needlessly. Measured at 46s when this was recorded
* (`99ca6623f`, 2026-08-19), with no build required, and a failure names the
* offending file and line. A seat that runs it needlessly loses seconds; a seat
* that is never prompted loses a CI round.
*
* ⛔ The duration is deliberately left at that commit and NOT refreshed in
* place. A wall-clock reading is a reading of one BOX as much as of one tree —
* this repo's own agent containers read several times the figures recorded for
* them — so a fresh number written here would decay without the tree moving at
* all. Time it on the box you are deciding for; what the trade needs is the
* ORDER (seconds against a CI round), and that is what is stated.
*
* Two things a seat prompted by this declaration needs to know, and neither is
* visible from a green `pnpm lint`:
Expand Down
9 changes: 6 additions & 3 deletions scripts/docs-audit/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -552,9 +552,12 @@ How often it renders, re-derived over the 40 first-parent commits ending at `e43
3 of the 17 package-touching runs (18%) — `20a452e664`, `f213793ddb`, `dd4113ec0b` — so it
is a rare notice rather than a per-PR banner, which is what keeps it readable.

**Cost** (the card's open question): the anchor derivation reads the same 178-page corpus
the old one did, plus the 18 route-source/ledger files (~875 KB) and one `git show`
per changed file per side. Measured end-to-end on the ten PRs above, `node affected-docs.mjs`
**Cost** (the card's open question): the anchor derivation reads the same hand-written
corpus the old one did, plus the 18 route-source/ledger files (~875 KB) and one `git show`
per changed file per side. ⛔ The corpus SIZE is deliberately absent from that sentence —
run `check-audit-scope.mjs` (`pnpm check:docs-audit-scope`) for today's page count. A size
written down in the present tense decays with nothing going red, which is exactly what the
`178` that used to stand here did. Measured end-to-end on the ten PRs above, `node affected-docs.mjs`
went from 85-195 ms to 114-582 ms. The heaviest case is the widest diff; every case stays
well under a second, against a job that already spends seconds checking out the repo and
setting up Node. It is the right default for every PR.
Expand Down
Loading
Loading