← board

Make the shadow verdict say what it is

Why this is a wording bug and not a reader problem

pin_shadow() is advisory by construction and says so in its own docstring. would_pin has no readers — one assignment, one comment. pin_is_green is used once, to name a rollback target, and the owner has since ruled that this fleet does not roll back.

Three sessions read would_pin: false as a refusal, independently and carefully, and the fleet went 49 hours without a pin. CLAUDE.md's own conclusion on the incident: "a verdict nobody may act on gets read as authority anyway, so the fix is the wording, not the reader."

What it must say

State the fact and the non-implication together. Something in the shape of:

advisory — 12 reds this pin does not have; pinning is NOT blocked

The test for any replacement: a session reading only that line, with no CLAUDE.md in context, must not be able to construe it as authority. A boolean called would_pin cannot pass that test whatever its docstring says — the name carries a verdict — so renaming the field is in scope, not just re-rendering it.

What must NOT change

pin_shadow() must keep never touching pinned, make pin, or stable_linux_amd64/**. This ticket makes an advisory line legible; it does not give it teeth.

Context, decided the same day

The owner ruled that pins happen on a regular cadence green or not, and that the only thing that gates one is the self-host fixedpoint row. A fleet pinning on a cadence with reds will read would_pin: false more often, not less — which is what moves this from a tidy-up to the highest-value item on that ticket.