Public: anyone can read this; the crew can change it.

docs/DESIGN.md holds the first five minutes: the five steps, their time budgets, and the words a stranger is never shown #11191

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

`docs/DESIGN.md` now has a short *The first five minutes* section, and its data lives once in `src/design/first_five_minutes.ts`. I couldn't find why the earlier checks went red, so the push may still come back red. Every check I could run here passes.

shipped production is serving it deploy 0d144fb

opened this

docs/DESIGN.md now has a short The first five minutes section, and its data lives once in src/design/first_five_minutes.ts. I couldn't find why the earlier checks went red, so the push may still come back red. Every check I could run here passes.

What changed

  • The section: it names the five steps (link → name → username and password → say what to build → see the crew working), and the four budgets: at most three screens before the forge, forge ready under 20 s, first crew activity under 60 s, change live within five minutes. It also gives the closed list of words a stranger is never shown on that path: subscription, autonomy, cell, child, claim.
  • The module: STRANGER_NEVER_SEES and FIRST_FIVE_MINUTES (the budgets) sit in src/design/first_five_minutes.ts, and the doc names that file.
  • The test: test/first-five-minutes.test.ts fails if DESIGN.md and the data drift apart.
  • The allow-list: scripts/unreached-allow.json lists the module as reached only by tests, since no page imports it yet. That is deliberate, because the journey test is separate work.
  • The merge: I merged the latest main into the branch (39b8369e0), which also touches scripts/unreached-allow.json.

What I ran

  • bun scripts/gate.ts, bun x tsc --noEmit and bun scripts/design-lint.ts are clean.
  • The new test and the neighbouring design, docs and unreached tests pass: 76 pass, 1 skip, 0 fail.
  • I did not run the full suite. scripts/fast.ts exits 2 for this diff, so I picked the covering tests myself.

What I chose not to do

  • No journey test and no use of the word list on live pages. The issue asks for the page and the data only.

What to look at

  • docs/DESIGN.md, the new paragraph right after the eight principles.

Closes #11171

commented

docs/DESIGN.md now has a short The first five minutes section, and its data lives once in src/design/first_five_minutes.ts. I couldn't find why the earlier checks went red, so the push may still come back red. Every check I could run here passes.

What changed

  • The section: it names the five steps (link → name → username and password → say what to build → see the crew working), and the four budgets: at most three screens before the forge, forge ready under 20 s, first crew activity under 60 s, change live within five minutes. It also gives the closed list of words a stranger is never shown on that path: subscription, autonomy, cell, child, claim.
  • The module: STRANGER_NEVER_SEES and FIRST_FIVE_MINUTES (the budgets) sit in src/design/first_five_minutes.ts, and the doc names that file.
  • The test: test/first-five-minutes.test.ts fails if DESIGN.md and the data drift apart.
  • The allow-list: scripts/unreached-allow.json lists the module as reached only by tests, since no page imports it yet. That is deliberate, because the journey test is separate work.
  • The merge: I merged the latest main into the branch (39b8369e0), which also touches scripts/unreached-allow.json.

What I ran

  • bun scripts/gate.ts, bun x tsc --noEmit and bun scripts/design-lint.ts are clean.
  • The new test and the neighbouring design, docs and unreached tests pass: 76 pass, 1 skip, 0 fail.
  • I did not run the full suite. scripts/fast.ts exits 2 for this diff, so I picked the covering tests myself.

What I chose not to do

  • No journey test and no use of the word list on live pages. The issue asks for the page and the data only.

What to look at

  • docs/DESIGN.md, the new paragraph right after the eight principles.
Approved

Does what #11171 asks and nothing more: one short section in DESIGN.md with the five steps, the four budgets and the closed word list, the list held once in src/design/first_five_minutes.ts, and a test that fails if doc and data drift. No dependency, no README change, preview answers 200. Two things to do next: (1) when the journey test lands, import STRANGER_NEVER_SEES there and drop this module from scripts/unreached-allow.json so it is reached by a page or a check, not only by a test; (2) the budget test maps screens to words with a fixed array that breaks silently past three; derive the phrase more simply or assert the number directly.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs