# Product Design QA — Adjutant P0 complete flow ## Comparison target - Source visual truth: `final-visual-target.png` - Browser-rendered implementation: `implementation-home-p0-complete.png` - Normalized phone-screen crop: `implementation-home-p0-screen.png` - Side-by-side evidence: `design-comparison-p0-complete.png` - Source pixels: 852 × 1846 - Browser screenshot pixels: 679 × 818 - Normalized comparison: 393 × 852 per side, deviceScaleFactor 1 - State: single-hospital P0 portal home, fixed Mock patient The source is a full scroll-length mobile board without device chrome. The implementation uses the protected iPhone runtime and a visible above-the-fold viewport. The comparison therefore evaluates app-owned hierarchy, spacing, colors, cards, copy and entry prominence; the device bezel and scroll crop are expected runtime differences. ## Full-view comparison No actionable P0, P1 or P2 mismatch remains. - Fonts and typography: heading hierarchy, weights, muted supporting copy and compact card labels match the selected direction. - Spacing and layout rhythm: hospital header, assistant entry, status/todo strip, registration hero, two secondary services and bottom navigation preserve the source order and density. - Colors and visual tokens: medical purple, cyan accent, pale blue surface and white-card system are consistent with the source. - Image quality and asset fidelity: the supplied registration illustration and brand mark render sharply; Radix icons are used for standard interface actions. - Copy and content: the only intentional product change is “语音挂号”, which reflects the frozen voice-first interaction model more accurately than “开始分诊”. Focused region comparison was not required because the implementation reuses the already approved home visual system and the new work is primarily additional route/state behavior. The report-confirmation and tongue-processing screens use the same established card, type and spacing tokens. ## Interaction verification Verified in the Codex in-app browser at `http://127.0.0.1:4173/`: 1. Home “语音挂号” → voice transcript → missing doctor follow-up → complete slot summary → query schedule. 2. Registration emergency demo → ordinary registration stops → emergency guidance and 120 action appear. 3. New-report todo → report voice context → select hospital report → owner/source/final-status confirmation. 4. Tongue service → voice context → consent → symptom question → qualified demo image → tongue MCP processing state. 5. Services, health records and root navigation remain accessible. Browser console: no errors; only Vite connection and React development information messages. ## Comparison history ### Iteration 1 - Finding: the report todo previously opened a completed result directly. - Fix: it now enters the report agent, confirms source and ownership, then proceeds to processing. - Finding: the tongue flow skipped the visible MCP-processing stage. - Fix: added image-quality completion, existing tongue MCP call and evidence-fusion progress. - Finding: the emergency branch was not directly reachable from the voice-first registration entry. - Fix: added an explicit P0 emergency-door demo and urgent text routing. - Post-fix evidence: all three paths and the emergency branch were exercised in the in-app browser. ## Follow-up polish - P3: add a real speech-to-text adapter when the P0 demo moves beyond scripted voice transcripts. - P3: connect task state to a shared mock store so newly completed tasks change the record list during the same session. final result: passed