Skip to content

Commit ae19f5e

Browse files
claude[bot]claude
andauthored
feat(pm): census the open cards whose named changeset target is already consumed (#17245)
A card whose deliverable is one line in a pending `.changeset/*.md` carries a hard deadline that nothing measured: once a release compiles the file into `packages/<pkg>/CHANGELOG.md` the one-line edit is gone, while the card's prose goes on asserting the file is "still pending" forever. `scripts/pm/changeset-deadline-census.mjs` is the detection half, report-only: it scans open issue BODIES for concrete `.changeset/<name>.md` paths and reports each target's state on the ref. Presence is a LINE COUNT corroborated against a single `.changeset/` listing — never an exit code, because `git ls-tree` exits 0 when nothing matches — and every run establishes a corpus, a positive and a negative control before it judges a row, refusing outright when one fails. An absent path is asked whether it ever landed, inside a history horizon proved per row against the card's own filing date, so a shallow clone yields `inconclusive` rather than a guess. The blind spots are printed by every run. Nothing here fails a build: the new population is censused before anything is enforced. Only the offline self-test runs in CI. Claude-Session: https://claude.ai/code/session_012GKcPZbMoGq7WPzKLfRBTU Co-authored-by: Claude <noreply@anthropic.com>
1 parent c1d54db commit ae19f5e

3 files changed

Lines changed: 821 additions & 0 deletions

File tree

.github/workflows/lint.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1103,6 +1103,28 @@ jobs:
11031103
- name: Widening-tell gate self-test
11041104
run: pnpm check:pm-widening-tells
11051105

1106+
# Changeset-deadline census self-test (#16850) — same family and the same
1107+
# split as every step around it. The LIVE census reads the shared board
1108+
# over the API and is REPORT-ONLY by ruling: #16850 takes option 1 (detect
1109+
# the consumption) under this lane's standing rule that a NEW scan
1110+
# population — here, issue BODIES — is censused before anything is
1111+
# enforced. So a card whose changeset window closed is a fact about the
1112+
# board, not about the PR that happens to run CI next, and failing that
1113+
# PR would punish the wrong actor.
1114+
#
1115+
# ⛔ Do not "promote" the live census into this step, and ⛔ do not give it
1116+
# a failing exit on findings. Whether the number justifies an exit
1117+
# contract at all is the question the census exists to answer, and the
1118+
# answer it produced on 2026-09-09 is in the PR that landed this file.
1119+
#
1120+
# What the self-test instruments is the MATCHING RULE and the CONTROLS —
1121+
# the two things a clean tree cannot exercise. Weakening either (counting
1122+
# the glob spelling as a target; accepting a zero without its positive
1123+
# control) leaves a production run just as green, which is the shape
1124+
# `check:self-test-wired` requires this step for.
1125+
- name: Changeset-deadline census self-test
1126+
run: pnpm check:pm-changeset-deadline-census
1127+
11061128
# Governed-merges audit self-test (#9495) — same family, same split as
11071129
# the half-state sweeper above: the live sweep enumerates the governed
11081130
# merges since a date/ref for the PM round report — report-only by

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
"check:pm-clause2-carriers": "node scripts/pm/check-clause2-carriers.mjs --self-test",
8080
"check:pm-widening-tells": "node scripts/pm/check-widening-tells.mjs --self-test",
8181
"check:pm-closed-card-sweep": "node scripts/pm/sweep-closed-cards.mjs --self-test",
82+
"check:pm-changeset-deadline-census": "node scripts/pm/changeset-deadline-census.mjs --self-test",
8283
"check:pm-governed-merges": "node scripts/pm/check-governed-merges.mjs --self-test",
8384
"check:pm-governed-prose": "node scripts/pm/check-governed-prose.mjs --self-test && node scripts/pm/check-governed-prose.mjs",
8485
"check:publish-smoke-pin": "node scripts/publish-smoke-pack.mjs --self-test",

0 commit comments

Comments
 (0)