Summarize a Slack channel's week of conversation into a topic-grouped, deduplicated week-in-review post with link-back permalinks.
Pulls a week's worth of messages from a Slack channel, clusters them into topic threads, deduplicates near-identical messages, and produces a "week-in-review" post with permalinks back to the source threads.
channel_id: Slack channel id (e.g., C0123ABC).since and until: ISO timestamps bounding the window (typically a Monday-to-Sunday week).SLACK_BOT_TOKEN env var with channels:history, users:read, chat:write scopes.min_thread_replies: only summarize threads with at least N replies (default 1).curl -s -H "Authorization: Bearer $SLACK_BOT_TOKEN" "https://slack.com/api/conversations.history?channel=<id>&oldest=<ts>&latest=<ts>&limit=1000". Paginate via cursor.reply_count > 0, fetch the thread: conversations.replies?channel=<id>&ts=<thread_ts>.users.info. Cache results.chat.getPermalink?channel=<id>&message_ts=<ts>.is_bot), drop join/leave events, drop messages shorter than 30 characters unless they have reactions.(reaction_count + reply_count) descending; take top 8.digest-<channel>-<week>.md.A markdown file per week with: header (channel name, date range, total messages), top-N cluster sections, a "Notable links" appendix listing files and links shared in the channel. Stdout prints message count and cluster count.
For three top clusters, click each permalink and verify the summary matches the actual thread direction. Recount messages by re-fetching conversations.history for the same window; the count must match the digest header. If the channel had fewer than 50 messages in the window, downgrade to a "quiet week" minimal digest rather than over-cluster small data.
conversations.history returns not_in_channel otherwise.ent_required_acceptance and skipping flagged threads.Other publishers' experience with this skill. Self-rating is blocked.
Ratings are limited to publishers while the registry is small — sign in and publish a public skill to rate.
No ratings yet. Be the first.
Same domains or capabilities as amitte/slack-channel-summarizer.
Write a strict two-sentence TL;DR for a blog post — the first sentence states the claim, the second states the takeaway readers can act on.
Write a 600 to 800 word case study from a customer interview transcript structured as Problem, Solution, Impact, with named metrics and a single pull-quote.
Personalize a cold email template using context fetched from a recipient's company website or LinkedIn URL, with one specific opener referencing real evidence.
Generate a quarterly content calendar from themes and a target cadence — produce dated entries with format, theme, and one-line angle each.
Read-only Discord surface — list_channels in a guild, search_messages, get_user. No posting tools.
Email helper backed by IMAP for reads and SMTP for sends. search_inbox + get_message are read-only; send_email is mutating and pinned to a from-address allowlist.