66  与 GitHub 代码库协作

Claude Tag 从 Slack 中与你的 GitHub 代码库协作:在话题中回答问题、订阅 Pull Request,并将小任务变为草稿 Pull Request。

export const BetaNote = () => Claude Tag 目前处于公开测试阶段。本文档中描述的功能和行为在正式发布前可能会有所变化。;

66.1 GitHub 提示词的工作原理

本页适用于工程师和任何有代码库问题的人。Claude 与管理员为频道授权的 GitHub 代码库进行交互。它阅读代码来回答问题、监看你指定的 Pull Request,并将变更以草稿 Pull Request 的形式返回。

下方每个提示词都是一条 Slack 消息。将其粘贴到问题所在的频道或话题中。Claude 将代码库克隆到 Anthropic 托管的隔离工作区中,在该话题中发布进展,并在此交付结果。

在第一条消息中指定代码库名称。会话开始时没有已检出的代码库,只有在请求中指定时才会克隆。Claude 在 GitHub 上的任何操作均由 Claude GitHub App 提交,因此它会像其他 Pull Request 一样出现在你的审查队列中。

管理员将代码库授权给需要它的频道,关于代码的问题仅在这些频道中有效。默认情况下,这些频道中的任何人都可以提问,管理员可以限制谁可以使用 Claude

66.2 检查频道的连接

确认频道已配置以下连接。输入 @Claude what can you access from this channel?,回复还会列出频道可以访问的代码库。管理员可以为频道添加缺失的连接

连接 示例 在此处的作用
代码 GitHub 必需。读取已授权的代码库并提交草稿 Pull Request

相同的工作流程也适用于其他版本控制系统。对于 GitLab,管理员使用访问令牌进行连接,而非 GitHub App,Claude 以相同方式克隆其代码库。

如果 Claude 回复说某个代码库未配置,说明该代码库未被授权给此频道。管理员可以验证 GitHub 访问权限。授权变更后,请开启新话题并在第一条消息中指定代码库名称。

66.3 提示词

66.3.1 回答代码库问题,不打断作者

频道中出现了关于代码行为的问题,而编写代码的人不在。Claude 克隆代码库、阅读代码,并在话题中发布答案。

text wrap theme={null} @Claude in acme/data-pipeline, how does the export retry logic decide when to give up? Name the files involved.

要求列出相关文件为答案附上了依据,话题中的任何人都可以打开这些文件进行验证。

调查类问题的工作方式相同:某个行为最后是何时变化的、在哪个提交中、作者是谁。

text wrap theme={null} @Claude in acme/data-pipeline, did the export retry behavior change recently? Find the commit that changed it, when it landed, and who wrote it.

克隆包含代码库的完整提交历史,因此历史问题与代码问题使用相同的检出。如果代码库中有 CODEOWNERS 文件,关于路径归属的问题也会从中读取。

66.3.2 不再反复刷新 Pull Request

你的工作被同事的 Pull Request 阻塞,知道它进展的唯一方式就是不断刷新页面。Claude 订阅该 Pull Request 并在有更新时在话题中发布消息,无论这个 PR 是 Claude 还是人工创建的。

text wrap theme={null} @Claude subscribe to PR #519 in acme/data-pipeline, the schema migration. When CI finishes or a review arrives, post here, and tag me if anything failed.

Claude 读取 Pull Request 的工作流运行和日志,因此发布的内容会说明检查是通过还是失败。要查看或取消订阅,请参阅管理常驻任务。由于提示词仅要求在失败时标注你,通过的运行只发布到话题中而不会通知你。

66.3.3 交接你一直搁置的变更

那些小的、已经想清楚怎样做的变更,因为永远不紧急而在待办列表上躺了好几周——文档与代码不一致、配置项保留着旧名称、依赖版本迟迟不升。在一条消息中描述它,它会变成一个草稿 Pull Request 并链接到话题。

text wrap theme={null} @Claude in acme/data-pipeline, the CSV export docs still describe the old date format. Update them to match the code and open a draft PR. Done means CI is green and the PR links back here.

在任务中写入完成定义让会话能够自查工作是否达标。变更以草稿 Pull Request 的形式出现在你的审查队列中,由 Claude 自己的 GitHub 身份提交。

66.3.4 在报告到达时分诊疑似 Bug

反馈频道收到一条报告,但还没人知道它是不是 Bug。Claude 调查代码库,要么解释该行为,要么提交草稿修复。

text wrap theme={null} @Claude a user reports that exports drop rows with empty dates. In acme/data-pipeline, is that a bug or intended behavior? If it's a bug, open a draft PR with a fix; if it's intended, explain here what the code does.

关于从 Bug 报告到 CI 通过的完整流程(包括监控 Bug 频道的常驻任务),请参阅修复 Bug。由于提示词要求修复或解释二选一,即使行为最终是预期的,话题中也会得到答案。

66.3.5 一条消息完成交接和订阅

你可以将前面的方案合并到一条消息中。下方的提示词交接了一个变更、设定了完成定义,并要求 Claude 订阅它自己提交的 Pull Request。

text wrap theme={null} @Claude in acme/data-pipeline, the deprecation warnings in the export module still reference the removed legacy-dates option. Remove the stale warnings and open a draft PR. Done means CI is green and the PR links back here. Then subscribe to your own PR, and when CI finishes or a review arrives, post here and tag me if anything failed.

Claude 提交草稿后就像跟踪任何 Pull Request 一样跟踪它,因为订阅机制对 Claude 创建的和人工创建的 Pull Request 一视同仁。CI 结果和审查活动作为消息发布到话题中,你只需打开 GitHub 审查最终变更。

66.3.6 处理审查评论和 CI 失败

Claude 可以监看 Pull Request,在 CI 失败、收到审查评论和变更请求时逐一处理,直到 Pull Request 准备好合并。批准和合并由你完成。

text wrap theme={null} @Claude watch your PR #562 in acme/data-pipeline. When CI fails, fix it and push. When a review comment arrives, address it and push. Post here after each push saying what changed and why. Done means CI is green and every comment is addressed. I do the approving and merging.

如果你不希望 Claude 批准或合并 Pull Request,请开启限制谁可以合并的分支保护规则。这些规则同样适用于 Claude。同时,像示例中那样在任务中写明”批准和合并由我完成”。任务措辞表达了你的意图,但这是 Claude 可能遗忘的指令,不是强制控制。分支保护规则才是真正的强制手段。

要求每次推送后发布一条消息,这样你就可以从话题中跟踪 Pull Request,而不必打开 GitHub。

66.4 CLAUDE.md 中的代码库指引

如果代码库有 Claude 应遵循的规范(如文件布局、Pull Request 标签或需要安装的依赖),请将它们添加到代码库根目录的 CLAUDE.md 文件中。当 Claude 将代码库克隆到会话中时,其 CLAUDE.md.claude/CLAUDE.md.claude/rules/*.md 文件会在下一轮加载,因此指引无需额外提示即可生效。代码库 .claude/skills/ 文件夹中的技能也会加载,Claude 可以在拥有该代码库的会话中使用它们。任何有代码库写权限的人都可以编辑这些文件,它们会触达从任何频道在该代码库中工作的每个会话。

每个会话在隔离的沙盒中运行,配有标准预装工具集。两个话题就是两个拥有独立沙盒的会话。如果代码库需要标准工具集之外的工具(如语言运行时或数据库客户端),请将安装命令添加到 CLAUDE.md 中,Claude 会在需要时运行它们

CLAUDE.md 是指引而非强制。如果 Pull Request 必须携带标签或通过检查,请将其设为代码库规则。关于 CLAUDE.md 在频道记忆、频道指令和技能之间的位置关系,请参阅让 Claude 记住规范

66.5 相关资源

从 Bug 报告到草稿 Pull Request 和 CI 通过的完整流程



Pull Request 订阅和其他常驻任务