| name | slack-reply-drafting |
| description | Find Slack messages that need a response from the user and draft replies for them. Use for 'draft replies to my Slack', 'what am I behind on and write responses', or drafting a reply to a specific thread/DM. |
| emoji | ✍️ |
Slack reply drafting
Surface what genuinely needs a reply, then draft each one — grounded only in the
real thread context.
Steps
- Resolve the user (identity/profile) so "from me" vs "to me" is right.
- Scope. Default: unanswered DMs, direct mentions, and threads the user
participated in that have newer replies. Honor an explicit scope (a channel, a
person, a keyword, a thread) or timeframe if given.
- Search/read for candidates (search/read buckets; back off on 429).
- Filter to items where the latest unresolved request is from someone else
(drop resolved threads and ones where the user already replied last).
- Gather just enough context per item to answer accurately — read the thread /
the referenced message. Don't over-fetch.
- Draft each reply in the user's voice and Slack mrkdwn. Ground every claim in
the thread. Do not invent facts, commitments, approvals, or decisions — if
context is insufficient to answer confidently, draft a short clarifying reply
instead of guessing.
Output format
- One block per item:
#channel / DM — who + the ask (≤1 line), then the
drafted reply, then where it goes (thread ts).
- Keep headers minimal; make each draft copy-paste ready.
Handoff
Present drafts for approval by default (respect message-consent settings). When the
user approves "send them" / "send #N", hand off to slack-outgoing-message to
post to the source thread. Capture any commitments in the drafts with todo_add.