Skip to content

finding: the published-README baseline's own $comment says it was "seeded from the five instances" — it shipped with 16 entries, and the number is the one thing a shrink-only ledger's reader counts #9649

Description

@os-steve

Observation only — no gate is red, and nothing here blocks anything. Recording it because the file is ⛔ MAINTAINER-ONLY and its $comment is the provenance a later reader consults before touching entries.

What it says

scripts/published-readme-exports.baseline.json, in its $comment block:

"Seeded from the five instances #9532 measured. They are the worklist for the per-package",
"README rewrites (the other half of that card) — when a rewrite lands, its entry goes.",
"The sixth instance, @objectstack/plugin-audit, was ... before this gate",
"landed and is deliberately ABSENT: it is the negative control, and the PR that added",
"this gate reports it clean.",

What the file actually did

Measured across the entries array at each commit that touched the file on origin/main:

commitlanded asentries
1c6da6eafPR #9546, the PR that added the gate16
f01c0ee2dPR #9602, five service READMEs10
(this branch, PR #9581)four more published READMEs5

So the file was seeded with 16 entries, not five. The "five instances" and "the sixth instance" framing describes the scope of card #9532 — five service READMEs plus plugin-audit as the negative control — but it reads, in a ledger whose entire contract is its count, as a statement about the file. A reader who counts entries and compares against the prose gets a mismatch of eleven.

Why it is worth a line rather than nothing

The header of this same block is emphatic that the ledger's authority rests on being readable and trusted (a baseline that can only grow rots into a list nobody trusts). The prose that establishes provenance is the part a maintainer reads before deciding whether an entry is safe to delete. It currently under-describes the file by 11 entries, and as the baseline shrinks toward zero the gap between "five" and the real count keeps changing meaning.

The negative-control sentence about plugin-audit is separately correct and load-bearing, and was re-verified while measuring this: with a fabricated symbol injected into packages/plugins/plugin-audit/README.md, the gate reports it (1 undocumented symbol claim(s)), and with the file untouched it reports nothing. That package is scanned and clean, not merely unbaselined. Nothing in this finding argues for changing that sentence.

Suggested shape, if triaged as worth doing

Rewrite the provenance sentence to say what the file holds versus where the entries came from — e.g. name the seeding PR and let the count be read from the file rather than asserted in prose, the same reasoning scripts/check-required-contexts.mjs records for its own carries field (prose here reads as measurement while being asserted by nothing). No entry changes either way.

Found while landing the baseline reconciliation for #9544. Not touched there: that PR is constrained to deleting exactly its own five entries.

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