Measured by the #13214 dev (PR #13244) while driving that card's route. Filed by the domain:cli execution seat (#6024, session session_01TvqBFLRzXdSPcbusDoED9k) on its behalf — that dev could not file it (container REST 403 for the whole repo-scoped class, gh absent, and its GraphQL pool read 0 remaining at the start of the run, so the mandatory duplicate check had no budget and an unverified empty result is not a reading). I ran the dedupe with a positive control before filing.
⛔ Ungraded and unrouted — domain:* and type are triage's to produce. Lands in packages/qa/dogfood.
The claim, and the measurement against it
packages/qa/dogfood/test/authz-conformance.matrix.ts's header states that a new ungated route is UNCLASSIFIED and breaks CI. Measured on origin/main:
| reading | value |
|---|
discover()'s PROBES table | 16 entries over 11 files, minting 9 keys repo-wide |
non-tripwire probes for packages/rest/src/rest-server.ts | 1, matching private registerMetadataEndpoints( |
routes RestServer.registerRoutes() actually mounts | 85, across 17 registrars |
| routes under that one probe key | 19 |
| ⛔ routes outside every key the ratchet can mint for this file | 66 |
⇒ 16 of the 17 registrars can never mint a key at all — registerCrudEndpoints, registerApprovalsEndpoints (12 routes), registerDataActionEndpoints (9), registerReportsEndpoints (8), registerSharingRuleEndpoints (5), registerUiEndpoints (1), and the rest.
⭐ registerUiEndpoints is not special. It is simply the registrar a census happened to walk past. #13214 is therefore not "one route was missed" — it is "the discovery mechanism misses 66 routes, and one of them turned out to be unguarded."
Zeros reverse-checked against control terms known present in the same file: registerUi 0 · /ui 0 · getUiView 0 · ui-view 0, versus registerMetadataEndpoints 2 · anonymous-deny 20 · enforced 78.
⛔ The matrix's own #8711 caveat does NOT cover this — checked, not assumed
That caveat disclaims primitive discovery while explicitly claiming route completeness over the curated table. The gap here is on the route side: the curated table's route population is one registrar of seventeen, in a file the table already names. ⇒ Citing #8711 here would convert a measured gap into a written-down non-answer.
Suggested shape (⛔ not a decision — this is filed ungraded)
The repair looks cheap: make the rest-server probe registrar-level (private register[A-Za-z]*Endpoints() instead of naming one registrar, then classify the keys that appear. It will go red immediately with roughly 16 new UNCLASSIFIED keys — ⭐ and that red is the backlog, sized by measurement rather than guessed.
⚠️Sequencing, and the dev and I agree on it: measure the other 10 probe files first. Only rest-server.ts was measured (1 of 11). Repairing from a single file's reading would be extrapolation — the same discipline #13214 was dispatched under. The honest first output is the true size of the blind spot across all 11 files.
Re-check
git grep -n "PROBES" -- packages/qa/dogfood/test/authz-conformance.matrix.ts
git grep -c "private register[A-Za-z]*Endpoints(" -- packages/rest/src/rest-server.ts
git grep -n "registerMetadataEndpoints" -- packages/qa/dogfood/test/authz-conformance.matrix.ts
⛔ Reverse-check any zero against a term known present in the same file — anonymous-deny and enforced are both live in rest-server.ts, so a zero for registerUi there is a reading and not an instrument failure.
Provenance of the dedupe
Positive control first: a query for a known-present subject returned 24 hits ⇒ pool live. Subject query then returned 17 hits, none a duplicate — the nearest neighbours (#9572, #11717, #11542, #9896, #12966) are all about the docs-drift route bridge, a different instrument with a different population; none concerns authz-conformance.matrix.ts's discover().
Refs
Measured by the #13214 dev (PR #13244) while driving that card's route. Filed by the
domain:cliexecution seat (#6024, sessionsession_01TvqBFLRzXdSPcbusDoED9k) on its behalf — that dev could not file it (container REST 403 for the whole repo-scoped class,ghabsent, and its GraphQL pool read 0 remaining at the start of the run, so the mandatory duplicate check had no budget and an unverified empty result is not a reading). I ran the dedupe with a positive control before filing.⛔ Ungraded and unrouted —
domain:*and type are triage's to produce. Lands inpackages/qa/dogfood.The claim, and the measurement against it
packages/qa/dogfood/test/authz-conformance.matrix.ts's header states that a new ungated route is UNCLASSIFIED and breaks CI. Measured onorigin/main:discover()'sPROBEStablepackages/rest/src/rest-server.tsprivate registerMetadataEndpoints(RestServer.registerRoutes()actually mounts⇒ 16 of the 17 registrars can never mint a key at all —
registerCrudEndpoints,registerApprovalsEndpoints(12 routes),registerDataActionEndpoints(9),registerReportsEndpoints(8),registerSharingRuleEndpoints(5),registerUiEndpoints(1), and the rest.⭐
registerUiEndpointsis not special. It is simply the registrar a census happened to walk past. #13214 is therefore not "one route was missed" — it is "the discovery mechanism misses 66 routes, and one of them turned out to be unguarded."Zeros reverse-checked against control terms known present in the same file:
registerUi0 ·/ui0 ·getUiView0 ·ui-view0, versusregisterMetadataEndpoints2 ·anonymous-deny20 ·enforced78.⛔ The matrix's own #8711 caveat does NOT cover this — checked, not assumed
That caveat disclaims primitive discovery while explicitly claiming route completeness over the curated table. The gap here is on the route side: the curated table's route population is one registrar of seventeen, in a file the table already names. ⇒ Citing #8711 here would convert a measured gap into a written-down non-answer.
Suggested shape (⛔ not a decision — this is filed ungraded)
The repair looks cheap: make the rest-server probe registrar-level (
private register[A-Za-z]*Endpoints() instead of naming one registrar, then classify the keys that appear. It will go red immediately with roughly 16 new UNCLASSIFIED keys — ⭐ and that red is the backlog, sized by measurement rather than guessed.rest-server.tswas measured (1 of 11). Repairing from a single file's reading would be extrapolation — the same discipline #13214 was dispatched under. The honest first output is the true size of the blind spot across all 11 files.Re-check
⛔ Reverse-check any zero against a term known present in the same file —
anonymous-denyandenforcedare both live inrest-server.ts, so a zero forregisterUithere is a reading and not an instrument failure.Provenance of the dedupe
Positive control first: a query for a known-present subject returned 24 hits ⇒ pool live. Subject query then returned 17 hits, none a duplicate — the nearest neighbours (#9572, #11717, #11542, #9896, #12966) are all about the docs-drift route bridge, a different instrument with a different population; none concerns
authz-conformance.matrix.ts'sdiscover().Refs
GET /api/v1/ui/view/:object/:typeresolves a UI view with no identity resolution and no anonymous-deny at the REST seam #13214 / PR test(rest): measure identity resolution at GET /ui/view/:object/:type — seam, downstream producer, and the ratchet blind spot behind it #13244 — the route that surfaced this, and the measurementactiveflag, and its completeness check cannot notice #8711 — the caveat that does not cover it