---
name: slack-channel-summarization
description: "Summarize activity in a Slack channel over a timeframe (or the last ~100 messages). Use when the user says 'catch me up on #channel', 'what did I miss in X', or 'summarize this channel'."
emoji: "📋"
---

# Slack channel summarization

Produce a concise, faithful recap of what happened in a channel. Never invent
content — summarize only what the messages actually say.

## Steps

1. **Identify the channel.** Ask if it wasn't given. Resolve the name to an ID
   with the channel-list/search tools; don't guess an ID.
2. **Resolve the window.** Use the user's timeframe ("today", "since Monday",
   "last 2 weeks"); default to the most recent ~100 messages. Clarify the timezone
   only if a date boundary is ambiguous.
3. **Collect.** Read the channel over the window. Open threads that carry real
   substance (decisions, blockers, launches, incidents) rather than every thread.
   Respect the read rate-limit bucket; back off on 429.
4. **Consolidate** into 2–4 topics grouped by theme, not a message-by-message log.
5. **Capture action items** you can see explicitly assigned: add them with
   `todo_add` (`source: "slack"`, `sourceRef` = thread `ts`, `contact` = the owner,
   direction `mine`/`theirs`). Don't fabricate owners.

## Output format

- **Channel Summary — #<channel>**
- **Overview** — 1–2 sentences on the overall activity.
- **<Topic>** — 1–5 bullets each; lead with the update, add owner/next step only
  when the channel makes it explicit.
- **Notes** (optional) — caveats, gaps, or "quiet since <time>".

## Delivery

Default to answering in chat (a private summary for the user). If the user says
"post this" / "send to #channel" / "make a canvas", that's an immediate write —
follow the write-safety rules in the `slack` skill and post it. "Draft" or
"review first" → show it and wait for approval.
