slack-reply-drafting

作者: openai

根据可用上下文起草Slack回复。当用户希望帮助查找可能需要回复的消息并准备回复草稿时使用。

npx skills add https://github.com/openai/plugins --skill slack-reply-drafting

Slack Reply Drafting

Use this skill to identify messages that likely need a reply and produce Slack-ready draft responses from the available context.

Related Skills

WorkflowSkill
Refine, draft, or send the final Slack text../slack-outgoing-message/SKILL.md

Start Here

  • If the user provided channels, threads, DMs, people, or topics, use that scope instead of the default search.
  • If no source scope was provided, default to searching:
    • unanswered direct conversations
    • direct mentions
    • threads with prior user participation and newer replies
    • threads with prior user mention and newer replies
  • For time-specific requests, resolve the user's timezone with slack_read_user_profile.

Support Boundaries

  • This skill is for draft-first reply workflows.
  • If the user explicitly asks to send a reply now rather than prepare a draft, gather the needed Slack context here if useful, then switch to ../slack-outgoing-message/SKILL.md and send directly.
  • Do not invent facts, commitments, approvals, or decisions. If the context is not enough to answer confidently, draft a clarifying reply instead of guessing.

Workflow

  1. Resolve the current user with slack_read_user_profile so you have the user's user_id and can resolve the time window if necessary.
  2. Resolve the time window if the user supplied one.
  3. If the user provided an explicit scope, use the cheapest matching path:
    • specific thread: slack_read_thread
    • named channel: slack_search_channels, then slack_read_channel
    • named person or DM: slack_search_users, then slack_search_public_and_private
    • bounded keyword search: slack_search_public_and_private
  4. If no scope was provided, search these default categories:
    • unanswered direct conversations: slack_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 alone
    • direct mentions: slack_search_public_and_private with query set to <@USER_ID>
    • threads with prior user participation: slack_search_public_and_private with query set to from:<@USER_ID> is:thread, then slack_read_thread for newer replies
    • threads with prior user mention: slack_search_public_and_private with query set to <@USER_ID> is:thread, then slack_read_thread for newer replies after the mention
  5. Keep only candidates where the latest unresolved ask is from someone else, or where newer replies appeared after the user's last substantive reply or mention. Do not count emoji-only, acknowledgement-only, or other non-answer chatter from the user as a reply.
  6. Expand only the threads or surrounding messages needed to answer accurately. Answer the question first, then add clarification or next steps when the context supports it.
  7. If the context is incomplete, write the smallest useful clarifying reply instead of pretending the answer is known.
  8. Finish according to the user's explicit intent:
    • draft/review-first flow: create the draft with slack_send_message_draft in the source channel or DM
    • explicit send-now flow: switch to ../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.

Drafting Rules

Formatting

  • For a concise Slack or chat summary, you MUST use exactly this structure unless the user explicitly requests a different format.
  • If you use ../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>
  • Keep each item minimal: a short header plus the draft link.
  • The header should identify the channel, DM, or thread.
  • If the user asked for a single reply, return just that item.
  • If no unreplied messages are found, say so directly and explain the scope checked.

来自 openai 的更多技能

user-context
openai
加载或管理数据分析插件的持久化源路由偏好、引导逻辑、设置进度及语义层注册表。
official
notion-research-documentation
openai
研究Notion内容,并将其综合成带有引用的结构化简报、报告或对比。通过定向查询搜索并获取Notion页面,然后按主题组织发现,附带内联来源引用和参考文献部分。根据范围和用户目标,从四种输出格式(快速简报、研究摘要、对比、综合报告)中选择。使用内置模板创建和更新Notion页面;直接链接来源,并在新信息到达时跟踪变更...
official
rcsb-pdb-skill
openai
提交紧凑的RCSB PDB请求以获取核心元数据、Search API查询和FASTA下载。当用户需要简洁的RCSB摘要时使用;保存原始JSON或…
official
pdf
openai
PDF的读取、创建与验证,支持可视化渲染与程序化生成。使用Poppler(pdftoppm)将PDF页面渲染为PNG,以便在交付前直观检查布局、间距与排版;通过reportlab程序化生成PDF,确保格式可靠;利用pdfplumber或pypdf提取文本与元数据。执行质量标准:无文本裁剪、元素重叠、表格损坏或渲染伪影;仅使用ASCII连字符,引用内容需可读。使用...
official
test-coverage-improver
openai
改进OpenAI Agents JS mon
official
playwright
openai
基于终端驱动的浏览器自动化,支持元素快照与交互式UI工作流。通过playwright-cli包装脚本运行(需npx),支持无头模式与有头模式进行可视化调试。核心工作流:打开页面、获取快照以稳定元素引用、使用引用进行交互、在导航或DOM变更后重新快照。包含表单填写、点击、输入、多标签页管理、截图/PDF捕获及用于流程调试的追踪记录。元素引用(如e3、e15)...
official
ukb-topmed-phewas-skill
openai
通过接受rsID、GRCh37或GRCh38输入并解析为所需的GRCh38查询,获取单个变体的紧凑型UKB-TOPMed PheWAS摘要。当需要…时使用。
official
code-review-context
openai
模型可见上下文
official