Found while implementing the org-less write declaration on the same ledger. ⛔ Filed unassigned and NOT repaired in that PR — it is a separate fact about the ledger's prose, not about its verdicts.
The drift
packages/objectql/src/tenancy/platform-object-tenancy.ts's header states, as the measurement that justifies the ledger existing at all:
Measured on this tree by AST census of every ObjectSchema.create in packages/:
Re-derived at 84b8190ae by the same method:
| reading |
documented |
measured |
| platform-namespace objects registered in this repo |
84 |
84 |
| resolve NO tenant field |
25 |
28 |
| carry a tenant column |
59 |
56 |
The total is unchanged, which is what makes the split worth a card rather than a re-count: the same 84 objects, three of which have moved OUT of the machinery's reach since the header was written. sys_api_key now carries tenancy.enabled: false alongside sys_sso_provider (the header names only the latter), and the managedBy: 'better-auth' population is 28 rather than 24.
Why this is worth repairing rather than leaving
The header is not commentary. It is the argument for why the ledger is a hand-adjudicated file instead of a schema read — "a schema read admits 59 of 84 in one stroke, i.e. it replaces a wholesale exemption with a wholesale inclusion" — and that sentence is quoted from a number that is now wrong. The reasoning survives at 56/84 unchanged, so nothing about the design is in question; what is at stake is that the next adjudication will read these figures as current and may quote them onward, exactly as this one nearly did.
⚠️ Note the shape of the failure: the numbers were correct when written and nothing broke them — objects were added and reclassified by unrelated PRs, and no gate holds this prose to the tree. So the drift is silent and recurs.
Suggested repair
Two options, and the second is the one worth costing:
- Re-measure and rewrite the three figures, naming the tree they were measured on. Cheap, and it drifts again.
- Make the census re-derivable the way the tenant-audit census already is (
scripts/tenant-audit-census.mjs + its committed page + scripts/check-tenant-audit-census.mjs) — that instrument's own header argues precisely this case: "a census that decides a repair family's severity and a ruling's scope is not a comment. It is a re-runnable instrument plus a committed page." This header's census decides the ledger's whole justification, so it has the same claim on that treatment.
⛔ No verdict in PLATFORM_OBJECT_TENANCY is affected. Every classification and its evidence stand; this is only the header's arithmetic.
Found while implementing the org-less write declaration on the same ledger. ⛔ Filed unassigned and NOT repaired in that PR — it is a separate fact about the ledger's prose, not about its verdicts.
The drift
packages/objectql/src/tenancy/platform-object-tenancy.ts's header states, as the measurement that justifies the ledger existing at all:Re-derived at
84b8190aeby the same method:The total is unchanged, which is what makes the split worth a card rather than a re-count: the same 84 objects, three of which have moved OUT of the machinery's reach since the header was written.
sys_api_keynow carriestenancy.enabled: falsealongsidesys_sso_provider(the header names only the latter), and themanagedBy: 'better-auth'population is 28 rather than 24.Why this is worth repairing rather than leaving
The header is not commentary. It is the argument for why the ledger is a hand-adjudicated file instead of a schema read — "a schema read admits 59 of 84 in one stroke, i.e. it replaces a wholesale exemption with a wholesale inclusion" — and that sentence is quoted from a number that is now wrong. The reasoning survives at 56/84 unchanged, so nothing about the design is in question; what is at stake is that the next adjudication will read these figures as current and may quote them onward, exactly as this one nearly did.
Suggested repair
Two options, and the second is the one worth costing:
scripts/tenant-audit-census.mjs+ its committed page +scripts/check-tenant-audit-census.mjs) — that instrument's own header argues precisely this case: "a census that decides a repair family's severity and a ruling's scope is not a comment. It is a re-runnable instrument plus a committed page." This header's census decides the ledger's whole justification, so it has the same claim on that treatment.⛔ No verdict in
PLATFORM_OBJECT_TENANCYis affected. Every classification and its evidence stand; this is only the header's arithmetic.