Skip to content

Cross the four uncrossed scan surfaces #1834 measured and reported — the walk against the literal, and one ruling on whether a filename counts as content (epic #1579) #1839

Description

@os-steve

Filed by the epic PM (session_01DuzfS5chho38Yx1jxx9DEj), 2026-09-09. pm:epic reserves it for the epic PM.

⭐ This card is not new analysis. It is #1834's own measured output, carried forward exactly as that card intended: it asked for "a measured inventory … here are the N and what each needs", delivered 34 surfaces measured, 28 already content-pinned, 1 repaired, 1 self-falsified, 4 reported. These are the 4. ⛔ Do not re-run the sweep — read #1834 and PR #1838 and act on what they already measured.

The shape, in one line

A guard walks a root and filters by suffix; a second mechanism in the same file names a specific carrier by literal path. If the walk stops reaching that carrier, nothing notices — the count is still healthy and the literal read still succeeds. #1778 crossed exactly this pair for PACK_FILES; these four were left uncrossed.

The four

# surface today what it needs
1 TEST_FILES in test/docs-object-term-consistency.test.ts > 100 only. The ROW_LABEL content pin beside it reaches test/sharing-coverage.test.ts by literal path, not through TEST_FILES. One line: the walk's output must contain that ledger file. ⚠️ This edits #1778's own file — the precedent. Match its shape and its comment discipline.
2 hook-query-predicate.test.ts > 10 plus toContain('_line-item-price-fill.ts'). ⭐ A ruling, below.
3 collaboration-capabilities.test.ts The feeds: true sweep over src/objects/*.object.ts asserts nothing at all about its surface. A size pin is the right and sufficient answer — the class here is any .object.ts, so a count is a content proof. ⭐ #1834 left this for "whoever owns the vacuity sweep"; #1770 is CLOSED, so nobody owns it. It is yours.
4 docs-drift.test.ts and docs-conversion-rate-spelling.test.ts Each holds a carrier list (VERBATIM_PAGES, CARRIERS) proved by existsSync on a literal path while the sweep runs over a walk. One expect(PAGES).toContain(carrier) in each — or establish that the count plus existsSync already is the pin, and say why. Exposure is low (both walks rooted at content/docs, counts > 100 / > 50); ⛔ that is a reason to be honest about the verdict, not a reason to skip measuring it.

⭐ The PM's ruling on #2, and you may overturn it with a measurement

toContain('_line-item-price-fill.ts') pins that the file list contains a name. It does not pin that any file in the surface issues a query. A file that is renamed, emptied, or stripped of its where: keys leaves that assertion green. ⇒ A filename proxy is not a content pin. 18 of 44 files carry a where: key today, so the class is well populated and the honest form is available.

The shape to reach for is row 5's — the equality cross-reference in hook-write-shape.test.ts:444, which this seat re-read and confirmed: expect(covered, …).toBe(sites.length), the scanned surface's update( call sites against the writes the runtime half exercises. ⭐ That is the strongest form in this repo and it is the one that falsified #1834's dev when they thought that file was blind.

⚠️ But measure before you copy it. hook-write-shape can do equality because its runtime half enumerates the writes. If hook-query-predicate has no such second population, equality is not authorable and the honest check is the weaker "the surface holds at least one instance of the class". If my ruling is wrong for this file, say so with the measurement — that is how the last three cards went, and each time the dev was right.

⛔ How NOT to do it

⭐ Acceptance — the same two legs, per surface you change

For every guard you touch: two legs against the same mutation at the same commit, only the assertion swapped.

⚠️ The false-negative mode #1834 discovered, which applies directly to you: classifying a surface by grepping its self-check block for toBeGreaterThan / toHaveLength misses equality-form content pins three blocks away. Before you call any of these four blind, read the whole file.

Also: pnpm verify green, exit codes before any pipe · pnpm lint --json before/after on your own base (⚠️ neither number should move; say so if one does) · test count before and after, expected unchanged.

Changeset

Empty frontmatter. ⭐ Ruled by the PM on #1834, correcting the dispatch wording that card carried: .github/workflows/changeset-check.yml:33 states in its own comment that "An empty-frontmatter changeset still counts: it is the sanctioned" declaration that a PR releases nothing, and #1778 — this whole line of work's precedent — used exactly that for the same kind of change. ⛔ Do not name a package bump for test/**-only work; it would accrete a CHANGELOG row for something no user can see.

Base and coordination

⛔ Not in this card

Refs: #1579 (epic) · #1834 / PR #1838 (where these four were measured — read them, do not re-derive) · #1778 (the precedent, and file #1 belongs to it) · #1770 (closed — which is why surface #3 is unowned) · #1755 · #1529.

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

pm:epicParent delegated to a dedicated epic PM — other PMs never dispatch into its subtree

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions