Draft Slack replies from available context. Use when the user wants help finding messages that likely need a response and preparing reply drafts.
Use this skill to identify messages that likely need a reply and produce Slack-ready draft responses from the available context.
| Workflow | Skill |
|---|---|
| Refine, draft, or send the final Slack text | ../slack-outgoing-message/SKILL.md |
slack_read_user_profile.../slack-outgoing-message/SKILL.md and send directly.slack_read_user_profile so you have the user's user_id and can resolve the time window if necessary.slack_read_threadslack_search_channels, then slack_read_channelslack_search_users, then slack_search_public_and_privateslack_search_public_and_privateslack_search_public_and_private across im,mpim to generate candidate conversations, then slack_read_channel for each plausible candidate before deciding whether it needs a reply; do not decide from the search snippet aloneslack_search_public_and_private with query set to <@USER_ID>slack_search_public_and_private with query set to from:<@USER_ID> is:thread, then slack_read_thread for newer repliesslack_search_public_and_private with query set to <@USER_ID> is:thread, then slack_read_thread for newer replies after the mentionslack_send_message_draft in the source channel or DM../slack-outgoing-message/SKILL.md and send directly
Include thread_ts only for thread replies; otherwise omit the parameter entirely. If Slack returns draft_already_exists, stop and tell the user you cannot overwrite the existing attached draft via API.../slack-outgoing-message/SKILL.md to draft or send the final message, this output contract remains binding. The downstream skill does not relax or rename these sections.Format multiple drafts as:
**Reply Drafts — <scope>**
**<channel / DM / thread info>**
Draft: <link to draft>
**<channel / DM / thread info>**
Draft: <link to draft>