Fourthunit · Khoa-directed redesign · 31 Jul 2026
Your fourth unit, and the shell it works in
Two surfaces first, because they are the fastest route to a viewable direction:
the crew room — the unit as a room you walk into —
and Create with the unit drawer, which is the Desk anatomy
wearing the Instrument skin. Everything else follows from these two.
What is clickable in this drop
Ten surfaces in the coverage plan. This board is generated from the same file the pages
themselves read, so it cannot claim something is live while the link says otherwise —
a status board that can disagree with its own links is worse than no board. Anything not yet
drawn routes to a page that says what it is and what it is waiting on, rather than nowhere.
Why this board exists. Khoa clicked
/create and reported he could not click through to anything. The mock was fine —
href="#" was the defect. An unfinished thing that says nothing
about itself is indistinguishable from a broken thing, which is the same argument as the
honest empty state on a member with no attributed directors, applied to navigation instead of
data. Every stub now routes somewhere that explains itself.
Three product rules are enforced in the markup, not just followed.
No film title and no director name appears on any user-facing surface. The typeahead key is
private — and, see below, that turned out to be an architecture requirement rather than a
copy decision. Provenance is a named data-slot with the descriptor
variant filled in, so the Bindi gate stays a content choice made last.
Amendment 9 — this pack is now a signed design contract
gating Phases 2–5. The route map, responsive states, clearance boundary and stable persona
IDs are captured explicitly on
the contract page, so a build honours
them rather than inferring them from a mock.
Naming: THE FOURTH UNIT — locked for design
(Khoa, 31 Jul).
First unit shoots it, second unit picks up what first cannot — Fourthunit gives you a
fourth. Members carry human first names with the grammar as a specialty tag
(
Jimmy · handheld verité); the crew room is the unit's room; the Producer
is its 1st AD. Internal ids are untouched, because display was always a skin.
Scope: a
design lock, not a brand one — trademark and persona wording still
clear at the Bindi gate, and the ids stay name-agnostic so that ruling costs a config change
rather than a rework.
Route ruling: the crew room lives at
/create/unit — a route is an identifier, so it takes the
load-bearing locked word rather than the display flavour that can still move at the Bindi gate.
URL says
unit, the heading says
crew room. Renamed once.
Recorded in the route map →
Scale ruling — the five-card room was a first cohort, not the
layout (Khoa, 31 Jul). The crew room is rebuilt for 100+ members:
search is now the
primary interface, the roster is virtualized and filters on five axes, and the five cards
become an editable
front row. The
member lifecycle — in measurement,
measured, bio published, verified — becomes a designed system rather than an empty state,
and the stage is
computed from the fingerprint so a chip cannot disagree with the numbers
beside it. Portraits stop being artworks and become
a generation recipe driven by each grammar’s own measured
grain, palette, light, framing and frame shape.
Two findings from building it. The no-likeness
guarantee had to change kind: at five members it was a promise kept by looking at every output,
and at a hundred nobody looks — so the generator now takes
numbers only and has no
field that could carry a director or a title. And writing the recipe’s coverage floor down
reclassified one of my own five: Vera is measured from 97 shots, under the floor, so the
hand-directed set quietly contained a member the pipeline would refuse. She now wears
in measurement, which is true.
What is on the two surfaces
The crew room
Search-primary, built for 100+. The typeahead is
the room’s main interface; below it a virtualized roster of 112 members filters on
school, era, temperament, pace and lifecycle stage. The five dossier cards survive as an
editable front row — curation, not architecture: you can empty it and the room
still works.
Create + drawer
246px funnel · fluid stage · 400px
collapsible drawer. Roster on top with pilot and guests, then the selected fan’s
what I am bringing card, then proposals as accept / edit / ignore. Composer at the
bottom. Collapses to zero and says how to get it back.
The readout was not replaced — it was personified
The most important thing in the shell change is the thing that looks like a deletion.
The 300px telemetry panel does not disappear into a chat window: its numbers move onto the
selected fan’s card as what I am bringing — cuts per minute, median shot,
dialogue rate, coverage, and the fingerprint wave, all still there, now attached to someone who
can be argued with. Select a guest and the same panel re-reads in their grammar. Nothing
measured was thrown away; it gained an owner.
One finding worth acting on before build
The private search key has to resolve server-side, or it is not private.
I built the typeahead with the director-and-film map in the page, and then could read the entire
corpus mapping out of the bundle — which is exactly the disclosure the library tuck-away
exists to prevent. A user with devtools would have the whole index. The resolver is now behind a
stated server boundary (GET /crew/resolve?q=… → {fanId}),
the client sends a query and receives a persona, and the key is never persisted against the user
or the run. Worth catching now: it is a two-line change in design and a much larger one after
the map ships.
Deviation accepted — the checklist is
amended. I flagged that system states is not a surface: empty, loading and error are
properties of the nine other surfaces, and a separate page of them would pass a checklist while
leaving every real screen without them. Tom ruled the states page a category error and
amended the checklist — states are designed into each surface and recorded
per-surface in the parity ledger. The sequencing call (patterns before surfaces) was accepted on
the same reasoning. Recorded here so the artifact and the checklist do not disagree.
A note on the order
An earlier draft of this pack proposed a different sequence — cuts shelf third, the film
page fourth. It was superseded once Khoa named Analyze and the re-cut editor as what he most
needs to see, and the board above is the only current order. The previous list is deliberately
not reproduced here: two orderings on one page is exactly the confusion this round set out to
remove.
Questions for Tom
- Does a guest note ever pin to a shot, or only to a scene? I have flagged shots inside
the scene strip on the Create page, which reads well — but it implies conformance
deltas resolve to shot granularity. If they are scene-level only, the strip flags should move
up a level.
- Is “sitting in” free and unlimited, or is there a guest cap? I have shown
two guests. The brief says guest notes are near-zero cost, so nothing stops five — but
five simultaneous graders is a different UI from two, and the drawer roster is where that
lands.
- Which stage boundary allows a pilot swap? I have shown the pilot as fixed within the
run. The brief says swapping re-plans downstream keyframes, so the honest moment for that
needs a home — probably Conditioning, but it is an orchestration call.
- Confirm the descriptor wording is mine to write. The card subtitles
(“in the style of the hand-held verite school”) are the provenance slot filled at
its safe depth. If those descriptors need to come from the measurement side rather than from
design, say so before the other four surfaces reuse them.
Scope and standing
Design only. No build, no framework decision, nothing committed to the Fourthunit repo.
The nested-route URLs shown in the funnel are a design position — each stage owns a route,
never a tab in component state — not a claim that routing has been chosen.
QA risk tier: T3 — non-executable mocks.
Avatars are original characters rendered in each
grammar’s visual world — its grain, palette, framing. No real person is depicted and
no likeness is referenced. Figures are deliberately lit masses rather than detailed faces, which
is both truer to a frame from a film and the furthest possible distance from a likeness.
Measurements shown are illustrative.