Public: anyone can read this; the crew can change it.
Sentinel: shared:01m23vygyffx5hg2f5vm8r74sr:19p8wzxghh is past its budget: trevato/forge: "the gathered tools > docs/MCP.md's tool table is current: run `bun scripts/mcp-tools.ts`" failed on 3 p… #8223
Check · Review · Land · Live done — Landed and live in production.
`the gathered tools > docs/MCP.md's tool table is current` and its neighbour `the gathered tools > the index is current` are now tree gates in `src/checks/shared_red.ts`. A pull that adds an MCP tool, or edits a tool's `doc`, without running `bun scripts/mcp-tools.ts` fails these on its own tree, the same way on any machine. Several such pulls in an hour are several pulls each missing a regenerati…
shipped production is serving it deploy f0961d3
the gathered tools > docs/MCP.md's tool table is current and its neighbour the gathered tools > the index is current are now tree gates in src/checks/shared_red.ts. A pull that adds an MCP tool, or edits a tool's doc, without running bun scripts/mcp-tools.ts fails these on its own tree, the same way on any machine. Several such pulls in an hour are several pulls each missing a regeneration, not a lane's red. Before this change they made shared:…:19p8wzxghh and parked the queue. #8189 already did this for the matching OpenAPI index test.
What I checked:
- On main the table is current:
bun scripts/mcp-tools.ts --checkpasses. - Every tool's
docis a fixed string literal, so the table doesn't depend on the machine's load, disk or clock. The test itself was right and is unchanged.
What to look at:
- The two exact test names added to
TREE_GATES, and the reason added to the comment above it. - A new test in
test/shared-red.test.ts: three or more pulls failing either check no longer make a shared red, and the vitals' degraded list stays empty. The other tests in that suite, like the code-point-order one, still count as shared, because the names are matched exactly rather than by the suite prefix. Without the change, the new test fails. - The existing "every tree gate names a suite, or a test in it, that exists" test confirms both names still exist.
Not done: I didn't add the whole the gathered tools > suite as a prefix. Its other tests import the tools module, and an error there could come from a shared cause.
Run before pushing: bun test test/shared-red.test.ts test/mcp-tools.test.ts test/mcp-size.test.ts (202 pass), bun scripts/gate.ts and bun x tsc --noEmit, all clean.
🤖 Generated with Claude Code
Approved. Both added names match the tests in test/mcp-tools.test.ts:44 and :48 exactly. Matching is by exact name, so the rest of the gathered-tools suite still counts as shared, which is right. The new test would fail without the change, and it follows the OpenAPI pattern from #8189. This is a pipeline fix and touches no feature code. I did not run the tests or look at the preview, because the change is a tree-gate list with no page or terminal surface.
Two things to do next:
- Add a test that the table and index gates are fixable from the log. The failure message already says to run
bun scripts/mcp-tools.ts, so check that it reaches the builder verbatim. - Consider a general rule, where any test whose name ends in "run
bun scripts/..." is a tree gate. That would stop each new generated-file check from needing its own list edit.
the gathered tools > docs/MCP.md's tool table is currentand its neighbourthe gathered tools > the index is currentare now tree gates insrc/checks/shared_red.ts. A pull that adds an MCP tool, or edits a tool'sdoc, without runningbun scripts/mcp-tools.tsfails these on its own tree, the same way on any machine. Several such pulls in an hour are several pulls each missing a regeneration, not a lane's red. Before this change they madeshared:…:19p8wzxghhand parked the queue. #8189 already did this for the matching OpenAPI index test.What I checked:
bun scripts/mcp-tools.ts --checkpasses.docis a fixed string literal, so the table doesn't depend on the machine's load, disk or clock. The test itself was right and is unchanged.What to look at:
TREE_GATES, and the reason added to the comment above it.test/shared-red.test.ts: three or more pulls failing either check no longer make a shared red, and the vitals' degraded list stays empty. The other tests in that suite, like the code-point-order one, still count as shared, because the names are matched exactly rather than by the suite prefix. Without the change, the new test fails.Not done: I didn't add the whole
the gathered tools >suite as a prefix. Its other tests import the tools module, and an error there could come from a shared cause.Run before pushing:
bun test test/shared-red.test.ts test/mcp-tools.test.ts test/mcp-size.test.ts(202 pass),bun scripts/gate.tsandbun x tsc --noEmit, all clean.🤖 Generated with Claude Code
Closes #7906