Phone build spec review

Peregrine · 2 Oct 2026 · spec at docs/plans/2026-10-02-phone-build-spec.md

Contrast: amber on the new surfaces

Late-night surcharge
7.29:1
#E8A33D on #222326
Ground
Late-night surcharge
6.38:1
#E8A33D on #2C2D31
Raised: receipts, Mail
Late-night surcharge
5.42:1
#E8A33D on #37383D
Second surface: Messages draft field
H3 is answerable now. The weakest amber pairing on a surface is 5.42:1 on #37383D, and amber against the hairline is 4.86:1. Every amber pairing clears WCAG AA for text (4.5:1) and for non-text marks (3:1). The old warm palette measured 7.77 and 7.05:1. The threshold remains Sarah's ruling.
ForegroundBackgroundRatio
#E8A33D#2223267.29:1
#E8A33D#2C2D316.38:1
#E8A33D#37383D5.42:1
#E8A33D#3E3F454.86:1
#F2EDE3#22232613.47:1
#F2EDE3#2C2D3111.79:1
#F2EDE3#37383D10.02:1
#8E887B#2223264.46:1
#8E887B#2C2D313.90:1
#8E887B#37383D3.32:1
#E4574C#2223264.31:1 (non-text, 3:1 bar)
#E4574C#2C2D313.78:1 (non-text, 3:1 bar)

Chrome text is the weak pairing: #8E887B falls below 4.5:1 on both card surfaces (A5). The red dot is a non-text mark, and it clears 3:1 on both surfaces it sits on.

Holes

Assigned in the sources

#HoleOwnerState
H1The forger as plotSarahRuled: yes. Graded spot stays an SAT convention
H2The 11:31 text as canonSarahRuled: keep. Stands or falls with H1
H3Amber pass thresholdSarahRuled: 4.5:1 text, 3:1 marks. Amber passes at 4.86:1
H4Whether The Missing Hour survives the ping stackSarahRuled: cut. Phrase stays on the Desk card
H5Coin value for a correct graded callSarahRuled: 10 coins, flat
H6Split Decision easy-tier depthGame Feel ExpertRuled: 30 easy / 10 hard; 40 new easy cards
H7Whether Autotype comma splices return as graded tellsGame Feel ExpertRuled: no for v1
H8Rule that keeps the graded predictive-bar spot off one positionGame Feel ExpertRuled: seeded random, never the previous position
H9Each Settings row opens content or is cut: Wi-Fi · Screen Time · DAY 7 “up 41%” · Plain instructionsExperience CuratorRuled: Wi-Fi cut · Screen Time opens evidence · “up 41%” cut · Plain instructions opens the existing setting

Surfaced while writing the spec

No source assigns these. The owner shown for each is a proposal. Rulings received 2 Oct are marked.

#ItemOwner
A1Ruled, closed: existing rate card, 2.0 mi / 10 min, $10.00 fare, tip printed $2.50 (25%), total $12.50Sarahproposed
A2Ruled, closed: DAY 7’s catch is the tip lineSarahproposed
A3Ruled, closed: row reads 10:28 P.M. Solved case has no 10:12 or 10:28, and its missing hour ends 11:50, against the phone’s 12:10Sarahproposed
A4Six chrome hexes in the stills have no palette-doc role: #3E5C78 sent bubble, #303136 keys, #5E7D6A call button, #292A2E map thumb, #D9DF70 tern initial, #17181A desk phoneArt Directorproposed
A5Resolved: chrome text lifted to #A6A196, which clears 4.5:1 on all three surfaces (worst 4.54:1)Sarah, with H3proposed
A6Dropped: games live outside the app’s world. Amber ban staysArt Directorproposed
A7Dropped: game icons are exempt from the loudness ruleArt Directorproposed

Palette change

Glass.ground moved from #221D14 to #222326. Glass.surface (#2B2519, marked ASSUMED) is replaced by Glass.raised #2C2D31, with its three call sites renamed. Added secondSurface #37383D, hairline #3E3F45, chromeText #8E887B and body #F2EDE3. Desk.chrome stays #221D14.

The simulator renders the ground at #222326 and the cards at #2C2D31, sampled from the screenshot. The build passes, and the Games folder UI test passes.

Screens that change

ScreenFileChange
Phone tab (app list)Views/PhoneView.swiftGround; both row cards
Six app placeholdersPhoneView.swift · PhoneAppPlaceholderGround; navigation bar
Games folderViews/PhoneGames/GamesFolderView.swiftGround; navigation bar; folder container

The four game screens, the Desk, the Night Room and Settings are unchanged. The four new tokens have no call sites yet. The views still draw text in Glass.oat, and the bubbles still use oat and case ink.

Phone tab on the new ground
Phone tab: ground #222326, cards #2C2D31
Games folder on the new ground
Games folder (UI test capture). All four icons separate from #2C2D31; Coordinate Drop's stone band comes closest.

Art guards

Palette doc §6 art checks

Phone notification icon at 22pt, folder tile at 62pt, at 3x
@3x. The desk-phone icon at 22 pt reads, dial included. The folder tile holds four identifiable icons at 19 pt.
Same render at 1x, enlarged
@1x, enlarged 4× without smoothing. The dial collapses to a speck; the handset silhouette still reads. Red Flag is the brightest tile in the row. (A7)

Also in the spec