Found while sweeping multi-entry exports maps for unmeasured weight/safety subpath claims (H4 of #9772, PR #9802). Filed rather than folded in because the number needs judgement, not a mechanical correction — #9772's brief was "fold in only what is unambiguously false by your own measurement, card anything needing judgement".
The claim
packages/objectql/src/core.ts, lines 3-8 — the header of the ./core subpath entry:
Lean engine entry (ADR-0076). Exposes the data engine surface [...] WITHOUT the kernel plugin (ObjectQLPlugin), the kernel factory, or any metadata management (@objectstack/metadata-protocol). Embedders that want only the engine (e.g. a thin gateway) import from @objectstack/objectql/core so the 268KB metadata protocol is never pulled into their dependency graph.
What I measured
Static import-graph walk over packages/objectql/src from each entry, value imports only (import type excluded), at main = 11b779e0f:
| entry | modules reached | src bytes | value import of @objectstack/metadata-protocol? |
|---|
. | 39 | 1,560,047 | yes |
./core | 31 | 1,326,133 (85.0%) | no |
The structural half of the claim is true and is the load-bearing half../core genuinely does not pull @objectstack/metadata-protocol into its graph, and the ADR-0076 D2 boundary ratchet the comment names is what keeps it that way. Nothing here suggests the entry is misdescribed the way @objectstack/lint's ./runtime was.
What does not reproduce
The 268KB figure. packages/metadata-protocol/src is 3,622,216 bytes today. That does not falsify the number — it is presumably a bundled size from the ADR-0076 round, and comparing like for like needs metadata-protocol built and its dist bundle measured, which I did not do (out of scope for #9772, and it is a build I had no reason to pay for on a prose card).
So the honest status is unverified, and probably stale: a hard byte figure written once at authoring time, in a comment whose whole rhetorical weight rests on it, with nothing in CI that re-measures it. That is the same shape #9772 was filed about — the difference is that there the surrounding claim was false too, and here it is not.
Suggested disposition (not a recommendation to act now)
Three options, cheapest first:
- Re-measure and update the figure. Build
metadata-protocol, stat the published bundle, write today's number. Cheap, and stale again in a month. - Drop the figure, keep the claim. "so
@objectstack/metadata-protocol is never pulled into their dependency graph" says everything the sentence needs and is exactly what the ADR-0076 D2 ratchet already enforces. A claim a gate holds true does not need a number a gate does not. - Leave it. It is a comment on an entry whose substantive claim is correct and machine-checked; a stale order-of-magnitude figure misleads far less than
./runtime's did, because acting on it lands the reader somewhere correct anyway.
My weak preference is (2) — it removes the only unpinned assertion in the sentence at zero cost and leaves the pinned one standing. But this is a judgement about how much precision a doc comment owes, which is why it is a card and not a commit.
Not in scope of this card
No change to ./core's contents, the exports map, or the ADR-0076 D2 ratchet. This is about one figure in one comment.
Refs: #9772 · #9707 · PR #9802
Found while sweeping multi-entry
exportsmaps for unmeasured weight/safety subpath claims (H4 of #9772, PR #9802). Filed rather than folded in because the number needs judgement, not a mechanical correction — #9772's brief was "fold in only what is unambiguously false by your own measurement, card anything needing judgement".The claim
packages/objectql/src/core.ts, lines 3-8 — the header of the./coresubpath entry:What I measured
Static import-graph walk over
packages/objectql/srcfrom each entry, value imports only (import typeexcluded), atmain=11b779e0f:@objectstack/metadata-protocol?../coreThe structural half of the claim is true and is the load-bearing half.
./coregenuinely does not pull@objectstack/metadata-protocolinto its graph, and the ADR-0076 D2 boundary ratchet the comment names is what keeps it that way. Nothing here suggests the entry is misdescribed the way@objectstack/lint's./runtimewas.What does not reproduce
The
268KBfigure.packages/metadata-protocol/srcis 3,622,216 bytes today. That does not falsify the number — it is presumably a bundled size from the ADR-0076 round, and comparing like for like needsmetadata-protocolbuilt and itsdistbundle measured, which I did not do (out of scope for #9772, and it is a build I had no reason to pay for on a prose card).So the honest status is unverified, and probably stale: a hard byte figure written once at authoring time, in a comment whose whole rhetorical weight rests on it, with nothing in CI that re-measures it. That is the same shape #9772 was filed about — the difference is that there the surrounding claim was false too, and here it is not.
Suggested disposition (not a recommendation to act now)
Three options, cheapest first:
metadata-protocol,statthe published bundle, write today's number. Cheap, and stale again in a month.@objectstack/metadata-protocolis never pulled into their dependency graph" says everything the sentence needs and is exactly what the ADR-0076 D2 ratchet already enforces. A claim a gate holds true does not need a number a gate does not../runtime's did, because acting on it lands the reader somewhere correct anyway.My weak preference is (2) — it removes the only unpinned assertion in the sentence at zero cost and leaves the pinned one standing. But this is a judgement about how much precision a doc comment owes, which is why it is a card and not a commit.
Not in scope of this card
No change to
./core's contents, theexportsmap, or the ADR-0076 D2 ratchet. This is about one figure in one comment.Refs: #9772 · #9707 · PR #9802