Communitygithub.com

TrackerJo/github-pr-attachments

将本地的 PR 截图和录屏上传至 GitHub,并利用 GitHub CLI 的 `--attach` 功能将其嵌入 PR 正文或评论。在生成可视化证据后使用此技能。

github-pr-attachments 是什么?

此技能允许 AI 助手将本地 `artifacts/` 目录中的截图和录屏文件上传至 GitHub,并通过 GitHub CLI 的 `--attach` 命令将它们附加到 PR 正文或评论中。它避免了将仅用于 PR 的媒体文件提交到仓库,同时确保评审者能直接查看证据。支持多种工作流:首选方式是将 PR 正文连同本地媒体引用写入 Markdown 文件,然后一次性发布并上传所有文件;也支持仅追加证据或发布包含附件的评论。技能会验证上传是否成功,并检查最终 PR 中所有本地路径是否已被替换为 GitHub 托管的 URL。它严格禁止使用第三方文件托管服务、手动构造附件 URL,或因为工具缺失而削弱可视化证据要求。此技能在 `visual-proof` 捕获证据后、PR 标记为就绪前使用。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/TrackerJo/buildpurdue/tree/main/.agents/skills/github-pr-attachments

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

预览

来自技能 README

之前:移动端事件页面
之后:移动端事件页面

文档

GitHub PR 附件

GitHub 本身是 BuildPurdue PR 截图和录屏的批准托管平台。本技能将本地被忽略的证据转换为 GitHub 托管的 PR 附件,而无需将媒体文件提交到仓库。

在 visual-proof 捕获证据之后、用户可见的 PR 被称为就绪之前使用此技能。

前置条件

  1. 确认证据文件存在且位于被忽略的 artifacts/ 目录下。
  2. 确认已通过 gh auth status 验证 GitHub CLI 已对该仓库进行身份认证。
  3. 确认已安装的 CLI 支持附件功能,可通过检查相关命令的帮助信息确认,例如 gh pr edit --help 中是否包含 --attach。
  4. 确认目标 PR 和最新推送的提交是正在验证的提交。

不要从 gh 版本字符串推断附件支持,而应直接查询命令本身。

推荐工作流:正文中嵌入证据

当截图需要标题、前后对比表格或特定顺序时,将 PR 正文写入一个被忽略的本地 Markdown 文件,并按常规方式引用本地媒体路径:

## 可视化证据

| 之前 | 之后 |
| --- | --- |
| ![之前:移动端事件页面](artifacts/event-before-phone.png) | ![之后:移动端事件页面](artifacts/event-after-phone.png) |

[交互录屏](artifacts/event-flow.mp4)

然后通过同一条命令发布正文并附加所有引用的媒体文件:

gh pr edit <pr> \
  --body-file artifacts/pr-body.md \
  --attach artifacts/event-before-phone.png \
  --attach artifacts/event-after-phone.png \
  --attach artifacts/event-flow.mp4

GitHub CLI 会上传这些文件,并将匹配的本地 Markdown 引用重写为最终 GitHub 托管的附件 URL。这比手动粘贴 URL 更优,因为正文在上传前保持可读,且最终 URL 由 GitHub 管理。

仅追加证据

当布局不重要时,可以追加图像或视频而不替换 PR 正文:

gh pr edit <pr> --attach 'artifacts/after.png#之后:修正后的移动端布局'

对于多个文件,重复使用 --attach。为截图使用有用的替代文本。视频不接受替代文本。

如需在 PR 评论而非正文中添加证据:

gh pr comment <pr> \
  --body-file artifacts/evidence-comment.md \
  --attach artifacts/after.png \
  --attach artifacts/interaction.mp4

验证发布

将命令的退出码和 PR 本身视为独立的检查。GitHub 可能成功上传某些文件,而另一个附件可能失败。

每次上传后:

  1. 检查命令退出状态。
  2. 重新从 GitHub 读取 PR 正文或评论。
  3. 确认每个必需的本地路径已被替换为 GitHub 托管的 URL。
  4. 确认没有因本地 Markdown 路径不匹配而导致的重复追加附件。
  5. 当活动工具支持时,打开 PR 中发布的媒体。
  6. 确认媒体证明了最新推送的提交,并且不包含任何秘密、令牌、个人数据、电子邮件地址、一次性密码或不相关的用户内容。

如果任何必需的附件缺失或过时,则 PR 未就绪。

硬性限制

  • 绝不要提交仅用于 PR 的截图或录屏。 不要为了链接证据而添加 .github/pr-assets/、public/pr-assets/、文档媒体或其他被追踪的资源目录。
  • 绝不要对 BuildPurdue PR 证据使用第三方文件托管服务,除非用户明确批准该托管服务用于特定情况。
  • 绝不要发明、预测或手动构造附件 URL。 只使用 GitHub 返回或写入的 URL。
  • 绝不要因为缺少上传工具而削弱可视化证据要求。 如果 --attach 不可用,报告该确切前提条件,并保持 PR 为未就绪状态。
  • 绝不要发布敏感捕获内容。 在上传前进行脱敏或重新捕获。
  • 将本地证据保留在 artifacts/ 中;该目录被有意加入 gitignore,验证 GitHub 托管的证据后可以删除。

存在此技能的原因

这遵循与 T3 Code 相同的操作规则:用户可见的更改带有可评审的可视化证据,该证据上传到 GitHub,且仅用于 PR 的截图永远不会提交到产品历史中。

GitHub 的 CLI 附件功能行为类似于浏览器粘贴/拖放:它将图像或视频上传到 GitHub,并将托管 URL 插入 PR 或评论中。

来源

源文件

在 .agents/skills/ 下编辑此副本。pre-commit 钩子会将其镜像到 .claude/skills/;不要直接编辑镜像文件。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能