协作办公
回答 Slack 平台概念/操作问题或查找、总结…
适用于查找、抓取、总结 Slack 官方文档(docs.slack.dev)页面,并基于实时文档回答 Slack 平台概念或操作问题。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
回答 Slack 平台概念/操作问题或查特定
解决思路
- 把 docs.slack.dev 官方文档当作唯一事实来源;不要凭记忆回答 Slack 平台事实问题,先发现页面、抓取内容,再依据内容回答。
- 优先读取任何页面的 `.md` 版本而非 HTML 版本,以便更干净地阅读和引用。
- 每次抓取的 markdown 页面开头都有 `Source: <url>` 行;保留该 URL,便于回引给开发者。
- 不确定或需要总览时,先读 `https://docs.slack.dev/llms.txt`;它是面向 LLM 的精选平台概览和推荐构建路径,尤其适合宽泛的“how do I build X on Slack?”问题。
- 如果输入 `$0` 是 `docs.slack.dev` URL,直接走 Fast Path,跳到 Step 2 抓取并阅读;如果 `$0` 是主题,则从 Step 1 搜索开始。
- 使用搜索 API `GET https://docs.slack.dev/api/v1/search?query=<url-encoded query>&category=<category>&limit=5` 发现候选页面;`query` 必填,缺失会返回 `400` 和 `error`。
- 搜索时始终先指定 `category`,因为无分类搜索会被 SDK 参考页主导,埋没概念和参考内容。
- 按开发者意图选择初始 `category`:`guides` 默认用于“how do I…”“what is…”和概念问题(Events API、OAuth、Socket Mode、manifests、modals、App Home);`reference` 用于具体 method、event、scope、object 或 Block Kit 元素,尤其是 `chat.postMessage` 这类精确名称;工具/SDK 分类只在明确开发者所用工具后使用。
- 示例:把 `socket mode` 作为概念搜索时使用 `https://docs.slack.dev/api/v1/search?query=socket%20mode&category=guides&limit=5`。
- 解析搜索响应 JSON,扫描 `results` 中的 `title`/`url`,选最匹配的页面,然后进入 Step 2 阅读。
- 已知完整分类:`guides`(概念与操作指南)、`reference`(API 参考:methods、events、scopes、objects、Block Kit)、`changelog`(变更日志/发布说明)、`python`(Python 工具:Bolt for Python、Python Slack SDK)、`javascript`(JavaScript 工具:Bolt for JS、Node Slack SDK)、`java`(Java 工具:Bolt for Java、Java Slack SDK)、`slack_cli`(Slack CLI 文档)、`slack_github_action`(Slack Send GitHub Action 文档)、`deno_slack_sdk`(Deno Slack SDK 文档)。
- 如果分类搜索没有好结果,先放宽:尝试另一个可能分类(`guides` ⇄ `reference`),最后才完全去掉 `category`。
- 如果传入无法识别的 `category`,会返回 `400` 和列出有效分类的 `error`;用其中有效分类或不带分类重跑。
- 搜索无好结果或返回 `500`/临时错误时(端点有限流,缓存约 5 分钟),回退:WebFetch `https://docs.slack.dev/llms-sitemap.md`,它是所有文档页面 `.md` URL 的平铺列表,扫描相关路径。
- API 参考查找可用增强索引页加速:`https://docs.slack.dev/reference/methods.md`、`.../events.md`、`.../scopes.md`、`.../objects.md`、`.../block-kit.md`;每个列出所有条目、一行描述和 `.md` 链接。
- 如果开发者有 Slack CLI,可用 `slack docs search "<query>"` 在终端做同样的发现(参见 `slack:slack-cli` skill)。
- 不要编造文档 URL;只能从搜索 API、sitemap 或开发者给的链接获取,然后通过抓取验证。
- 不要转述没有实际抓取过的页面;如果抓取失败,明确说明,不要凭记忆补全。
- 不要假设每个 URL 都有 `.md` 版本;如果抓取报错,回退到搜索 API 或 sitemap(Step 1),不要猜测另一个 URL。
- Step 2 阅读页面时,先把引用规范化为 `.md` URL:来自 Step 1 的站内相对路径(如 `/apis/events-api/using-socket-mode`)前加 `https://docs.slack.dev`;开发者粘贴的完整 URL 先去掉 `#anchor`;然后追加 `.md`,例如 `…/using-socket-mode` → `https://docs.slack.dev/apis/events-api/using-socket-mode.md`。
- 注意服务器会把 `.md` 请求转小写,因此大小写无关:`chat.postMessage.md` 和 `chat.postmessage.md` 都能解析。
- WebFetch 规范化后的 `.md` URL;页面开头是 `Source: <original-url>`,其余是 markdown 正文。
- 根据抓取内容回答开发者,并引用 `Source` URL;如果页面很长而问题很窄,只引用相关章节,不要倾倒整页。
- Step 3:先确认开发者使用哪个官方工具/SDK,再阅读对应文档子树;每个工具位于 `https://docs.slack.dev/tools/<name>`,其页面也像其他页面一样可用 `.md` 抓取(如 `https://docs.slack.dev/tools/bolt-js/concepts.md`);如果开发者没说,先问再假设。
- 工具映射:Slack CLI 文档路径 `/tools/slack-cli`、搜索 `category=slack_cli`,用于从终端 scaffold/run/manage app、提到 `slack` 命令或 app manifests。
- Bolt for JavaScript:`/tools/bolt-js`、`category=javascript`,用于 Node/TypeScript 下用 Bolt 框架构建 app。
- Bolt for Python:`/tools/bolt-python`、`category=python`,用于 Python 下用 Bolt 框架构建 app。
- Bolt for Java:`/tools/java-slack-sdk`、`category=java`,用于 Java 下用 Bolt(Bolt for Java 在 Java SDK 文档中)。
- Node Slack SDK:`/tools/node-slack-sdk`、`category=javascript`,用于不使用完整 Bolt 框架、需要更低层 Node 客户端(`@slack/web-api`、`@slack/socket-mode`)。
- Python Slack SDK:`/tools/python-slack-sdk`、`category=python`,用于不使用 Bolt 的更低层 Python 客户端。
- Java Slack SDK:`/tools/java-slack-sdk`、`category=java`,用于 Java 客户端,或正在用 Bolt for Java。
- Slack Send GitHub Action:`/tools/slack-github-action`、`category=slack_github_action`,用于从 GitHub Actions workflow 发送数据到 Slack。
- 知道工具后,用匹配的 `category` 收窄发现,例如 `…?query=middleware&category=javascript`;语言分组:Bolt for JavaScript 和 Node Slack SDK 都归 `javascript`,`python` 和 `java` 也各自覆盖对应 Bolt 框架加更低层 SDK,分类按语言家族而非单一子树。
- Bolt 是构建在对应语言 SDK 之上的框架;不确定主题属于哪个子树时,回退到搜索 API(Step 1),因为它索引所有这些内容。
适用边界 · 注意事项
- 不适用于非 Slack 平台的问题,或与 docs.slack.dev 文档无关的一般编程问答。
- 不适用于需要访问具体 Slack workspace 内部状态、私有数据或私有配置的问题;该文档站点无需认证也不提供 workspace 访问。
- 当没有网络或无法使用 WebFetch 等抓取工具时,无法保证从实时文档回答,应说明限制而不是凭记忆作答。