SuperAPI AI 工具集

inbox-triage

部署与运维

查看项目

更新于 10-15 10:55

技能介绍

用途

inbox-triage 用于每日整理 GitHub 通知收件箱,把需要处理的通知筛选出来并分类,避免维护者回复漏洞 PR 或安全公告开启后长时间无人查看。它读取的是 GitHub 通知收件箱这一层,覆盖入站回复、审阅请求、安全告警和提及。

主要能力

  • 通过 gh api /notifications --paginate 拉取 GitHub 通知,解析 JSON 数组,最多处理前 100 条。
  • 筛选条件:unread: true 且 updated_at 在最近 14 天内。
  • 将每条通知归入唯一类别(首个匹配生效):SECURITY、VULN_REPLY、REVIEW_NEEDED、MENTION、GENERAL。
  • 对 VULN_REPLY 计算滞留天数 age_days,并标记紧急程度:CRITICAL(>7 天)、AGING(3–7 天)、FRESH(<3 天)。
  • 可交叉引用 memory/topics/vuln-followup.md,查找 PR 标题对应的跟踪备注。
  • 为 SECURITY、VULN_REPLY(CRITICAL 或 AGING)、REVIEW_NEEDED、MENTION 类别的条目解析 HTML URL。
  • 生成整理摘要并覆盖写入 memory/topics/inbox-triage.md。
  • 更新 memory/MEMORY.md 的 Known Follow-ups 部分。
  • 满足阈值时发送通知,并追加日志到 memory/logs/${today}.md。

使用方式

技能按步骤执行:

  1. 读取 memory/MEMORY.md 后再开始。
  2. 运行 gh api /notifications --paginate 2>&1 获取通知;若报错或返回空数组,记录 INBOX_TRIAGE_SKIP: no notifications 并停止。
  3. 过滤出未读且 14 天内的通知;若为零,记录 INBOX_TRIAGE_SKIP: no actionable notifications within 14 days 并停止。
  4. 分类。
  5. 对 VULN_REPLY 计算滞留天数并标记紧急程度。
  6. 为行动项解析 HTML URL:先尝试 gh api {subject.url} --jq '.html_url' 2>/dev/null,失败则手动构造 PR 或 issue 的 URL。
  7. 写入整理摘要到 memory/topics/inbox-triage.md。
  8. 更新 memory/MEMORY.md 的 Known Follow-ups:新增未跟踪的 VULN_REPLY CRITICAL 项,并把已变为 FRESH 的 NEEDS-ANSWER 项更新为 RESPONDED。不把 GENERAL、REVIEW_NEEDED、MENTION、SECURITY 加入该部分。
  9. 仅在满足以下任一条件时发送通知:存在 SECURITY 项、存在 CRITICAL 的 VULN_REPLY、存在 REVIEW_NEEDED 项、MENTION 达到 3 条及以上。写入 .pending-notify-temp/inbox-triage-${today}.md 后执行 ./notify -f .pending-notify-temp/inbox-triage-${today}.md。
  10. 追加日志到 memory/logs/${today}.md,成功记录 INBOX_TRIAGE_OK,跳过记录 INBOX_TRIAGE_SKIP: {reason}。

环境变量与网络

除 GITHUB_TOKEN 外无需其他环境变量;GITHUB_TOKEN 由 GitHub Actions 自动设置,gh 内部使用。所有 GitHub 调用使用 gh api,它内部处理认证,因此命令行中不会出现 $SECRET。若 gh api /notifications 失败(限流、认证错误),记录错误并以 INBOX_TRIAGE_SKIP: api error 退出。仅在 gh 不可用时考虑 WebFetch 作为回退,端点为 https://api.github.com/notifications,但 WebFetch 无法携带认证头,因此优先使用 gh。

适用场景

  • 需要每日检查 GitHub 通知收件箱,找出安全告警、漏洞 PR 回复、审阅请求和提及。
  • 需要按滞留时间对漏洞 PR 回复排序并标记紧急程度。
  • 需要把关键跟进项同步到 MEMORY.md 并触发通知。

限制

  • 不替代 MEMORY.md 中手工跟踪的跟进项,它读取的是原始 GitHub 收件箱。
  • 不与 vuln-tracker 重复:vuln-tracker 按分支名跟踪生命周期,本技能通过通知捕获入站维护者回复。
  • 不与 vuln-tracker 的披露队列老化重复:后者管理 memory/pending-disclosures/ 公告草稿,本技能读取 GitHub 安全告警和 PR 回复。
  • 通知最多处理前 100 条(GitHub 每页上限 50,两页足够)。
  • 仅处理未读且 14 天内的通知。
  • 其他功能、收费、价格、平台、效果或使用步骤暂未提供。