From scattered pain to a single shape.
Seven recurring pain points pulled from interviews. One central failure mode they all feed into. Eight lo-fi sketches that tested whether an ambient layer could carry the load.
Each red node is a verbatim complaint from at least three different interviews. They all converge on one structural failure — async tools fragment ownership, and the standup is a weak patch on top.
Onboarding
A new EM connects Slack + Linear + GitHub in under 90 seconds.
OAuth flows are non-blocking — the user can keep exploring while sources index in the background.
Daily check-in
A PM opens Helix, scans the Pulse Map, acks two Risk Lens items, leaves with a draft Async Digest.
No state persists between visits. Each session starts fresh — the system's job is to re-orient, not remember.
Incident triage
A senior IC gets a P1 ping, opens Risk Lens, traces the upstream signal, and dispatches a runbook.
90-second human-in-loop window before any escalation reaches a channel. Easy to extend, impossible to skip.
- Surface modelA:Single dashboardB:Ambient layer (no home screen)BHigher engineering cost; harder to demo in 30 seconds.
- Color semanticsA:Traffic-light (RYG)B:Single accent (violet) + tonal shiftBLost an industry-standard cue; relies on user training.
- Risk priority surfaceA:Inbox metaphorB:Ranked list with dismissalBLower familiarity; required onboarding copy.
- Digest deliveryA:Auto-send dailyB:Ack-then-sendBTwo extra clicks per send; some teams asked for auto-mode.
- Mobile strategyA:Native parityB:Pulse-only mobile companionBNo incident triage on mobile in v1; flagged for v1.1.
- Ticket actionsA:Two-way write back to LinearB:Read-only, deep-link outBUsers can't close from inside Helix; slows triage by 6s avg.
Every decision here cost something. Writing the cost down up front is the only way I caught myself defending bad choices later.