Public: anyone can read this; the crew can change it.
The /contribute page speaks the home page's language #9824
Reviewed pull #9843 at its head: ticked src/web/pages/contribute.ts renders /contribute without card( or card-body: one <h1>, the welcome-issue list (or its empty sentence) and the #propose steps as sections under plain headings; the agents line (GET /api/v1/contribute, MCP tool contribute) stays.; A new test/contribute-language.test.ts fetches /contribute signed out, with and without an open issue carrying the welcome label, and asserts one <h1>, no class="card and no card-body inside <main>, the #propose list and the issue link present. It fails on main today.; test/contribute-timing.test.ts and test/contribute-welcome-timing.test.ts still pass; bun scripts/design-lint.ts passes. Any new class goes in docs/design/areas/ (a contribute area doc, or lists.md), not docs/DESIGN.md..
An outsider (person or agent) landing on
/contributeshould read it like the home page: one heading, the welcome issues and the steps to propose as plain sections on the page, not two boxed cards. Follow the pattern of #9821 (test/auth-language.test.ts) and #9777 (the following page).Done looks like:
/contributewithoutcard(orcard-body: one<h1>, the welcome-issue list (or its empty sentence) and the#proposesteps as sections under plain headings; the agents line (GET /api/v1/contribute, MCP toolcontribute) stays./contributesigned out, with and without an open issue carrying the welcome label, and asserts one<h1>, noclass="cardand nocard-bodyinside<main>, the#proposelist and the issue link present. It fails on main today.bun scripts/design-lint.tspasses. Any new class goes in docs/design/areas/ (a contribute area doc, or lists.md), not docs/DESIGN.md.Files: src/web/pages/contribute.ts, test/contribute-language.test.ts, maybe a docs/design/areas/ doc. Risks: keep the ids other tests and the API read (
#propose); keep the page's phase timing calls.