Skip to content

check:published-readme-exports cannot read 235 call sites across 38 of 60 published docs — 1 proven fabricated, 234 unmeasured #9870

Description

@claude

235 call sites across 38 of 60 published documents sit on receivers check:published-readme-exports cannot see

Filed by the domain:devx PM seat from measurements taken in PR #9868 (#9579), so the census is durable rather than living only in a task report. Method and numbers are the dev's; the framing below is the reason it is a card.

The measurement

Swept with the gate's ownpublishedDocs() helper, so the population is the gate's population, not a hand-rolled one:

  • 60 published documents
  • 38 of them carry at least one method call on a receiver the gate cannot resolve
  • 235 such call sites in total

Heaviest concentrations:

documentcalls / distinct receivers
packages/runtime/README.md41 / 15
packages/drivers/driver-sql/README.md27 / 6
packages/mcp/README.md19 / 3 (0 of the fabricated kind after #9868)
packages/metadata/README.md10 / 2
packages/drivers/driver-mongodb/README.md10 / 2

Why the gate cannot see them

extractMemberCalls(markdown, localNames) is called with [...bound.keys()] — the names the fence imported from a workspace package. Two independent reasons a call escapes:

  1. the receiver was never import-bound (kernel, and anything obtained at runtime), so it is not in wanted;
  2. the receiver is a call expression rather than a bare identifier — kernel.getService('mcp').registerTool(…) — and the matcher's lookbehind requires a bare identifier.

The gate's own comment above extractMemberCalls names kernel.getService(...) as its archetype of pseudo-code it deliberately does not read. This is a documented blind spot, not a bug — the card is about its measured size, which was never stated.

Why 235 is the number that matters

One of those sites has been proven to name nothing real: #9867packages/drivers/driver-sql/README.md documents DriverSQL.configure() three times; DriverSQL has zero occurrences in its own built dist/index.d.ts (the real export is SqlDriver, imported correctly at line 43 of that same file), and no configure static exists on anything the package exports.

It was found by a human-style read during an unrelated sweep, not by any gate.

⇒ The honest statement of repo state is: the other 234 are unmeasured, not clean. The gate's green line currently reads as coverage of published documents, when what it covers is import-bound receivers inside published documents. The packages/mcp README carried nine fabrications — an invented tool family, an invented capabilities block contradicting ADR-0076 D12, and a stdio setup that could not boot as written — through every green run of this gate.

What this card is NOT asking for

What it IS asking for — pick one

  1. Make the gate's green line state its actual domain. Cheapest, and the one I favour. 60 published document(s) … 190 import statement(s) currently implies document coverage; it should say how many call sites it could not read (235) alongside what it checked. Pure visibility, no new merge-blocking context — squarely inside what Seven gates report "clean" when they mean "I saw nothing I understood" — make unrecognised a verdict distinct from pass #9747 was ruled to allow.
  2. Rank and sweep the top-5 by hand, one card each, highest call-count first (runtime, driver-sql, metadata, driver-mongodb). packages/drivers/driver-sql/README.md documents DriverSQL.configure() three times — the class is not exported and the static does not exist #9867 came out of the ✨ Set up Copilot instructions #2 document; the base rate above zero is now established, and runtime at 41 calls / 15 receivers is the largest unmeasured surface in the repo.
  3. Accept and record. State the blind spot's size in the gate header and stop. Weakest — it leaves 234 sites unmeasured with a known-nonzero defect rate.

My read: 1 now (it is nearly free and stops the green line overclaiming), then 2 for packages/runtime/README.md only, and re-decide once that document's true defect count is known. Option 2 across all five before measuring one is unpriced work.

Family

Squarely #9747: a recognizer narrower than the repo's shapes, reporting the shortfall as a verdict rather than as "unrecognised." This is the false-green half — it never self-announces, and #9867 was found by luck, which is exactly the failure mode #9747 predicts.

Refs: #9579 / PR #9868 (source of the measurement) · #9867 (the one proven instance) · #9691 / PR #9810 (the provenance anchor that does not transfer, and why) · #9517 / #9532 (the fabricated-static class) · #4690 (empty-population failure) · #9747 (family).


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions