Task: T008 — Replace per-bubble emoji reactions (removed)
Decision needed: Which mechanism(s) replace the turn-level feedback signal?
---
The 8-emoji reaction row gave us the only real-time, explicit, turn-level signal we had. Its removal was correct — a reaction row on every message is structurally borrowed from social media and violates the brand's anti-engagement stance. But the signal gap is real.
The current fallback — daily rating widget + passive Chat Sentinel — gives us session-level System 2 signal and passive turn-level inference. What is missing: explicit, voluntary, in-moment (System 1) signal from individual responses.
Phase 1 — This sprint: Option C — Session-End One-Word Reflection
After the session ends (user closes / 10-min idle), one quiet line appears: "Before you go — one word for how this landed." 50-char text field, skip button, no modal. Silent ✓ on submit. This is the highest cultural-fit mechanism available: it asks the user to do exactly what the mirror asks in every session. Implementation: 1.5 days. variants.py: session_end_reflection at weight=100.
Phase 2 — Next sprint: Option D — Hidden Long-Press Emoji Picker
No visible affordance. Long-press any bubble (500ms on mobile, hover-pause on desktop) reveals a 4-emoji panel: 🌊💛👁😶. Silent, private, self-dismissing in 3 seconds. Never promoted. A Kano-category delighter — users who find it feel privately heard; users who never find it never missed it. Implementation: 2–3 days. variants.py: bubble_longpress_reactions at 20% initial rollout.
Hold: Option B — Mid-Conversation Micro-Prompt
Binary thumbs chip after every 5th message. Ships weight=0. Only activate if session-end response rate falls below 6% AND Sentinel frustration patterns cannot explain it. High Goodhart risk: if thumbs-up rate ever enters the performance dashboard, the mirror will be nudged toward comfort and away from honest reflection. Treated as last-resort.
Q3: Option E — Weekly Digest Email
Highest signal quality of any option (Torres-validated, deliberate, qualitative). Blocked on T003 (SSO), SAGE aggregation pipeline, and email opt-in UI. Queue for after those foundations are stable.
1. Goodhart contamination — Option B micro-prompt must never become an optimization target for mirror outputs. Policy locked in engineering runbook.
2. Session-end prompt as exit-prevention — copy and trigger timing are designed to read as an offering, not a retention mechanic. Skip rate > 90% = disable it.
3. Option D low discovery — if < 3% of users find it in 30 days, add a single settings-page disclosure (never in conversation).
---
Full memo: F:/TITAN/plans/advisors/FEEDBACK-SIGNAL-v2-MEMO-2026-04-21.md
Recommended default: Option C immediately + Option D next sprint.