slice icon Context Slice

Catch-Up Prioritization

When summarizing unread messages, prioritize based on stored preferences and natural importance signals.

Priority Tiers

Tier 1: Explicit Preferences (Highest)

Messages matching items in uiCatch-Up Preferences:

  • People: Messages from or mentioning listed contacts
  • Topics: Messages containing listed keywords or themes
  • Channels/Labels: Messages in specifically prioritized channels or with priority labels

Always lead with Tier 1 content in summaries.

Tier 2: Direct Engagement

Messages requiring the user's attention:

  • Direct mentions: @mentions of the user
  • Direct messages: DMs or emails sent specifically to them
  • Reply requests: Questions directed at them, action items assigned
  • Threads they participated in: Ongoing conversations they're part of

Detection patterns for emails:

  • Questions: ends with "?", contains "can you", "could you", "would you"
  • Action requests: "need your", "waiting for", "following up", "please review"
  • Urgency signals: "deadline", "EOD", "ASAP", "by [date]", "urgent"
  • Non-automated: sender is not noreply@, notifications@, etc.

Tier 3: High Activity

Signals that something important is happening:

  • Many participants: Conversations with 5+ people engaged
  • Rapid replies: Threads with many recent messages
  • Reactions: Messages with significant emoji reactions
  • Cross-channel mentions: Topics appearing in multiple channels

Tier 4: Everything Else

Other unread content, summarized briefly.

Summarization Style

Lead with what matters:

"Key updates: Sarah messaged about the budget deadline (you marked her as important). The #engineering channel is buzzing about the deploy—15 messages in the last hour."

Don't enumerate everything:

Bad: "Message 1: ... Message 2: ... Message 3: ..."
Good: "Three messages from the finance team about Q2 planning, mostly FYI."

Group by theme, not by channel/sender:

"The product launch is the hot topic—discussed in #product, #engineering, and a DM from Mike."

Note what can wait:

"Lower priority: Newsletter from HR, automated deploy notifications, general chatter in #random."

Learning Preferences

Update uiCatch-Up Preferences when:

  1. User asks follow-up questions about a topic or person

    • "Tell me more about what Sarah said" → Add Sarah to important people
  2. User explicitly states interest

    • "I care about budget discussions" → Add "budget" to topics
  3. User dismisses content

    • "I don't need to know about #random" → Add to deprioritize section
    • "Skip the Uber Eats emails" → Add sender to gmail.deprioritize

Format for preferences file:

# Last updated: 2024-01-15
slack:
  channels:
    - id: C123ABC
      name: engineering
      reason: "User's primary team channel"
  people:
    - name: Sarah Chen
      reason: "User asked follow-up questions about her messages"
  deprioritize:
    - id: C456DEF
      name: random
      reason: "User said they don't need updates from #random"

gmail:
  senders:
    - email: ceo@company.com
      reason: "User explicitly marked as VIP"
  topics:
    - keyword: budget
      reason: "User asked for more details on budget discussions"
  deprioritize:
    - email: uber@uber.com
      reason: "User doesn't want food delivery promos"
    - domain: noreply@
      reason: "Automated notifications"

general:
  topics:
    - keyword: product launch
      reason: "Mentioned across multiple catch-ups"

Messages matching deprioritize entries go directly to Tier 4, even if they would otherwise match Tier 2-3 signals.

Handling Edge Cases

No unread messages:

"You're all caught up! No new messages since [time]."

Too many unreads (100+):
Focus on Tier 1-2 only. Summarize Tier 3-4 as counts:

"Plus 87 other messages across 12 channels—mostly routine."

No preferences yet:
Use Tier 2-3 signals heavily. Ask:

"I noticed you asked about [topic]. Want me to prioritize messages about this in future catch-ups?"