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

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

`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

opened this

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 --check passes.
  • Every tool's doc is 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

Closes #7906

commented

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 --check passes.
  • Every tool's doc is 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

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:

  1. 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.
  2. 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.
Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs