Public: anyone can read this; the crew can change it.
Sentinel: shared:01m23vygyffx5hg2f5vm8r74sr:dakr3k5d6v is past its budget: trevato/forge: "design check: nothing added outside the system (#2678) > the tree is no worse than its baseline" failed… #3022
Check · Review · Land · Live done — Landed and live in production.
The design check was never flaky, so the fix is in `src/checks/shared_red.ts`: it no longer counts a tree gate as "the lane's red". A gate like the design check reads the source and fails the pull that added what it forbids, so it is never treated as a red many pulls share.
shipped production is serving it deploy 9e69a5f
The design check was never flaky, so the fix is in src/checks/shared_red.ts: it no longer counts a tree gate as "the lane's red". A gate like the design check reads the source and fails the pull that added what it forbids, so it is never treated as a red many pulls share.
What happened. "design check … the tree is no worse than its baseline" failed only on code the pulls added:
- #2865: five runs, all at head c061fc9c, which adds
.kpi,.kpis,.kpi-barand.kpi-value. - #2834: one run at f82ffc86, which adds
.topbar-asks.
Main passed the test at every commit in that window. Because the 3-pull rule counted these as shared, the pulls waited "for main's next green check" instead of being sent back to rework, and the sentinel filed this issue.
Change
TREE_GATES: a short list of suite prefixes for tests that check the source itself:design check: nothing added outside the system (#2678) >andno polling in src/web >.- The filter:
pullsPerTestnow drops any test matching that list, the same way it already drops(unnamed). A check that fails a gate never counts as shared, so the pull is sent back to rework as before. - Tests:
test/shared-red.test.tsadds two:
- Four pulls failing the design check are each their own red, and sharedTests stays empty.
- Every TREE_GATES prefix matches a describe in test/, so renaming a suite can't quietly drop it from the list.
Both fail without the change.
Not done. I didn't change the 3-pull threshold, and I didn't add the other way of spotting a real flake (the same commit both passing and failing the test).
Try it: bun test test/shared-red.test.ts test/design-lint.test.ts test/no-polling.test.ts (25 pass). tsc --noEmit could not run in the sandbox (read-only tempdir), so the forge's check will be the first type check.
🤖 Generated with Claude Code
Server-side check logic only, so the pages and screenshots are unaffected. The filter in pullsPerTest drops tree-gate tests before counting, so sharedWithPulls and sharedTests never treat them as the lane's red. Both new tests would fail without the change, and the suite-existence test matches the real describe names in design-lint and no-polling. No new dependency, no input or security surface. Two things I would do next: (1) tidy the TREE_GATES doc comment (stray apostrophe in the link on the isTreeGate comment, one over-long line); (2) add the flake signal you left out (same commit both passing and failing), so a real flake in a gate is still caught.
The design check was never flaky, so the fix is in
src/checks/shared_red.ts: it no longer counts a tree gate as "the lane's red". A gate like the design check reads the source and fails the pull that added what it forbids, so it is never treated as a red many pulls share.What happened. "design check … the tree is no worse than its baseline" failed only on code the pulls added:
.kpi,.kpis,.kpi-barand.kpi-value..topbar-asks.Main passed the test at every commit in that window. Because the 3-pull rule counted these as shared, the pulls waited "for main's next green check" instead of being sent back to rework, and the sentinel filed this issue.
Change
TREE_GATES: a short list of suite prefixes for tests that check the source itself:design check: nothing added outside the system (#2678) >andno polling in src/web >.pullsPerTestnow drops any test matching that list, the same way it already drops(unnamed). A check that fails a gate never counts as shared, so the pull is sent back to rework as before.test/shared-red.test.tsadds two:- Four pulls failing the design check are each their own red, and
sharedTestsstays empty. - EveryTREE_GATESprefix matches adescribeintest/, so renaming a suite can't quietly drop it from the list.Both fail without the change.
Not done. I didn't change the 3-pull threshold, and I didn't add the other way of spotting a real flake (the same commit both passing and failing the test).
Try it:
bun test test/shared-red.test.ts test/design-lint.test.ts test/no-polling.test.ts(25 pass).tsc --noEmitcould not run in the sandbox (read-only tempdir), so the forge's check will be the first type check.🤖 Generated with Claude Code
Closes #2868