PEREGRINE · SPEC ADDENDUM

Entry & You — built

The Night Desk, the intake sheet, The Cut and the You tab, against peregrine-spec-addendum-entry-and-you.md. Captured on device, 7 Sep 2026.

What it looks like iPhone 16 · iOS 26

The Night Desk with no profiles yet
The desk on a first launch. The lamp is a fixture — cord, shade, bulb — and the shade occludes the cone's origin, which is what makes it read as an object in a room.
The intake sheet, credential preview at the top
Intake. The credential assembles at the top as the form is filled; the contact sheet is prints on a dark backing, and every face is turned away.
The desk with one filed credential
Creating files the credential — Issued just now, cold stamp. Entry is a separate act: you pick it up.
The Cut, 520ms in
The Cut, 520 ms in. The chosen card has straightened and lifted; everything else on the desk is gone; the lamp is blowing out.
The You tab
You. The top block is chrome with the lamp offscreen; everything below is paper. The same credential component, held still.
The Lineup's settings, disclosed
The Lineup's knobs, disclosed. The reasoning preview is a cream slot with a serif face and an ink caret — paper, not a dev console.
Your record group
Your record, and the last row clearing the tab bar — the §7.7 bug, checked on a 375×667 device with iOS 26's floating bar.

Acceptance checks §11

Judgement calls I made

CallWhat I did, and why
TypeThe addendum names Lora / Nunito / IBM Plex Mono, which is what the mockups could load. The app ships Gelasio / Reddit Sans / JetBrains Mono in exactly those three roles, so every size and tracking is authored against the bundled faces. The roles carry over; the foundry does not.
Create buttonPinned to the floor of the intake sheet. The contact sheet scrolls inside the page, so on a phone every ordinary centre swipe lands on it and the Create button below was genuinely unreachable without dragging in the margins. Field order is unchanged; only the button left the scroll.
Captured libraryThe second Questions option is gated on a key on file and an owner profile to copy from. Offering it with no source would be a dead choice.
Game countsOnly The Lineup has knobs in this build. The other ten rows read "No settings yet" and open on a sentence naming what will land there, rather than promising three settings and opening on nothing. Header meta reads 11 games — the playable set; the Trap Atlas and The Usual Suspects are dossiers.
Test keyKept, as a quiet text button under the saved row. §7.3 doesn't mention it, but it is the only way to tell a typo from an outage.
Build identifierKept, as a row under Your record. The pre-session card asks for it and says not to hand-write it.
The DocketRoutes to Cases Closed. The addendum names the row and its count subline but not its destination — redirect it if that's wrong.

One behaviour change worth knowing

Creating a profile no longer enters the app.

Per §5.4 the sheet dismisses and the credential lands on the roster — "Filed under tonight's roster" — and entry is a separate act. On a first launch that is one extra tap. Two UI tests assumed create-then-enter and now tap the new card.

Provisional and open

Two pre-existing failures, not from this work

VigilanceUITests.testClearTheRoomPlanSmoke and testClearTheRoomLiveStrikeThenBackOutReopens both fail on "Into the room" not existing. I confirmed they fail identically on the unmodified tree (stashed the branch, re-ran, same failure), on a freshly erased simulator. Everything else is green: 329 core tests, all 11 profile UI tests, all 4 in PeregrineUITests.