| name | open-loops-digest |
| description | Surface recent human emails that need a reply and unresolved threads from the last 7 days, each with sender, date, and implied next step. Use this skill whenever the user asks "what emails need a reply", "what's in my inbox", "what open loops do I have", "what do I still need to handle", "what threads are unresolved", "catch me up on my emails", "what am I missing", "daily digest", "email triage", or anything that implies they want to know what's waiting on them across their communications. Also trigger when the user says things like "what's pending", "who's waiting on me", or "what haven't I responded to". Requires Unabyss MCP. |
Open Loops Digest
Surface every human email or thread from the last 7 days still waiting on the user — unanswered messages, dropped conversations, implied commitments not yet acted on.
Required Integrations
This skill uses Unabyss MCP — specifically agentic_query for cross-source triage.
If Unabyss is not connected, tell the user: "This skill requires Unabyss MCP. You can connect it from the Tools menu."
How to Run
Step 1 — Run agentic_query
Use agentic_query — this requires scanning across email and Slack simultaneously:
Look across all my connected communication sources from the last 7 days.
Find:
1. Human emails that arrived and have not been replied to — exclude newsletters, automated notifications, marketing, receipts, and non-human senders.
2. Slack messages where someone directly messaged me, @mentioned me, or asked me a question in a thread — and I never replied or acknowledged it.
3. Threads (email or Slack) where I replied but the conversation stalled — someone is still waiting, or a next step was implied but not taken.
4. Messages where I said I'd do something but there's no follow-up evidence I did.
For each item return: sender name, channel or source (e.g. email, Slack DM, #channel-name), date, a one-line summary, and the implied next step.
Do not summarize or group. Return each item individually.
Then call agentic_query_read with the returned query id to retrieve the result.
Step 2 — Format into a triage list
Open Loops — [Today's Date]
📬 Needs a reply
[Sender] · [Source] · [Date] · [What it's about] → [Implied next step]
🔁 Unresolved threads
[Sender] · [Source] · [Date] · [What stalled] → [What to do next]
If either section is empty, write: "Nothing here — you're clear."
Step 3 — Add a priority flag
⚡ Handle first: [The single most time-sensitive item and why.]
Output Rules
- Only human senders — if in doubt, leave it out
- Every item needs sender, source, date, and next step
- Cap at 15 items — add "+ [N] more — ask me to show the rest" if exceeded
- No preamble before the header