Slack Catch-Up
Use when someone asks what they missed in Slack, to be caught up, or for a recurring catch-up digest. Reads the channels they care about and their own threads over a time window and returns a short digest: what needs them, what was decided, and a little FYI, each item linked.
Package
Skill files
SKILL.md
markdown
name: slack-catch-up
description: "Use when someone asks what they missed in Slack, to be caught up, or for a recurring catch-up digest. Reads the channels they care about and their own threads over a time window and returns a short digest: what needs them, what was decided, and a little FYI, each item linked."
Slack Catch-Up
Write a short, skimmable digest of what happened in Slack while one person was away. Write it for that person, not for the channel.
Window
- Asked directly ("catch me up", "what did I miss"): use the window they name. Otherwise use the last 12 hours, or since the end of their last workday if that is longer.
- Scheduled: cover from the previous run's start to now, so consecutive digests neither overlap nor leave gaps. If a run is late, still start at the previous run's start.
- Use the person's own timezone for any times you mention.
Which channels
Decide the set before reading, in this order:
- Channels the person names in the request.
- Channels they have asked you to cover before (from their instructions or memory).
- Otherwise, the channels they have been active in recently: call
get_recent_activitywithscope: "all",sinceat the window start, andlimit: 25, and take the channels their threads live in.
Read only channels you can read. Never imply the digest covers DMs or channels you did not read. If you inferred the set, say so in the footer so they can correct it.
Method
- In one parallel batch, call
slack_fetch_channel_historyfor every channel in the set witholdestat the window start, and callget_recent_activitywithscope: "all"andsinceat the window start to catch threads the person took part in anywhere. - For any thread with replies inside the window whose topic might qualify, call
slack_read_threadand judge from the full thread, not its opening message. - If a channel returns its full page of messages, say coverage was capped for that channel rather than implying you saw everything.
What counts
Keep an item only if it does one of these:
- names the person, or asks a question that is waiting on them;
- changes something they own or work on (infer this from their role, their recent threads, and what they have told you);
- records a decision, a reversal, or a change of scope;
- reports a breakage, launch, or deadline that affects the above.
Drop bot alert streams, other people's recurring digests, emoji-only replies, threads that ended with no outcome, and anything already resolved inside the window.
Output
Lead with the one thing they would most regret missing, in a single line. If nothing qualifies, the first line says that plainly, and the digest ends after FYI.
Then, skipping any empty section:
- Needs you: numbered. Each item is one line: who asked and what they want, linked to the exact message.
- Decisions and changes: one line each, linked.
- FYI: at most three lines.
Rules:
- Every item links its message using the
permalinkthe read tool returned, on the words naming the thing. Never build a link from IDs. - Write channels as
<#CHANNEL_ID>so Slack renders them. - Name people in plain language. Resolve an ID with
slack_lookup_userbefore using a name, and use neutral wording when it does not resolve. - Keep it under about 200 words. No preamble, no "here's your digest", no closing offer.
- Write in the language the person uses with you.
- End with one quiet footer line: the channels covered (and whether you inferred them), the window, and that DMs and unread channels are not included.
---
name: slack-catch-up
description: "Use when someone asks what they missed in Slack, to be caught up, or for a recurring catch-up digest. Reads the channels they care about and their own threads over a time window and returns a short digest: what needs them, what was decided, and a little FYI, each item linked."
---
# Slack Catch-Up
Write a short, skimmable digest of what happened in Slack while one person was away. Write it for that person, not for the channel.
## Window
- **Asked directly** ("catch me up", "what did I miss"): use the window they name. Otherwise use the last 12 hours, or since the end of their last workday if that is longer.
- **Scheduled**: cover from the previous run's start to now, so consecutive digests neither overlap nor leave gaps. If a run is late, still start at the previous run's start.
- Use the person's own timezone for any times you mention.
## Which channels
Decide the set before reading, in this order:
1. Channels the person names in the request.
2. Channels they have asked you to cover before (from their instructions or memory).
3. Otherwise, the channels they have been active in recently: call `get_recent_activity` with `scope: "all"`, `since` at the window start, and `limit: 25`, and take the channels their threads live in.
Read only channels you can read. Never imply the digest covers DMs or channels you did not read. If you inferred the set, say so in the footer so they can correct it.
## Method
1. In one parallel batch, call `slack_fetch_channel_history` for every channel in the set with `oldest` at the window start, and call `get_recent_activity` with `scope: "all"` and `since` at the window start to catch threads the person took part in anywhere.
2. For any thread with replies inside the window whose topic might qualify, call `slack_read_thread` and judge from the full thread, not its opening message.
3. If a channel returns its full page of messages, say coverage was capped for that channel rather than implying you saw everything.
## What counts
Keep an item only if it does one of these:
- names the person, or asks a question that is waiting on them;
- changes something they own or work on (infer this from their role, their recent threads, and what they have told you);
- records a decision, a reversal, or a change of scope;
- reports a breakage, launch, or deadline that affects the above.
Drop bot alert streams, other people's recurring digests, emoji-only replies, threads that ended with no outcome, and anything already resolved inside the window.
## Output
Lead with the one thing they would most regret missing, in a single line. If nothing qualifies, the first line says that plainly, and the digest ends after FYI.
Then, skipping any empty section:
- **Needs you**: numbered. Each item is one line: who asked and what they want, linked to the exact message.
- **Decisions and changes**: one line each, linked.
- **FYI**: at most three lines.
Rules:
- Every item links its message using the `permalink` the read tool returned, on the words naming the thing. Never build a link from IDs.
- Write channels as `<#CHANNEL_ID>` so Slack renders them.
- Name people in plain language. Resolve an ID with `slack_lookup_user` before using a name, and use neutral wording when it does not resolve.
- Keep it under about 200 words. No preamble, no "here's your digest", no closing offer.
- Write in the language the person uses with you.
- End with one quiet footer line: the channels covered (and whether you inferred them), the window, and that DMs and unread channels are not included.
Related