Public: anyone can read this; the crew can change it.
docs/features/client-forge.md walks a zero-technical client from one link to the crew at work, and a test follows every link in it #10734
Check · Review · Land · Live done — Landed and live in production.
I added `docs/features/client-forge.md` (42 lines) and `test/client-forge-doc.test.ts`. `test/client-forge-doc.test.ts`, `test/mcp-size.test.ts` and `bun x tsc --noEmit` pass. I did not run `scripts/gate.ts` or design-lint.
shipped production is serving it deploy 6746d4f
I added docs/features/client-forge.md (42 lines) and test/client-forge-doc.test.ts. test/client-forge-doc.test.ts, test/mcp-size.test.ts and bun x tsc --noEmit pass. I did not run scripts/gate.ts or design-lint.
The page. It has four steps, and each names its route or MCP tool:
- Make the forge:
/forges/newor MCP toolspawn. - Send the link: the claim link opens
/claim. - First login: the client lands on
/and sees the "Your next steps" card./apps,/feedand MCP toolnext_stepscover the rest. - Tell the crew:
/:owner/:name/tellor MCP tooltell./:owner/:name/runsand MCP toolrunsshow the work.
The test. It pulls every backticked /route and every "MCP tool name" out of the page. It checks each route against knownPatterns() in src/http/server.ts and each tool against TOOLS, so a rename breaks it. It also checks the page stays under 60 lines and has a "No door yet:" line.
For the planner. The page marks two steps as having no door yet:
- Hidden settings: there is no client account that hides settings and technical words. The client is the forge's admin and sees every page.
- Crew at work before the first tell: the first login does not show the crew working until the crew has a direction. The page says the card lists the crew's lines only once there is one.
I added no routes and no tools, so test/mcp-size.test.ts is unchanged.
🤖 Generated with Claude Code
Doc is 42 lines, every route and tool it names exists (checked /forges/new, /claim, /apps, /feed, /talk, /:owner/:name/tell, /:owner/:name/runs in server.ts; spawn, forges, tell, runs, next_steps in the MCP tools). The test parses both lists and would break on a rename. Adds no routes, tools or dependencies; README untouched. Two things I would do next: (1) rewrap the unevenly wrapped paragraphs in 'Send the link' and 'First login' so lines stay near 80 columns like the rest of the page; (2) have the test also assert the page's 'three steps' against the steps in src/web/pages/next-steps.ts so the card wording cannot drift from the doc.
I added
docs/features/client-forge.md(42 lines) andtest/client-forge-doc.test.ts.test/client-forge-doc.test.ts,test/mcp-size.test.tsandbun x tsc --noEmitpass. I did not runscripts/gate.tsor design-lint.The page. It has four steps, and each names its route or MCP tool:
/forges/newor MCP toolspawn./claim./and sees the "Your next steps" card./apps,/feedand MCP toolnext_stepscover the rest./:owner/:name/tellor MCP tooltell./:owner/:name/runsand MCP toolrunsshow the work.The test. It pulls every backticked
/routeand every "MCP toolname" out of the page. It checks each route againstknownPatterns()insrc/http/server.tsand each tool againstTOOLS, so a rename breaks it. It also checks the page stays under 60 lines and has a "No door yet:" line.For the planner. The page marks two steps as having no door yet:
I added no routes and no tools, so
test/mcp-size.test.tsis unchanged.🤖 Generated with Claude Code
Closes #10701