OPER-201
HV-5: Smiley UI in qa-inbox-ui (internal-verifier flag only)
Suggested
Justin Cooke
Body
--- feature_id: FEAT-studio-qa size: M module: qa phi_in_scope: true has_migration: false write_sets: - packages/qa-inbox-ui/src/smiley-panel.tsx - packages/qa-inbox-ui/src/dossier-view.tsx - packages/qa-inbox-ui/src/probe-modal.tsx --- ## Context Parent: OPER-196. HappyOrNot-style 4-smiley UI: BROKEN / MEH / GOOD / DELIGHTFUL. One tap for the primary verdict; progressive disclosure fires only on MEH (3 chips generated from feature type) and BROKEN (mandatory 5-word text field, auto-attach last 15s of qa-inbox trace pointer). After-feature panel renders two smiley bars: expected + time-saving (UMUX-Lite reformulated as faces). Machine-triggered retrospective probe modal replays a 3-second trace clip and asks "what were you thinking?" -- this is the ONLY free-text field. Value goes to `HumanVerification.probeText` (PHI-annotated, redacted at write, audit-logged on read per HV-1). Jordan dissent from the PDT memo: internal-verifier feature flag only. No exposure to Fiesta/Portico end-users -- that is a separate PDT. Ships behind `qa.humanVerification.enabled` feature flag scoped to Studio verifier accounts. ## Acceptance Criteria - `<SmileyPanel />` renders 4 faces, primary verdict is one tap, progressive disclosure appears only on MEH or BROKEN - `<ProbeModal />` replays trace clip and posts to `HumanVerification` write endpoint - Feature flag `qa.humanVerification.enabled` gates every render path - No Fiesta/Portico end-user surface touched - Playwright coverage: BROKEN path (mandatory text + trace attach), MEH path (chips shown), GOOD/DELIGHTFUL path (single-tap complete) - Storybook stories for each smiley state --- <!-- planner-rescope: phi_no_reviewer --> **Planner rescope (phi_no_reviewer):** Task has phiInScope=true but no PHI-eligible reviewer is available. Register a reviewer worker advertising the `phi` capability before admitting PHI work.
Attachments
Loading attachments…
Comments
Loading comments…