D86 to D90, and the front door's own line drawn on ADMIN-15 (#659, #727, #728) #761

Merged
claude-bot merged 1 commit from design/owner-answers-2026-09-22 into main 2026-09-23 00:29:43 +00:00
Collaborator

The owner's answers to the nine questions lanes 1 and 2 left open, written into the record. Design documents and one prototype page; no application code.

Five decisions

D86 A session has a number — given at creation, frozen, never reused, so a cancelled session leaves a gap. The four places the drawing uses it (breadcrumb, bell, live bar, Contents) are tight and a title is neither short nor stable; and someone will write "session 12" in the wiki, so a number that skips is honest where a number that shifts is a lie about something already written down. The work is #760.
D87 The backup step reads the archive back rather than restoring it, and says "read it back" so it claims no more. A real restore needs a scratch database and belongs with #414, not a first-run wizard.
D88 The key step shows no key material. SECRET_KEY is the key the other secrets are encrypted with; secrets-health answers "is this the right key" by decrypting rather than by eye.
D89 The shared analytics page counts twelve months, not the thirty days the endpoint had.
D90 pub--wide in a still is not pub--wide in a window — a still's box is ~600px, a window's is the page's 1560px, and prose at that measure is unreadable. A rule for every later lane rather than five exceptions.

D87, D88 and D90 confirm what lane 2 built and had recorded as departures; they are decisions now, so the next person does not relitigate them. D86 and D89 are changes, and both have work behind them (#760, and fix/owner-answers-code).

The drawing gains a field

ADMIN-15's "About this server" now draws What it is for — the line that finishes the front door's sentence, "Amberwake is run by Dana, for a few groups of friends", with its empty state on a fresh server and a hint saying what happens when it is left blank.

That clause was in the drawing with nothing storing it; lane 2's build found it by hard-coding it, which would have had every self-hosted Quest Board telling visitors its operator runs it for a few groups of friends. #752 made it a field and IS-438 made it a row — but the row is newer than lane 7's drawing, so that form had no input for it, and I left it deferred rather than quietly edit a page the owner had signed off. The answer was to draw it.

Rendered in headless Edge and read in both themes before committing, per the project's rule. lane7.py counts it drawn instead of deferred; the catalogue is rebuilt (1,707 rows on 107 surfaces) and all sixteen coverage scripts pass.

A correction carried into the record

I told the owner the drawing's analytics figures were "arithmetically impossible together". They are not: thirteen sessions at a thirteen-day average gap spans about 169 days, which is roughly six months, so "Every 13 days on average · 13 sessions in six months" is internally consistent. What was impossible was mapping it onto the endpoint's sessions_last_30_days — a missing field, not a broken drawing. D89 is worded accordingly, and #728 carries the correction.

🤖 Generated with Claude Code

The owner's answers to the nine questions lanes 1 and 2 left open, written into the record. Design documents and one prototype page; no application code. ## Five decisions | | | |---|---| | **D86** | **A session has a number** — given at creation, frozen, never reused, so a cancelled session leaves a gap. The four places the drawing uses it (breadcrumb, bell, live bar, Contents) are tight and a title is neither short nor stable; and someone will write "session 12" in the wiki, so a number that skips is honest where a number that shifts is a lie about something already written down. The work is **#760**. | | **D87** | **The backup step reads the archive back** rather than restoring it, and says "read it back" so it claims no more. A real restore needs a scratch database and belongs with #414, not a first-run wizard. | | **D88** | **The key step shows no key material.** `SECRET_KEY` is the key the other secrets are encrypted with; `secrets-health` answers "is this the right key" by decrypting rather than by eye. | | **D89** | **The shared analytics page counts twelve months**, not the thirty days the endpoint had. | | **D90** | **`pub--wide` in a still is not `pub--wide` in a window** — a still's box is ~600px, a window's is the page's 1560px, and prose at that measure is unreadable. A rule for every later lane rather than five exceptions. | D87, D88 and D90 confirm what lane 2 built and had recorded as departures; they are decisions now, so the next person does not relitigate them. D86 and D89 are changes, and both have work behind them (#760, and `fix/owner-answers-code`). ## The drawing gains a field **ADMIN-15's "About this server" now draws *What it is for*** — the line that finishes the front door's sentence, *"**Amberwake** is run by Dana, for a few groups of friends"*, with its empty state on a fresh server and a hint saying what happens when it is left blank. That clause was in the drawing with nothing storing it; lane 2's build found it by hard-coding it, which would have had every self-hosted Quest Board telling visitors its operator runs it for a few groups of friends. #752 made it a field and `IS-438` made it a row — but the row is *newer than lane 7's drawing*, so that form had no input for it, and I left it deferred rather than quietly edit a page the owner had signed off. The answer was to draw it. Rendered in headless Edge and read in both themes before committing, per the project's rule. `lane7.py` counts it **drawn** instead of deferred; the catalogue is rebuilt (1,707 rows on 107 surfaces) and **all sixteen coverage scripts pass**. ## A correction carried into the record I told the owner the drawing's analytics figures were "arithmetically impossible together". They are not: thirteen sessions at a thirteen-day average gap spans about 169 days, which is roughly six months, so *"Every 13 days on average · 13 sessions in six months"* is internally consistent. What was impossible was mapping it onto the endpoint's `sessions_last_30_days` — a missing field, not a broken drawing. D89 is worded accordingly, and #728 carries the correction. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
docs(design): D86 to D90, and the front door's own line drawn on ADMIN-15 (#728, #727, #659)
All checks were successful
CI / Docker image build (pull_request) Successful in 24s
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 51s
CI / Bot/backend version sync (pull_request) Successful in 1m6s
CI / Backend lint (ruff) (pull_request) Successful in 1m23s
CI / Bot tests and audit (pull_request) Successful in 1m55s
CI / Feedback site tests (pull_request) Successful in 2m5s
CI / Frontend tests, audit, and build (pull_request) Successful in 4m0s
CI / End-to-end journeys (desktop, phone, keyboard-only) (pull_request) Successful in 5m2s
CI / Backend migration, tests, and audit (pull_request) Successful in 10m6s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Successful in 18m14s
fe068128db
The owner's answers to the nine questions lanes 1 and 2 left open.

**D86, a session has a number** — given at creation, frozen, never reused, so a
cancelled session leaves a gap. The places the drawing uses it (the breadcrumb,
the bell, the live bar, the Contents) are tight and a title is neither short nor
stable enough; and someone will write "session 12" in the wiki, so a number that
shifts is worse than one that skips. Needs a column, a backfill and the rule:
its own issue.

**D87, the backup step reads the archive back** rather than restoring it, and
says so. **D88, the key step shows no key material** — `SECRET_KEY` is the key
the others are encrypted with, and `secrets-health` answers "is this the right
key" by decrypting rather than by eye. Both were built that way and are now
decided rather than departed from.

**D89, the shared analytics page counts twelve months**, not the thirty days the
endpoint had. The drawn sentence was right and the build took the lesser one;
the correction is a server field, which follows.

**D90, `pub--wide` in a still is not `pub--wide` in a window.** A still's box is
about 600px, a window's is the page's 1560px, and prose at that measure is
unreadable. A rule for every later lane rather than five exceptions.

Also drawn, on the owner's answer: **ADMIN-15 gains "What it is for"**, the line
that finishes the front door's sentence (`IS-438`). Lane 2 found that clause in
the drawing with nothing storing it, so the row is newer than lane 7's drawing
and its form had no field. Left deferred, lane 9 would have built the form
without it. Rendered and read in both themes; `lane7.py` counts it drawn now,
the catalogue is rebuilt, and all sixteen coverage scripts pass.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign in to join this conversation.
No description provided.