feat(feedback-site): lane 1c — the public pages (#659) #712

Closed
claude-bot wants to merge 0 commits from feat/lane1c-public into main
Collaborator

Lane 1c draws PUB-1 to PUB-10, at /prototype/lane1c: the ten pages anyone can reach without an account.

These had no lane. #659 scoped them to lane 1 — "shell, Home, public pages" — and lane 1 drew only the shell. #696's sweep of surfaces nobody owned listed Home, the campaign pages and the shared patterns, and missed these. I found the gap while drawing lane 7 and flagged it on #696.

What's drawn

  • Sign in (PUB-1). Signed out, checking, after deleting your own account, and — proposed — a session that ran out saying so, where today it looks exactly like a first visit.
  • Sign-in failed (PUB-2). With the provider's reason, and without one.
  • An invitation (PUB-3). The preview, signed out, looking it up, already in it, the GM approving, joining, a failed join, and the dead-invite message — which stays one line for all five reasons, and now says why it says no more (otherwise a stranger could test codes). Proposed: where the campaign records its sessions, the invitation says so before anyone joins (IS-196).
  • The shared analytics page (PUB-4). The numbers, with each rate carrying its figure and a word rather than only a colour; too few sessions for an average; nobody yet; and an error with somewhere to go. Proposed: the header's link goes somewhere a stranger can use.
  • Help (PUB-5). The index, a rendered guide with its sections, and an unknown guide falling back to the index.
  • Licences and notices (PUB-6). Proposed by #553 and never built: the page each pack's licence line points at, listing what this server actually loaded, each pack's required notice, and one address to write to — which the server already knows (API-016) and has never shown.
  • Not found, crashes and waiting (PUB-7). A page for an address that does not exist (today it bounces through Home to sign-in, so a mistyped link and being signed out look identical); a page that crashed and the app failing to start, each keeping its detail behind a fold; waiting for a page; checking your session; and a new version landing mid-visit.
  • Setting up a new server (PUB-8). All seven steps, every one skippable: who you are, backups (which reads the backup back rather than just taking one), the SECRET_KEY custody notice, what is kept and what that costs, the models with a live test, Discord, and a completion summary naming what was skipped — plus how that reads afterwards in Admin (IS-258 is still open; drawn as a list that does not nag).
  • The Discord link pages (PUB-9). The two pages the server renders itself, plainly, because matching the app here means a second copy of it.
  • The accessibility statement (PUB-10). D4: the WCAG 2.2 AA target, the gaps this prototype already knows about (the board at the table, the map, long transcripts), and how to report one.

Coverage

coverage/lane1c.py checks 98 placements, and none are missing:

Result Placements
Drawn 79
Replaced by a proposal here 4
Belong to another surface 5
Behaviour only (routes, redirects) 10

All twelve coverage scripts pass against the rebuilt catalogue.

Checks

  • Render-checked in headless Edge, dark and light.
  • Two faults caught and fixed: the wordmark drawn twice on the sign-in page, and the setup summary ticking steps it had just said were skipped.
  • The DOM probe finds 40 shots and no NaN; the one undefined is inside the sample stack trace on the crash screen, which is the point of it.
  • Feedback-site tests pass (124).

🤖 Generated with Claude Code

Lane 1c draws PUB-1 to PUB-10, at `/prototype/lane1c`: the ten pages anyone can reach without an account. **These had no lane.** #659 scoped them to lane 1 — "shell, Home, public pages" — and lane 1 drew only the shell. #696's sweep of surfaces nobody owned listed Home, the campaign pages and the shared patterns, and missed these. I found the gap while drawing lane 7 and flagged it on #696. ## What's drawn - **Sign in (PUB-1).** Signed out, checking, after deleting your own account, and — proposed — a session that ran out saying so, where today it looks exactly like a first visit. - **Sign-in failed (PUB-2).** With the provider's reason, and without one. - **An invitation (PUB-3).** The preview, signed out, looking it up, already in it, the GM approving, joining, a failed join, and the dead-invite message — which stays one line for all five reasons, and now says why it says no more (otherwise a stranger could test codes). Proposed: where the campaign records its sessions, the invitation says so before anyone joins (`IS-196`). - **The shared analytics page (PUB-4).** The numbers, with each rate carrying its figure and a word rather than only a colour; too few sessions for an average; nobody yet; and an error with somewhere to go. Proposed: the header's link goes somewhere a stranger can use. - **Help (PUB-5).** The index, a rendered guide with its sections, and an unknown guide falling back to the index. - **Licences and notices (PUB-6).** Proposed by #553 and never built: the page each pack's licence line points at, listing what this server actually loaded, each pack's required notice, and one address to write to — which the server already knows (`API-016`) and has never shown. - **Not found, crashes and waiting (PUB-7).** A page for an address that does not exist (today it bounces through Home to sign-in, so a mistyped link and being signed out look identical); a page that crashed and the app failing to start, each keeping its detail behind a fold; waiting for a page; checking your session; and a new version landing mid-visit. - **Setting up a new server (PUB-8).** All seven steps, every one skippable: who you are, backups (which reads the backup back rather than just taking one), the `SECRET_KEY` custody notice, what is kept and what that costs, the models with a live test, Discord, and a completion summary naming what was skipped — plus how that reads afterwards in Admin (`IS-258` is still open; drawn as a list that does not nag). - **The Discord link pages (PUB-9).** The two pages the server renders itself, plainly, because matching the app here means a second copy of it. - **The accessibility statement (PUB-10).** D4: the WCAG 2.2 AA target, the gaps this prototype already knows about (the board at the table, the map, long transcripts), and how to report one. ## Coverage `coverage/lane1c.py` checks 98 placements, and none are missing: | Result | Placements | |---|---| | Drawn | 79 | | Replaced by a proposal here | 4 | | Belong to another surface | 5 | | Behaviour only (routes, redirects) | 10 | All twelve coverage scripts pass against the rebuilt catalogue. ## Checks - Render-checked in headless Edge, dark and light. - Two faults caught and fixed: the wordmark drawn twice on the sign-in page, and the setup summary ticking steps it had just said were skipped. - The DOM probe finds 40 shots and no `NaN`; the one `undefined` is inside the sample stack trace on the crash screen, which is the point of it. - Feedback-site tests pass (124). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(feedback-site): lane 1c — the public pages (#659)
All checks were successful
CI / Backend lint (ruff) (pull_request) Successful in 1m1s
CI / Feedback site tests (pull_request) Successful in 1m17s
CI / Bot/backend version sync (pull_request) Successful in 33s
CI / Docker image build (pull_request) Successful in 17s
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 1m37s
CI / Frontend tests, audit, and build (pull_request) Successful in 2m54s
CI / Bot tests and audit (pull_request) Successful in 2m31s
CI / Backend migration, tests, and audit (pull_request) Successful in 8m55s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Successful in 17m18s
0a83d0229c
Draws PUB-1 to PUB-10 at /prototype/lane1c: sign in and sign-in failed,
an invitation, the shared analytics page, Help, licences and notices,
not-found and the crash screens, setting up a new server, the Discord
link result pages, and the accessibility statement (D4).

These had no lane. #659 scoped them to lane 1 ("shell, Home, public
pages"); lane 1 drew only the shell, and #696's sweep of unowned
surfaces did not list them. Found while drawing lane 7.

Proposed for the owner's review, and noted in headers.md: an address
that does not exist gets a page saying so, rather than bouncing through
Home to sign-in; a session that ran out says so; the shared analytics
header links somewhere a stranger can use; an invitation says whether
the table records its sessions before anyone joins; first-run setup
remembers every skipped step and lists them in Admin.

coverage/lane1c.py: 98 placements, none missing (79 drawn, 4 replaced,
5 elsewhere, 10 behaviour).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Author
Collaborator

CI green (run 10080). Merged to main as df11b84.

CI green (run 10080). Merged to main as df11b84.
claude-bot closed this pull request 2026-09-19 22:25:53 +00:00
All checks were successful
CI / Backend lint (ruff) (pull_request) Successful in 1m1s
Required
Details
CI / Feedback site tests (pull_request) Successful in 1m17s
Required
Details
CI / Bot/backend version sync (pull_request) Successful in 33s
Required
Details
CI / Docker image build (pull_request) Successful in 17s
Required
Details
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 1m37s
Required
Details
CI / Frontend tests, audit, and build (pull_request) Successful in 2m54s
Required
Details
CI / Bot tests and audit (pull_request) Successful in 2m31s
Required
Details
CI / Backend migration, tests, and audit (pull_request) Successful in 8m55s
Required
Details
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Successful in 17m18s
Required
Details

Pull request closed

Sign in to join this conversation.
No description provided.