Skip to main content
Every product has a short list of things most worth fixing this week. Usually nobody writes it down, and the people who could are busy. This recipe has an agent keep that list. On a schedule it reviews a sample of real sessions, folds what it finds into a ranked set of themes, and posts the top five to your channel whenever the list changes. When a theme gets a ticket, the agent that builds the fix can open the same sessions. When the fix ships and the pattern stops showing up, the theme retires on its own. The list is the product. It changes as your product changes, and a new critical pattern goes straight to the top.

What you need

  • The Subtext capture snippet installed and recording real sessions. Start with Install the capture snippet if you haven’t.
  • The official Subtext plugin for Claude Code, Cursor, or Codex, which configures the MCP connection and runs inside each harness’s scheduling features. Any other agent can connect to the hosted server at https://api.fullstory.com/mcp/subtext with an API key. See Manual install.
  • A place for the list. Any table your agent can read and write through a tool: a Notion or Airtable database, a Linear project, or a markdown file in your repo. One table is enough.
  • A channel your team already reads and your agent can post to. Slack, most often.
  • An agent that can run a prompt on a schedule. Claude Code, Cursor, and Codex can all create a scheduled routine from inside a chat.

Set it up

Paste this page’s link to your agent and tell it what to watch and where to post:
The agent creates the table, writes the routine below with your routes, table, and channel filled in, and schedules it. Ask it to run the routine once by hand before the first scheduled run so you can see the first digest and the cost.

The routine

This is the prompt the schedule runs. It is written for an agent that has the Subtext tools plus a tool for your table and your channel. Replace the placeholders in braces.
UX digest routine

The table

One row per theme. Your agent creates it with these columns.

Closing the loop

The list is only useful if things leave it. The path a theme takes:
  1. New. The routine found it and posted it. Someone reads the summary, opens a session link, and decides.
  2. Ticketed. A person files a Linear or Jira ticket and puts the key on the theme. The ticket carries the theme’s session links, so the agent that picks it up can open the exact sessions and see the failure before writing code. The Linear triage recipe shows that side.
  3. Fixed. The person marks the theme Fixed when the change ships. The routine keeps watching.
  4. Verified. Fourteen days with no new evidence and the routine retires the theme. If the pattern comes back, the theme returns to New marked as a regression and the digest shows it again.
  5. Closed. Not a bug, by design, or not worth it. A person sets it. The theme keeps counting quietly and never posts.
A theme can jump the queue at any point. A new Critical pattern ranks first in the next digest whatever else is on the list.

Budget

Each run spends two credits on search, one per summary, and ten per opened session. At the defaults that is about 190 credits, plus model tokens for the summaries and ten deep reviews. A run on a low-traffic area in the reference build spent 141 credits and roughly $14.50 in tokens to record 9 findings. Raise the number of opened sessions only after a week of digests shows the extra reviews produce themes people act on. Fifty to eighty summaries is enough to see the patterns behind a targeted search; more mostly re-reads the same ones.

Check it

Ask your agent to demonstrate these before trusting the schedule:
  • Every review-open is followed by a review-close, including when the review fails.
  • Running the routine twice over the same window adds no duplicate evidence lines.
  • A session link in the digest opens the replay player at the moment the finding names.
  • A Closed theme gains evidence but never appears in a digest.
  • A run where no theme changed posts nothing.
  • A Fixed theme with no new evidence for 14 days becomes Verified without anyone touching it.

Scaling up

The single routine covers one area and one channel. Split it when:
  • several product areas have different owners and different channels
  • triage needs to fan out across subagents to stay inside a context window
  • you want each finding kept as its own immutable row, not a line on a theme
  • you want a cost ledger per run and a gate that holds the digest when an earlier step failed
UX digest at scale describes that version: three scheduled agents, an observations table, a run ledger, and per-area digests.
  • Session Review overview: what an agent does once a session is open.
  • Tools reference: review-search predicates, review-open, review-zoom, review-close and their credits.
  • Linear triage: the ticket side of the loop, where a session link on an issue triggers a review.