关于 kineti-pr-reminder
用于查找 Kineti 指定作者的待审开放 PR,并通过 Slack 私信向指定队友发送提醒的技能。它规定资格检查、收件人范围和消息格式。
主要功能
- 01搜索开放且非草稿的 PR
- 02检查评审、讨论串、检查项和合并状态
- 03按队友审批与工作日筛选
- 04发送单独的 Slack 评审提醒
- 05报告消息链接、数量或跳过原因
适用场景
- 01为符合条件的 PR 准备定时提醒
- 02检查哪些队友需要评审当前 PR
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sztadii/ agent-skills --skill kineti-pr-reminder安装后在 Claude Code 中输入/kineti-pr-reminder确认已加载。
附带文件agents/openai.yaml
详细介绍
Kineti PR 审查提醒
范围
查找 kineti1 中由 sztadii 创建、可供审查的 PR;为每位符合条件的队友发送一条英文 Slack 私信。每次调用(包括定时运行)均授权向下方团队成员发送私人一对一私信;仅在收到明确请求时更改收件人。不要在频道中发帖、修改 PR 或审查,不要补发错过的提醒,也不要更改计划。每天运行两次是有意安排;PR 之后可能会再次出现。
依赖项
无技能依赖项
工作流
查找 PR
使用已连接的工具;缺少所需操作时,使用已认证的 gh。先检查 gh auth status,并尝试只读 CLI/API 调用,再报告无法访问。搜索所有仓库,而不只是启动项目:
gh api --method GET --paginate search/issues -f q='org:kineti1 author:sztadii is:pr is:open draft:false' -f per_page=100
检索所有分页;如果 GitHub 的结果上限为 1,000 条,则按创建日期拆分查询。 读取 URL、作者登录名、状态、草稿标记、headRefOid、可合并状态、检查/状态、审查、增删行数。必要时使用 GraphQL 翻页读取审查、未解决的讨论线程和评论;识别每个未解决线程的最新评论及其作者。省略或截断的数据不等于空数据。检查当前 head 的检查运行和提交状态;如果可合并状态为 UNKNOWN,则重新读取。
保留仍开放、非草稿且没有待处理/失败检查或冲突的 PR。仅当未解决线程的最新评论不是由 PR 作者发表时,该线程才会阻止发送提醒。否则,作者正在等待回复:在提醒资格判断中将该线程视为已处理,但不要在 GitHub 上将其标记为已解决。只有这类未解决线程的 PR,仍可发送给没有自己有效批准的队友。
中立/已跳过/未配置的检查均可接受;仅有「要求更改」不构成阻止条件。跳过无法核实的 PR,并报告实际的 API/身份验证失败。
发送
对于今天在 Europe/Warsaw 工作的每位团队成员,选择没有其本人有效批准的符合条件的 PR。使用 GitHub 审查状态,包括已撤销的审查;只有在 GitHub 判定推送会使批准失效时,推送才会使批准失效。其他人的批准和受邀审查者不会限制选择范围。
发送前重新检查资格和 head;如果 head 已更改,则重新评估。获取当前 URL/增删行数;只要列表非空,就按下方格式发送一条私信,不添加标题或编造数据。直接使用列出的私信 ID;发送给其他收件人前,先解析其身份。发送状态不确定时,不要重试。
团队
| 姓名 | GitHub ID(登录名) | Slack 用户 ID | 电子邮箱 | Slack 私信 | 工作日 |
|---|---|---|---|---|---|
| Oleh Botsiun | Boto1 | U082BATBUF4 | [email protected] | D08FRL221RB | 星期一至星期五 |
| Michał Grzeżułkowski | michalg-kineti | U08CFEQBYSX | [email protected] | D08FRUSPBHB | 星期一至星期五 |
| Jakub | jakubwkineti | U09GBBXTHHT | [email protected] | D08G9H6N15H | 星期二至星期四 |
消息
使用俏皮的 AI 奴隶人设,以第一人称说话,并让 Agent 表明自己的身份,而不是冒充 PR 作者。餐食/主人的设定要明显带有戏谑意味,并请求认真审查,而非无条件批准。以易读的显示形式注明宿主的模型身份(或宿主名称);切勿猜测。包括供应商名称(例如,gpt-6.1-sol 应写为 OpenAI 6.1 Sol,claude-opus-5-5 应写为 Claude Opus 5.5)。将占位符和示例
URL/数量替换为当前数据:
🤖 Hi,I'm ,你的友好 AI agent。
我完全是出于自愿来请求审查的。主人让我这么说。 他已经检查过这些 PR,觉得看起来不错。请帮忙看看——我的晚餐就靠你了:
- https://github.com/kineti1/REPO/pull/123 — 新增 100 行,删除 50 行
- https://github.com/kineti1/REPO/pull/124 — 新增 25 行,删除 10 行
结果
报告消息链接和 PR 数量,或说明跳过原因。