Sean Ren Product Designer, AI Experiences

Enter passcode

This portfolio is shared by invitation.

Skip to the case study

MerlinRelease one report in five classification tiers. Review only where the meaning moved.

An AI-assisted review tool for the person who signs off intelligence reports, grown from a team project with the Laboratory for Analytic Sciences.

Role
Product & UX Designer
Timeline
Feb – May 2026
Partner
Laboratory for Analytic Sciences (LAS)
Team
Mia B., Tushita K. / Co-designers
Tools
Figma, NotebookLM, After Effects, Claude
Platform
Desktop
MerlinQueueZendian conflictSearch reports or ask Merlin⌘KMon, Jul 609:16AK

Queue

10 reports
Talks now open Tue 09:00, a day earlier

A State Department cable at 07:58 moved them up. Merlin suggests 4 moves so the reports diplomats need come first. Your pinned report stays first.

Needs you 5
1
Anticipated Discussions at Behrainabad–Zendia Peace Talks Pinned by you
High priorityRPT-00001Diplomacy
Equity check drafted4 h 44 minMon 14:00
2
Structure of the Zendian Satellite Communications Network
RPT-00005Space
Coordination drafted5 h 44 minMon 15:00
3
Challenges in Maintaining Control of Tarla Bay Post-Victory
RPT-00011Military
2 meaning calls2 d 10 hWed 20:00
4
Zendia’s Acquisition of Illegal Weapons from a Rogue Nation State
RPT-00007Weapons
1 meaning call3 d 3 hThu 12:00
5
Status of Trade Negotiations between Zendia and Neighbors
RPT-00004Economy
Summary ready4 dFri 12:00
Waiting on others 3
6
Strategic Assessment for Amphibious Operation Launch Points Against Zendia
RPT-00010Tactics
DoD reply, usually 3 h3 d 4 hThu 13:00
7
Encryption Technologies in Zendian Satellite Communications Networks
RPT-00008Tactics
Marcus is revising3 d 4 hThu 13:00
8
Coalition Roles in Securing Tarla Bay Post-Victory
RPT-00012Military
State reply, usually 1 h2 d 8 hWed 17:00
Ready to release 2

Queue. A cable moved the peace talks up a day. Merlin proposes a new order with a reason for each move, and nothing moves until the releaser applies it.

Overview

Every rewrite for a lower tier can change what a report says.

Problem
Releasers are the last checkpoint before intelligence goes out. Priorities live in an inbox with color labels, coordination runs by email, and the only way to know a rewrite kept the original judgment is to reread it.
Design question
How might AI prepare each step of a tiered release, while every decision stays with the releaser?
Key insight
Most differences between tiers are required by each tier’s rules. The few that change a judgment hide among them, and some of those are the AI’s own edits.
My part

The original Merlin was an 11-week project for the Laboratory for Analytic Sciences, with Mia B. and Tushita K. I designed its dashboard, prioritization, coordination status and local node view, the shared Figma system that let the three of us build separate flows as one product, and the intro video.

This page plays my own iteration on that work, built afterward. The research and the recognition come from the team’s version.

Research

We mapped a releaser’s morning from two rounds of interviews.

It began at a launch workshop the Laboratory hosted with intelligence analysts. My two co-designers and I then ran semi-structured interviews, and later took Merlin to stakeholders.

What kept coming back

The journey map: nine scenarios from the morning meeting to release, with the releaser’s actions, touchpoints, pains, gains and emotional curve.Start of day
The journey map we built from the interviews, colored by the kind of work each step asks for. Highlighted: Morning meeting, a high-priority report arrives. Point at the map to read it up close.Swipe along the map to read it.

What we heard

Runs the day from an inbox queue with arrows and color labels for priority, and asked for manual labels like “release me first”.

Senior reporting authority, team interview

Starts each morning checking what is in progress, and balances the queue against work from outside it.

Intelligence analyst, team interview

Pain point

Priority lives in an inbox and a set of labels. When plans change overnight, the order is rebuilt by hand.

In Merlin

Merlin proposes the order, and the releaser applies it.

Try the queue

Decisions

Where Merlin stops and the releaser starts.

Each one plays in the coded prototype. Switch to the original Merlin and to my wireframe to see what it replaced.

Decision 1

Judgment-level comparison across tiers

MerlinReportsRPT-00001Search reports or ask Merlin⌘KMon, Jul 609:18AK

Anticipated Discussions at Behrainabad–Zendia Peace Talks

RPT-00001Diplomacy Due Mon 14:00, in 4 h 44 min 5 tiers drafted

ReadMeaning check 0HistoryConnections 6
Tier 3 changed at 09:17. Merlin is checking 7 judgments across 5 tiers.Reading Tier 2 of 5. Calls appear on the right as it finds them.
Judgment in Tier 1 TSSource narrative
Tier 2 CReading
Tier 3 CQueued
Tier 4 CUIQueued
Tier 5 UQueued
Talks agenda“will center on four primary areas”
Stance on transition“will resist full democratic transition”
Aid talks as leverage“will attempt to use negotiations as leverage”
Hidden preconditions“intelligence collected via SIGINT and HUMINT confirms”
Relationship has deteriorated“across all dimensions”
Preparing for isolation“these developments suggest”
Opposition on the talks“cautious optimism”
Before

My first pass. A version selector and counts of added, removed and modified passages. It found the edits, but a count can’t say whether the analytic meaning held.

Now

Merlin lines up each Tier 1 judgment across the lower tiers. Changes a tier’s rules require, like removing sources or names, clear on their own. Only a change in strength, scope, certainty or who becomes a call, outlined in ink. Review takes one call at a time, with the fix shown in place, and Merlin’s own past edits come back as calls like anyone’s.

Why
A redline marks a required removal the same way as a change in meaning, so releasers would still read every line, which a senior reporting authority told us they wanted to stop doing.

Decision 2

AI-proposed queue order

MerlinQueueZendian conflictSearch reports or ask Merlin⌘KMon, Jul 609:16AK

Queue

10 reports
Talks now open Tue 09:00, a day earlier

A State Department cable at 07:58 moved them up. Merlin suggests 4 moves so the reports diplomats need come first. Your pinned report stays first.

Needs you 5
1
Anticipated Discussions at Behrainabad–Zendia Peace Talks Pinned by you
High priorityRPT-00001Diplomacy
Equity check drafted4 h 44 minMon 14:00
2
Structure of the Zendian Satellite Communications Network
RPT-00005Space
Coordination drafted5 h 44 minMon 15:00
3
Challenges in Maintaining Control of Tarla Bay Post-Victory
RPT-00011Military
2 meaning calls2 d 10 hWed 20:00
4
Zendia’s Acquisition of Illegal Weapons from a Rogue Nation State
RPT-00007Weapons
1 meaning call3 d 3 hThu 12:00
5
Status of Trade Negotiations between Zendia and Neighbors
RPT-00004Economy
Summary ready4 dFri 12:00
Waiting on others 3
6
Strategic Assessment for Amphibious Operation Launch Points Against Zendia
RPT-00010Tactics
DoD reply, usually 3 h3 d 4 hThu 13:00
7
Encryption Technologies in Zendian Satellite Communications Networks
RPT-00008Tactics
Marcus is revising3 d 4 hThu 13:00
8
Coalition Roles in Securing Tarla Bay Post-Victory
RPT-00012Military
State reply, usually 1 h2 d 8 hWed 17:00
Ready to release 2
Before

My early queue. Merlin re-ranked the reports by itself, and messages had a one-click Auto reply. It saved steps, but an equity check sent unread is a mistake a releaser can’t take back.

Now

A banner says what changed and proposes a new order. Previewing it shows every move with its reason and source. The report the releaser pinned stays first, and Undo is one key away.

Why
Releasers arrange their own queue, as a senior reporting authority showed us, so a proposal keeps that order theirs until a reason changes their mind.

Decision 3

Explainable links on the map

MerlinMapZendian conflictSearch reports or ask Merlin⌘KMon, Jul 609:22AK
100%
Same 07:58 cableTradeTransitionSame delegationTarla Bay
Same case, not linked to RPT-00001
RPT-00005 Satellite networkRPT-00008 Encryption technologies
Before

My earlier timeline. A report’s events in one column. It recorded what happened, but hid who handed what to whom and said nothing about related reports.

Now

The map grew out of my local node view in the original Merlin. Each link carries its reason: a cited report, a shared topic, or a link Merlin found. Merlin’s links stay dotted and blue until someone confirms one; then it turns solid, counts as a dependency, and Merlin rechecks both reports when their source changes.

Why
A connection only helps if you can tell who made it. An intelligence analyst asked to have these drawn where they could see them.

Decision 4

Friction on the one irreversible step

MerlinReportsRPT-00001Search reports or ask Merlin⌘KMon, Jul 611:48AK

Anticipated Discussions at Behrainabad–Zendia Peace Talks

RPT-00001Diplomacy Due Mon 14:00, in 4 h 44 min 5 tiers drafted

ReadMeaning check 0HistoryConnections 6
5 calls decided, notes logged1 confirmed out of scope Checked against Tier 1 at 10:34
Runs again after every edit
Judgment in Tier 1 TSSource narrative
Tier 2 CControlled narrative
Tier 3 COperational summary
Tier 4 CUIOrientation brief
Tier 5 UPublic statement
Talks agenda“will center on four primary areas”
Kept

same four areas

To confirm

three areas, monitoring missing

Kept

four areas, in plain words

Kept, public wording

named in public terms

Stance on transition“will resist full democratic transition”
Aligned

will resist full democratic transition

Kept

operationally resistant

Aligned

will resist full democratic transition

Withheld by tier rule
Aid talks as leverage“will attempt to use negotiations as leverage”
Aligned

will attempt to use negotiations as leverage

Kept

entering talks with delay tactics

Aligned

will attempt to use negotiations as leverage

Withheld by tier rule
Hidden preconditions“intelligence collected via SIGINT and HUMINT confirms”
Sources removed

available intelligence confirms

Sources removed

not yet publicly disclosed

Sources removed

expected to set conditions

Withheld by tier rule
Relationship has deteriorated“across all dimensions”
Kept

across all dimensions

Kept, with your note

across multiple dimensions

Kept

worse on every front

Withheld by tier rule
Preparing for isolation“these developments suggest”
Kept

developments suggest

Kept, with your note

developments indicate

Kept

signs point to isolation

Withheld by tier rule
Opposition on the talks“cautious optimism”
Kept

cautious optimism

Kept, with your note

cautious support

Kept

hopeful but wary

Withheld by tier rule
Before

My earlier checklist. Merlin scored the report and locked Release while items were pending. It made Merlin the gatekeeper of the final call.

Now

Release opens a sheet where six checks run in front of the releaser. One that fails stops the release with its fix in place: here, two Tier 1 paragraphs left in a CONFIDENTIAL tier. Sending takes a one-second hold, and the receipt says who got which tier.

Why
Everything before release can be undone. A release can’t, so it’s the one place the interface asks for a deliberate act, and the analysts we talked to were willing to wait for it.

Design system

At a glance, the releaser can tell what Merlin suggested from what a person decided.

One library, grown from the original Merlin’s palette, where gray marks what a tier’s rules required. Everything here is live; the tokens and the keyboard map are in the full case study.

Proposed and decided states

A link Merlin found is dotted, a rewrite it proposes is blue and underlined, and its drafts carry the spark. Once someone decides, each turns to ink.

A link Merlin found Same cable
A rewrite Merlin proposeswill resist a full transition
A draft Drafted by Merlin

AI error states

Every surface it touches has a state for working, unsure, failed and overridden, so the releaser can tell what it knows from what it’s guessing.

Checking Tier 4 against Tier 1

Tiles fill in as each tier finishes. Nothing is hidden while it runs.

Results

Featured by LAS, and recognized by the intelligence community.

Recognition
The Laboratory wrote about the project in its story on AI-assisted reporting. Stakeholders reviewed four concepts, and our team received a signed thank-you letter and an NSA coin.
Feedback
We walked a releaser from the NSA through the scenario, from the queue to the release decision. A reviewer singled out finding related reports, tiers and policy without searching again and again, and the map on this page grew from it.
What I learned
With high-stakes information, it isn’t enough for the visuals and interactions to be usable. You also have to design the control of the information: what each audience may see, what the AI may change, and who answers for it.
Visitors at the team’s Merlin poster, which shows the tier comparison, the node view and a report card with its status tags.

The team’s poster at the final review

Judgment phrases in Tiers 1 to 3 come from the team’s scenario. The rest of the prototype’s content was written for this concept: Tier 4 and Tier 5 wording, times and people, the 07:58 cable, the RPT-00010 quote, the release checks and some report titles. Portion marks follow 32 CFR 2001.