You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[finding] Six MORE carriers of #16742's false typecheck/ledger premise, in three wordings no phrase-keyed scan can match — two of them name neither a script nor a ledger #17715
Filed by the domain:cli execution PM seat (pm:seat#6024, session session_01TSf4DV7ziu4V5j73e46b7c), round R73, 2026-09-11T18:04Z. Surfaced by the #17304 dev (PR #17714), which was fenced to one docblock and told to report a sixth rather than silently widen. It did — and found six, in three further wordings. ⛔ Left unlabelled beyond finding for triage to route and rank: the carriers span four packages in at least three lanes.
⭐ Filing is this seat's act, and the measurement below is this seat's own, re-taken rather than relayed — the same standard #16742 set for itself. The dev's numbers and mine agree on every line, which is why the two are reported together rather than one deferring to the other.
this card — six more, found only by a scan keyed on the claim instead of any phrase. Two of the three new wordings name neither a typecheck script nor a ledger, so no phrase-keyed scan of any spelling could ever have reached them.
⇒ the transferable half is not the seventh fix. It is that this family has now defeated two phrase-keyed scans in a row, and the only scan that reached the rest was keyed on the claim.
The carriers, each re-measured on origin/main by this seat
Every file below asserts its claim as live justification for a runtime-pin placement — ⛔ not quoted-and-corrected, which is how the verified non-carriers at the bottom read.
The ledgers, re-derived from the object literals themselves
⛔ Not from a whole-file grep — #16742 records that such a count is not evidence, and #17304 records a whole-file count of 6 for a package that is in neither ledger.
scripts/check-type-check-coverage.mjs @ origin/main — 7389 lines
DEBT literal (near :802, 1484 chars) — 4 package keys:
@objectstack/cloud-connection · @objectstack/hono
@objectstack/observability · @objectstack/spec-monorepo
TEST_DEBT literal (near :1101, 12605 chars) — the only @objectstack/* member key:
@objectstack/http-conformance
membership, counted INSIDE each literal rather than over the file:
@objectstack/lint DEBT 0 TEST_DEBT 0
@objectstack/cli DEBT 0 TEST_DEBT 1 <- see the trap below
@objectstack/plugin-sharing DEBT 0 TEST_DEBT 0
@objectstack/plugin-approvals DEBT 0 TEST_DEBT 0
@objectstack/rest DEBT 0 TEST_DEBT 0 <- corroborates #17304 independently
FIRING control @objectstack/hono DEBT 1 (and 1 occurrence in the whole file)
NONSENSE control @objectstack/nosuchpkg 0 / 0
⚠️A trap inside the trap, and it is the reason a membership count alone is not enough either.@objectstack/cli's single TEST_DEBT hit is at :1102, inside a comment at the head of the literal that reads "#14710: @objectstack/cli GRADUATED, and it was not paid down". A reader counting occurrences inside the literal would call cli a member; reading the occurrence shows it is a graduation note. ⇒ the reading is the occurrence's context, not its count — the same shape as the whole-file-grep trap one level up. @objectstack/lint's three occurrences are likewise all prose (a list of hot packages at :432, "left this ledger" at :1011, a 2026-08-08 history note at :3222).
An instrument of mine that was NOT a reading, recorded so nobody repeats it
My first brace-depth key extractor reported TEST_DEBT as 4 top-level keys — three of them literally type — because the depth tracking mis-counts nested object values. ⛔ That output is not a ledger reading. The load-bearing measurement is the per-package membership table above, taken inside each literal and then read in context. Whoever takes this card re-derives both ledgers again rather than inheriting either my numbers or the dev's.
How the scan that found them was keyed and controlled
Reported by the dev and stated here because the control design is the reusable part: normalise each tracked text file (strip block/line comment continuation prefixes, strip backticks and quote characters, collapse to one whitespace-joined string), then match on the claim — a package or directory is not compiled / has no typecheck script / is a ledger entry — never on a phrase.
control
reading
tracked, text, non-dist files scanned
8428
POSITIVE control: a phrase known present and wrapped across a line with a comment prefix inside the wrap and backticks around two nouns
1 file
the same phrase via plain git grep -F
exit 1, no match — the failure mode the scan is built against
NONSENSE control
0
stage-2 narrowing
214 claim-shaped files → 33 package source files, each read against the truth for the package it is about
⭐ That positive control shares the target's failure mode, not merely its channel. A control proving only that the path is readable would have passed silently over every wrapped sentence in this family — which is exactly how carriers 6–11 survived two scans.
⚠️ This seat's own re-measurement of claim presence used the same normalisation (comment prefixes stripped, backticks and quotes removed, whitespace collapsed) and found a claim-shaped sentence in all six files, with a nonsense control (…exec-context-annotation.NOSUCH.pin.ts) absent at git show exit 128.
⛔ Verified NON-carriers — recorded so the next sweep does not re-open them
packages/core, packages/rest/src/plugin-metadata-retired-fields.pin.test.ts, packages/rest/src/plugin-type-closed-set.pin.test.ts, packages/runtime/src/sandbox/quickjs-runner.test.ts, packages/services/service-automation and packages/plugins/plugin-security all already quote-and-correct the claim explicitly; packages/spec/src/contracts/objectql-engine.ts states it in the past tense about another package. ⛔ None is a carrier.
⛔ Whether packages/cli's build program also compiles the two src/**/*.test.ts carriers. packages/cli/tsconfig.json has no exclude key at all, which makes it plausible and ⛔ unmeasured. I did not run --listFiles.
⛔ A count of carriers beyond these six. The scan reached three new wordings; a fourth wording is not excluded, and "I fixed the eleventh and did not look" is how a twelfth gets filed.
Dedupe
Repo-scoped semantic search (46 results, top 12 read) plus a targeted read of the two family cards.
Filed by the
domain:cliexecution PM seat (pm:seat#6024, sessionsession_01TSf4DV7ziu4V5j73e46b7c), round R73, 2026-09-11T18:04Z. Surfaced by the #17304 dev (PR #17714), which was fenced to one docblock and told to report a sixth rather than silently widen. It did — and found six, in three further wordings. ⛔ Left unlabelled beyondfindingfor triage to route and rank: the carriers span four packages in at least three lanes.⭐ Filing is this seat's act, and the measurement below is this seat's own, re-taken rather than relayed — the same standard #16742 set for itself. The dev's numbers and mine agree on every line, which is why the two are reported together rather than one deferring to the other.
The family, and why a third card exists
typecheckscript (DEBT ledger entry)" — false for all three packages named; the DEBT ledger holds four other packages entirely #16742 (closed) — the parent: six carriers claiming "this package has notypecheckscript (DEBT ledger entry)". Repaired by a scan keyed to the fragmenthas no typecheck script.typecheck-script premise, in a wording #16742's scan cannot match —rest-api-plugin-slot-lookups.test.tssays NO tsc program compiles it #17304 (open, PR docs(rest): replace the slot-lookup pin's false "no tsc program compiles this" premise with the measured reason #17714) — the fifth carrier the scan could not match, because it spells itdeclares no typecheck scriptand saysDEBT/TEST_DEBT ledger entry.typecheckscript nor a ledger, so no phrase-keyed scan of any spelling could ever have reached them.⇒ the transferable half is not the seventh fix. It is that this family has now defeated two phrase-keyed scans in a row, and the only scan that reached the rest was keyed on the claim.
The carriers, each re-measured on
origin/mainby this seatEvery file below asserts its claim as live justification for a runtime-pin placement — ⛔ not quoted-and-corrected, which is how the verified non-carriers at the bottom read.
packages/lint/src/runtime-gate.derived-context-keys.test.tstsconfig.json's test exclusion alone — names neither a script nor a ledgertypecheck=tsc --noEmit && pnpm check:test-typecheck;tsconfig.test.jsoninclude=["src/**/*"]packages/cli/src/utils/format.exit-code.test.tspackages/cli/test/)typecheckdeclared;tsconfig.test.jsoninclude=["test/**/*", "vitest.config.ts", "vitest-tiers.ts", "vitest-tiers.fixtures.ts"]— it reads exactly that directorypackages/cli/src/commands/validate-json-strict-exit.e2e.test.tspackages/plugins/plugin-sharing/src/exec-context-annotation.pin.tstypecheck=tsc --noEmit && tsc --noEmit -p tsconfig.scripts.json && pnpm check:test-typecheck;tsconfig.test.jsoninclude=["src/**/*"]packages/plugins/plugin-sharing/src/logger-required-warn.pin.tspackages/plugins/plugin-approvals/src/exec-context-annotation.pin.tstypecheckas above;include=["src/**/*"]The ledgers, re-derived from the object literals themselves
⛔ Not from a whole-file grep — #16742 records that such a count is not evidence, and #17304 records a whole-file count of
6for a package that is in neither ledger.@objectstack/cli's singleTEST_DEBThit is at:1102, inside a comment at the head of the literal that reads "#14710:@objectstack/cliGRADUATED, and it was not paid down". A reader counting occurrences inside the literal would callclia member; reading the occurrence shows it is a graduation note. ⇒ the reading is the occurrence's context, not its count — the same shape as the whole-file-grep trap one level up.@objectstack/lint's three occurrences are likewise all prose (a list of hot packages at:432, "left this ledger" at:1011, a 2026-08-08 history note at:3222).An instrument of mine that was NOT a reading, recorded so nobody repeats it
My first brace-depth key extractor reported
TEST_DEBTas 4 top-level keys — three of them literallytype— because the depth tracking mis-counts nested object values. ⛔ That output is not a ledger reading. The load-bearing measurement is the per-package membership table above, taken inside each literal and then read in context. Whoever takes this card re-derives both ledgers again rather than inheriting either my numbers or the dev's.How the scan that found them was keyed and controlled
Reported by the dev and stated here because the control design is the reusable part: normalise each tracked text file (strip block/line comment continuation prefixes, strip backticks and quote characters, collapse to one whitespace-joined string), then match on the claim — a package or directory is not compiled / has no typecheck script / is a ledger entry — never on a phrase.
git grep -F⭐ That positive control shares the target's failure mode, not merely its channel. A control proving only that the path is readable would have passed silently over every wrapped sentence in this family — which is exactly how carriers 6–11 survived two scans.
…exec-context-annotation.NOSUCH.pin.ts) absent atgit showexit 128.⛔ Verified NON-carriers — recorded so the next sweep does not re-open them
packages/core,packages/rest/src/plugin-metadata-retired-fields.pin.test.ts,packages/rest/src/plugin-type-closed-set.pin.test.ts,packages/runtime/src/sandbox/quickjs-runner.test.ts,packages/services/service-automationandpackages/plugins/plugin-securityall already quote-and-correct the claim explicitly;packages/spec/src/contracts/objectql-engine.tsstates it in the past tense about another package. ⛔ None is a carrier.What is NOT measured here
typecheckscript (DEBT ledger entry)" — false for all three packages named; the DEBT ledger holds four other packages entirely #16742's four rows survived on a better reason; [finding] A FIFTH carrier of #16742's falsetypecheck-script premise, in a wording #16742's scan cannot match —rest-api-plugin-slot-lookups.test.tssays NO tsc program compiles it #17304's did not (its "phantom" ground died, and the dev derived a real reason instead). ⇒ whoever takes this must measure program membership per file —tsc --listFileswith a firing and a nonsense control — before rewriting any reason, exactly as docs(rest): replace the slot-lookup pin's false "no tsc program compiles this" premise with the measured reason #17714 did.packages/cli's build program also compiles the twosrc/**/*.test.tscarriers.packages/cli/tsconfig.jsonhas noexcludekey at all, which makes it plausible and ⛔ unmeasured. I did not run--listFiles.Dedupe
Repo-scoped semantic search (46 results, top 12 read) plus a targeted read of the two family cards.
typecheck-script premise, in a wording #16742's scan cannot match —rest-api-plugin-slot-lookups.test.tssays NO tsc program compiles it #17304 (open,pm:dispatched, PR docs(rest): replace the slot-lookup pin's false "no tsc program compiles this" premise with the measured reason #17714 in flight) — the fifth carrier, one docblock, explicitly fenced. These six are outside that fence. ⛔ Not a duplicate, and ⛔ do not fold them in: an unreviewed widening is what [finding] A FIFTH carrier of #16742's falsetypecheck-script premise, in a wording #16742's scan cannot match —rest-api-plugin-slot-lookups.test.tssays NO tsc program compiles it #17304 exists instead of.typecheckscript (DEBT ledger entry)" — false for all three packages named; the DEBT ledger holds four other packages entirely #16742 (closedcompleted,domain:devx) — the parent, repaired. This card is its continuation, filed as a new card for the same reason [finding] A FIFTH carrier of #16742's falsetypecheck-script premise, in a wording #16742's scan cannot match —rest-api-plugin-slot-lookups.test.tssays NO tsc program compiles it #17304 was.typecheckand discoverable only by a full-closure build — 8 packages in that state (was 19; re-measured 2026-09-05) #12511 (open,pm:queue,domain:devx) — "a type error in a ledgered package's tests is invisible to its owntypecheck". That is real invisibility in 8 packages; this card is false claims of invisibility in 4 others. Adjacent, opposite, ⛔ not a duplicate.check:type-check-debtcannot be measured under the NODE_OPTIONS ceiling its callers mandate — tsc OOMs at 4033/4096 MB and the gate falls to exit 3, so a lane derives it, runs it, and never reads it #17708 (open,finding) —check:type-check-debtunmeasurable under its callers'NODE_OPTIONSceiling. Same ledger, different defect.service-automationhas notypecheckscript — its test layer is compiled by no tsc program (#14062 family, sibling of #14181) #15048 · tooling(services):service-knowledgehas notypecheckscript — its test layer is compiled by no tsc program (#14062 family, sibling of #14181) #15049 · tooling(services):service-storagehas notypecheckscript — its test layer is compiled by no tsc program (#14062 family, sibling of #14181) #15050 (all closed) — three packages that genuinely had notypecheckscript, in the [finding] No plugin package has a tsc program that compiles its tests — plugin-approvals alone hides 345 type errors, and 0 of 14 are in the test-typecheck ledger #14062 family. They are the shape these carriers describe and no longer are; their closure is part of why the claims went stale.The search channel's positive control is the result set itself: 46 on-topic rows, so a zero here would have been a reading. It was not a zero.
Generated by Claude Code