Skip to content

Commit ba2efa1

Browse files
committed
fix(tooling): judge the clause-2 level rule at the grain the declaration is made
`Check Changeset`'s level axis applied a PR-scoped declaration to every package whose `packages/*/src/**` the diff moved, and asserted about each of them that it had been widened. Measured on two PRs from one dispatch round: * PR #16342 @ 273247e -- spec `patch` + runtime `patch`, six new published STACK_* error codes. A correct fire. * PR #16347 @ 23443ce -- the widening is in `@objectstack/lint`, graded `minor` and never named by the gate; `@objectstack/spec` received one re-worded TSDoc comment, was graded `patch`, and was refused with the premise "a purely additive widening of a published package's public surface" -- false of that package. Clause 2 is declared once, for the PR: the carrier is a PR label and the `Clause-2:` line is a PR-body line, and neither names a package. The predicate is now the strongest thing that declaration entails, asked at its own grain: a PR that declares clause-2 `yes` must grade AT LEAST ONE package whose `packages/*/src/**` it moves at `minor` or above. Nothing reads the content of a diff hunk -- no tolerance, no allowlist, no comment-only skip. Only the quantifier moved. Two new verdicts keep the readings from collapsing into a tick: `discharged` (some moved packages are graded `patch`, one carries the level, and the gate prints what it is deliberately not refusing plus the residual it cannot see) beside `clean` (there was nothing of that shape at all). The `not-measured-*` materiality split reads the same single `refusable` predicate, so the unread lane cannot drift from the enforcing lane. The refusal message no longer claims each listed package was widened. It states what it can read, says out loud that it cannot tell which package received the act, and asks the author to raise the one that actually grew. Self-test: 179 -> 204 assertions; new battery "The GRAIN: a PR-scoped declaration judged at PR scope" at 25 cases; roster floor 14 -> 15. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012GKcPZbMoGq7WPzKLfRBTU
1 parent 9a89a00 commit ba2efa1

1 file changed

Lines changed: 401 additions & 43 deletions

File tree

0 commit comments

Comments
 (0)