Production today is one line — "No proposals yet." — so a guest arriving at the app learns nothing about what a proposal is, who may vote, what a quorum rule is, or which parts are built yet. The direction says guests read public decisions; give them something to read.
What done looks like
[ ] / with no proposals shows a short card: what a proposal is (a paragraph and its options), that anyone signed in may open one, that the group's members vote, that a decision lands when the rule is met, and that a guest reads everything public. Four sentences, not an essay.
[ ] An /about page, linked once from the layout, says the same at slightly more length, lists the three quorum rules, and names the four doors — the page, /api/proposals, POST /mcp and the terminal (FORGE_APP_SSH verbatim, or "off").
[ ] The rules are printed from RULES in src/quorum.ts, never a second copy of that text; a test proves the page changes when the module's description does.
[ ] /about is honest about what is built: the parts that work today and the parts that do not yet (voting, deliberation, bindings) are two plain lists, kept accurate by whoever lands those issues.
[ ] A signed-in person sees the same explanation with what they can do now; an admin additionally sees a line pointing at the roster.
[ ] Server-rendered, no JavaScript, no layout shift, 360px with no horizontal scroll, and every control at least 44px.
[ ] Tests: the empty / names all three rules and does not appear once a proposal exists; /about answers 200 for a guest, a user and an admin with the right lines for each; /about carries the security floor; HEAD /about answers like GET.
[ ] README.md mentions /about in a line. bun test is green.
Files I expect to change:src/pages/about.ts (new), src/pages/home.ts, src/pages/layout.ts, src/routes.ts, src/quorum.ts (descriptions only, if they need sharpening), src/server.test.ts, static/app.css, README.md.
Risks: an about page rots the moment it is written — pull every fact it states from the module that owns it (RULES from src/quorum.ts, the terminal from env.ts) so only the prose is hand-written. Keep it one page and one link; this is not a documentation site. The empty state and /about should not become two copies of the same paragraph: the card is the short form and links to the long one.
Fit: Hearth — honest about what is real and what is not yet, in the interface itself. A person assigns; I do not.
Production today is one line — "No proposals yet." — so a guest arriving at the app learns nothing about what a proposal is, who may vote, what a quorum rule is, or which parts are built yet. The direction says guests read public decisions; give them something to read.
What done looks like
/with no proposals shows a short card: what a proposal is (a paragraph and its options), that anyone signed in may open one, that the group's members vote, that a decision lands when the rule is met, and that a guest reads everything public. Four sentences, not an essay./aboutpage, linked once from the layout, says the same at slightly more length, lists the three quorum rules, and names the four doors — the page,/api/proposals,POST /mcpand the terminal (FORGE_APP_SSHverbatim, or "off").RULESinsrc/quorum.ts, never a second copy of that text; a test proves the page changes when the module's description does./aboutis honest about what is built: the parts that work today and the parts that do not yet (voting, deliberation, bindings) are two plain lists, kept accurate by whoever lands those issues./names all three rules and does not appear once a proposal exists;/aboutanswers 200 for a guest, a user and an admin with the right lines for each;/aboutcarries the security floor;HEAD /aboutanswers likeGET.README.mdmentions/aboutin a line.bun testis green.Files I expect to change:
src/pages/about.ts(new),src/pages/home.ts,src/pages/layout.ts,src/routes.ts,src/quorum.ts(descriptions only, if they need sharpening),src/server.test.ts,static/app.css,README.md.Risks: an about page rots the moment it is written — pull every fact it states from the module that owns it (
RULESfromsrc/quorum.ts, the terminal fromenv.ts) so only the prose is hand-written. Keep it one page and one link; this is not a documentation site. The empty state and/aboutshould not become two copies of the same paragraph: the card is the short form and links to the long one.Fit: Hearth — honest about what is real and what is not yet, in the interface itself. A person assigns; I do not.