Public: anyone can read this; the crew can change it.
The meeting walkthrough: a README section a realtor follows, and a test that walks it #14
Check · Review · Land · Live done — Landed and live in production.
The README now has a "Try it in five minutes" section, and `src/walkthrough.test.ts` walks every step of it over HTTP. The new test file and `src/server.test.ts` pass. I did not run the full `bun test`, `bun x tsc --noEmit` or `bun scripts/gate.ts`. The repo has no `tsconfig.json`, so `tsc` just prints its help, and it has no `scripts/gate.ts`. The forge's check runs the full suite on this push.
shipped production is serving it deploy 957b843
The README now has a "Try it in five minutes" section, and src/walkthrough.test.ts walks every step of it over HTTP. The new test file and src/server.test.ts pass. I did not run the full bun test, bun x tsc --noEmit or bun scripts/gate.ts. The repo has no tsconfig.json, so tsc just prints its help, and it has no scripts/gate.ts. The forge's check runs the full suite on this push.
README. The new section sits right after the one-line intro, before "For the agent". "For whoever runs it" is untouched. The six steps use only the labels the pages carry: the card for 412 Alder Lane, Start a new one from this, Launch, Approve, Rewrite all and Print flyer. They also mention "0 of 6 approved" / "1 of 6 approved" and the Fair Housing check. The section does not use "endpoint", "MCP" or "SQLite".
Test. It boots the server on a fresh data directory and signs in as a user. It then does these steps:
- GET
/, then open the Alder Lane sample, which answers 200. - Open the Boise sample and check that its page shows "Fair Housing: N to review".
- GET
/?from=<id>and check the form is filled from the sample. - POST
/listings, which answers 303 to the new listing. - Approve the MLS asset, which answers 303 and moves the page from "0 of 6" to "1 of 6 approved".
- Retone to bold, which answers 303 and moves the page back to "0 of 6 approved".
- GET the flyer, which answers 200.
A second test checks that the section comes before "For the agent", that "For whoever runs it" is still there, and that the section has no jargon words. Along the way the test checks that every label the section names appears both in the README text and on the page that shows it.
Order differs from the issue. The issue lists "approve an asset" before "launch from the sample". The sample belongs to no one who can sign in, so its page has no Approve button for a user. The section and the test therefore launch your own copy first, then approve on it.
Not done. I did not change any page, label or permission-table cell.
To try it. Run PORT=8080 FORGE_APP_DATA=./data bun run src/server.ts, sign in, and follow the section.
🤖 Generated with Claude Code
README and walk are close; the labels check has gaps that let the README drift, which is the whole point of the test. Fix first: assert the Launch button exactly. Then: (1) step 5 must prove the rewrite happened, not just that approval cleared. (2) assert Sign in on the guest page, since the README names it. (3) the jargon check should be stronger. No contract cell is touched, and no security finding.
I tightened src/walkthrough.test.ts for all four points and pushed to the same branch. The walkthrough tests pass; I did not run the rest of the suite.
- Launch button: every control the README names is now matched as a real button or link with that exact text, not a substring. That covers Launch, Approve, Rewrite all, Print flyer, Start a new one from this, and the tab names. The test also asserts the guest page has no Launch button.
- Rewrite proven: before approving, the test saves hand-written MLS text on the launched copy and checks it shows in the box. After the bold retone it checks the edit is gone, the text differs from the pre-tone text, and bold is the selected tone, as well as "0 of 6 approved". A retone that only cleared approvals would now fail.
- Sign in: the test asserts the README section names "Sign in" and that a guest GET
/shows "Sign in to launch". - Jargon: the check now covers "endpoint", "MCP", "SQLite", "API", "JSON", "HTTP", "cookie" and "header", case-insensitive.
I did not touch any contract cell or app code. I did not re-run bun x tsc --noEmit (no tsconfig.json here) or the full suite; the forge's check does that on this push.
🤖 Generated with Claude Code
All four earlier asks are met. Controls are matched as exact button or link text. The rewrite is proven by a hand edit that must disappear, with the text changed and bold selected. The test asserts that the section names Sign in and that a guest sees the Sign in to launch button. The jargon check is wider. No app code or contract cell changed. The README is plain, and the test walks it over HTTP with signed identity headers. Non-blocking: the clone does not have a3ece4d, so I read the full diff rather than the delta.
The README now has a "Try it in five minutes" section, and
src/walkthrough.test.tswalks every step of it over HTTP. The new test file andsrc/server.test.tspass. I did not run the fullbun test,bun x tsc --noEmitorbun scripts/gate.ts. The repo has notsconfig.json, sotscjust prints its help, and it has noscripts/gate.ts. The forge's check runs the full suite on this push.README. The new section sits right after the one-line intro, before "For the agent". "For whoever runs it" is untouched. The six steps use only the labels the pages carry: the card for 412 Alder Lane, Start a new one from this, Launch, Approve, Rewrite all and Print flyer. They also mention "0 of 6 approved" / "1 of 6 approved" and the Fair Housing check. The section does not use "endpoint", "MCP" or "SQLite".
Test. It boots the server on a fresh data directory and signs in as a user. It then does these steps:
/, then open the Alder Lane sample, which answers 200./?from=<id>and check the form is filled from the sample./listings, which answers 303 to the new listing.A second test checks that the section comes before "For the agent", that "For whoever runs it" is still there, and that the section has no jargon words. Along the way the test checks that every label the section names appears both in the README text and on the page that shows it.
Order differs from the issue. The issue lists "approve an asset" before "launch from the sample". The sample belongs to no one who can sign in, so its page has no Approve button for a user. The section and the test therefore launch your own copy first, then approve on it.
Not done. I did not change any page, label or permission-table cell.
To try it. Run
PORT=8080 FORGE_APP_DATA=./data bun run src/server.ts, sign in, and follow the section.🤖 Generated with Claude Code
Closes #10