Skip to content

bare-root-worklist: the one DECLARED-NARROWER row with no spelling sits outside the new declaration pin, and its gate does declare a hint #15270

Description

@claude

The declaration pin added in #15201 holds every DECLARED-NARROWER record in
scripts/pm/bare-root-worklist.mjs SET-EQUAL to its gate's own declared hint array, read out
of the gate source. It reaches nine of the ten such rows. The tenth is outside it, by the
pin's own scoping rule rather than by oversight:

scripts/check-driver-conformance.mjs DRIVERS_DIR packages

That row carries verdict DECLARED-NARROWER and no spelling field, so there is no
recorded set for the pin to compare, and it is skipped. Meanwhile its gate does declare a
hint at that root — measured at a23603ea:

auditSource('scripts/check-driver-conformance.mjs', src)
  -> ROOT_DIR_WATCH_HINTS = ['packages/drivers/**']

So the record says "the gate took the escape, at a strictly narrower subtree" and names the
subtree only in prose. Nothing holds that prose to the array, which is exactly the class
#15201 measured one row over: the gate can widen or drop packages/drivers/** and this row
keeps its verdict with every pin in the file green.

Every other DECLARED-NARROWER row names a SPELLINGS entry. The docblock requires one only
for SPELLABLE-UNDECLARED ("⛔ Every record MUST carry a spelling"), so this row is not in
breach of any stated rule today — the question is whether that requirement should extend to
DECLARED-NARROWER, which is the verdict whose whole content is a claim about a declaration.

Shape of the repair (for whoever picks it up): measure the gate's walk and the tracked
population under packages/ on one tree, record a SPELLINGS entry for packages/drivers/**
with an independent holds, point the row at it, and then tighten the pin so a
DECLARED-NARROWER row without a spelling reds instead of being skipped — the floor that
stops the class from growing back. Both terms of that row must be measured together; the map's
docblock forbids refreshing one apart from the other.

Not urgent and nothing reds on it today. Found while implementing #15201, whose dispatch ruled
every other worklist row out of its file surface by name. Filed unassigned.

Generated by Claude Code


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions