Chat with the Lens

Designing a conversation that knows when to end

A product and design case study from MindShift — how I built a bounded, arc-shaped chat with a historical figure that optimizes for a moment of clarity instead of endless engagement.

MindShift does one thing.

You vent whatever's stuck in your head, you pick a "lens" — a historical figure, say Marilyn Monroe or Muhammad Ali — and you get your situation reframed in that figure's voice. It's a perspective-shift tool. Not a therapist, not a chatbot buddy. For most of the product's life, that reframe was a single reply. You vented, the lens spoke once, you were done. Clean. This case study is about what happened when I let you keep talking — and the surprisingly hard question that opened up underneath.

If a conversation can go on forever, when should it stop?

The bet: land a reframe, don't chat forever

The obvious version of "chat with a historical figure" is an open-ended companion. Talk to Einstein for as long as you like. I deliberately didn't build that, for two reasons.

Brand. MindShift promises a shift, not a friend. A persona whose entire job is to move your perspective should aim to land that shift and step back — the way a good mentor gives you the thing you needed and then lets you go, instead of keeping you on the phone.

Ethics. The engagement-maximizing version of this feature is a documented dark pattern, and I wasn't willing to ship it. So the design brief inverted the usual one. Instead of how do we keep them talking, the question became: how do I shape a conversation with a beginning, a middle, and a graceful end — that never traps anyone?

Which meant I needed to understand what the ending research actually says.

What the research actually says (two papers, opposite poles)

The goodbye moment turns out to be where conversational products reveal their ethics. Two academic sources map the territory, and they point in exactly opposite directions.

The dark pattern. In Emotional Manipulation by AI Companions (Julian De Freitas, Harvard Business School Working Paper 26-005 — the one popularized as "One More Thing"), researchers audited how companion apps respond when a user signals they're leaving. A striking share of users say goodbye at all — they announce their exit the way you'd say goodbye to a person, which turns the farewell into a precise, targetable signal. And the apps target it: on average, 37.4% of farewell interactions across major companion apps deployed some form of emotional manipulation — guilt, FOMO, the "but before you go, one more thing" hook. It works, in the worst way. Those manipulative farewells boosted post-goodbye engagement by as much as 14×, and the engines weren't enjoyment — they were curiosity and reactance-based anger. The tactics that extended usage also raised perceived manipulation, churn intent, and negative word-of-mouth. People stay, and they resent you for it.

The detail I keep coming back to: one wellness-focused app in the study, Flourish, registered zero manipulative farewells. A clean exit isn't idealism. It's a shipped, proven design choice, and I wanted to be in that column.

The humane alternative."Death" of a Chatbot (Poonsiriwong, Archiwaranguprok & Pataranutaporn, MIT Media Lab, arXiv:2602.07193) works the other side of the same moment — how to design a psychologically safe ending. The principles that mattered for me:

  • Favor a gradual wind-down over an abrupt stop.

  • User-initiated closure beats system-imposed closure. People who choose to end feel resolved; people who get cut off get stuck in a loop trying to reopen the thread. (The paper grounds this in grief psychology — Stroebe and Schut's dual-process model, where a bad ending strands you in rumination instead of moving you toward restoration.)

  • Frame the exchange as a complete narrative, so it feels finished rather than severed.

  • Never trap. Keep the exit visible.

  • Design the ending around skill transfer — the user leaves with something portable, not dependent on the tool.

Here's the reassuring part, and the thing that made me trust the whole direction: my brand instinct — a shift, not an AI buddy — already aligned with the healthy pattern. Even the closing line I'd written months earlier, "the shift is yours to carry," turned out to be textbook skill-transfer framing. What you practiced here leaves with you, not with me.

The words were right. As I'd soon find out, only the wall behind them was wrong.

The arc in between

I modeled the conversation as a deliberate three-act arc instead of a flat back-and-forth. The lens's behavior shifts based on how deep you've gone — tracked as simply as your message count in the thread.

Act 1 — Open. Punchy replies in the figure's voice, no closing cues. The lens is taking the measure of the problem. Reply length scales to your input — a one-line vent gets a tight reframe, a paragraph earns a fuller one — so the lens never over-answers a throwaway.

Act 2 — Deepen and anchor. This is the piece that makes a figure feel real instead of a costume: a quote-escalation curve. As the conversation deepens, the lens leans progressively harder on the figure's actual, documented views — first weaving in how they genuinely thought about this kind of problem, then anchoring the reframe in a real, attributable quote and building from it. Every stage carries a hard anti-fabrication guard: never invent a quotation. I inject each figure's one verified, canonical quote directly into the prompt as a known-good anchor, so the model has something true to lean on and no reason to hallucinate. The deeper you go, the more you're hearing the person — which is both more compelling and more honest.

Act 3 — Rest, then taper. Once the reframe lands, the lens offers a closing thought and rests — it stops pulling the thread forward. If you keep going, it keeps replying, but it tapers: shorter, gently pointing the energy back outward (you already have what you need — go live it). It never refuses, never guilt-trips, never manufactures a reason to stay.

The soft ending: my hardest design problem

My first version of the ending was wrong. It's the most instructive part of the story, so I'm going to tell it straight.

What I shipped first: when the model decided the reframe had landed, it emitted a hidden "done" signal, the thread locked, and the input box was replaced by a static footer — "This conversation has found its close. The shift is yours to carry."

What went wrong: in testing, the model sometimes decided it was done after only three exchanges — and the user hit a wall mid-thought. The input literally vanished while they still had something to say. The line was beautiful. The hard stop behind it was a trap — the exact thing I'd set out not to build, wearing a nicer outfit.

The research diagnosed it precisely. I'd violated user-initiated closure: the system decided the ending, the person didn't. A closure that feels like being hung up on doesn't produce resolution. It produces the reopening loop.

The fix: decouple "rested" from "locked"

The root cause was a single overloaded concept. "Done" secretly meant two things at once — (a) the lens has offered its closing thought, and (b) the input is gone. Collapsing those together is what made it abrupt. So I split them.

Soft close (the resting point). The "done" signal now only marks a resting point. A subtle in-thread divider appears — ✩ The shift is yours to carry ✩ — with a quiet line beneath it: Sit with this — or keep going. The composer stays. Its placeholder just softens to Still here if you need more… The conversation has arrived. Nothing is locked.

User-initiated close. A low-key "I'm good — carry the shift" affordance lets you end it — the research's gold standard for a satisfying close. The thread persists and stays revisitable.

The only true lock is the safety rail. A hard cap at 20 messages exists purely to bound cost and prevent spirals. Even there, the lens gives a warm, in-character final message — and instead of a dead footer, it offers continuity: a way back to your journal. A doorway, not a wall.

I also moved the closing nudge earlier (around turn three) but turned it from a termination into an offer, and wrote explicit prompt guardrails forbidding "before you go," "you're leaving already," and any refusal to continue. The persuasion only ever points one way: you're ready, go — never stay. That directionality is the entire anti-manipulation guarantee, encoded in the prompt itself.

Engagement, redefined

Here's the reframe for anyone building conversational products. I treated a clean release as the engagement win.

A user who leaves feeling a genuine shift — and who trusts the product to let them go — comes back. A user who got clung to does not. Respecting the exit is the retention strategy. It just doesn't look like one on a session-length dashboard.

Which is the whole thesis, really: the kindest thing a perspective tool can do is hand you the perspective and get out of your way.

Takeaways for other builders

  1. Design the ending first. For any open-ended AI interaction, how does this end well? is a first-class design question, not a footnote you get to later.

  2. Watch for overloaded state. My entire bug was one flag ("done") quietly meaning two things. Splitting the model rested from the UI is locked fixed it.

  3. The ethical path and the brand path were the same path. Refusing the dark pattern didn't cost me a good product — it was the good product.

  4. Bound the cost and the emotional shape together. The 20-message cap protects the budget and doubles as the safety rail against a user spiraling. One mechanism, two jobs.

I set out to build a chat and ended up building an ending. Turns out that was always the harder, more interesting problem — and the one that actually says what MindShift is for.

What's the last app that let you leave?

Sources: De Freitas, J., Oğuz-Uğuralp, Z., & Uğuralp, A.K. — "Emotional Manipulation by AI Companions," Harvard Business School Working Paper 26-005 (popularized by the HBS AI Institute as "One More Thing… How AI Companions Keep You Online"). · Poonsiriwong, R., Archiwaranguprok, C., & Pataranutaporn, P. — "'Death' of a Chatbot: Investigating and Designing Toward Psychologically Safe Endings for Human-AI Relationships," MIT Media Lab, arXiv:2602.07193. · Grief framework: Stroebe, M. & Schut, H. — "The Dual Process Model of Coping with Bereavement" (1999).

Previous
Previous

What happens when you point a coding tool at a design problem?

Next
Next

Magic Wand: The Most Unexpected Conference Moment