SuperAPI AI 工具集

post-review-gate

办公与效率

查看项目

更新于 10-15 10:31

技能介绍

用途

Post review gate 用于在 Adam 名下发布任何超过一两句话的内容之前,给 Adam 一个限时的查看机会,同时保证他的沉默不会阻塞工作。它只管理发布交接流程:写入文件、提醒、等待、发布、记录。文本风格由 adams-voice 负责,Claude 措辞标记由 claude-attribution 负责。

主要能力

  • 将待发布文本写入指定文件,文件内容即最终发布内容,包含署名头和引用块。
  • 后台运行等待脚本,监视文件五分钟,通过终端响铃提醒 Adam。
  • 根据脚本输出或 Adam 在聊天中的指示决定发布、修改或取消。
  • 发布后记录到日志,并报告 URL 及是否经过审核。
  • 提供查询已发布内容的脚本。

使用方式

工作流

  1. 写入文件:将确切文本写入 ~/Downloads/<context>-<kind>.md,例如 gutenberg-81397-comment.md、trac-62345-ticket.md、wpd-9012-review-reply.md、my-skills-post-review-gate-pr.md。文件只包含将要发布的内容,包括署名头和引用块。不要写前言、给 Adam 的备注或“请告知”之类的话,这些放在聊天中。

  2. 提醒并等待(后台):

bash ~/.claude/skills/post-review-gate/scripts/wait-for-review.sh ~/Downloads/gutenberg-81397-comment.md

使用 run_in_background: true 运行。脚本监视文件五分钟。提醒仅为终端响铃:Claude Code 在回合结束时响铃(~/.claude/settings.json 中 preferredNotifChannel 为 terminal_bell),iTerm 会显示。不使用 macOS 通知、声音、PushNotification 或手机推送。

然后在聊天中告诉 Adam:文件路径、他可以就地编辑、删除以否决、或忽略则五分钟后发布。不要阻塞在脚本上。完成其他就绪步骤后结束回合,让响铃发生。脚本结果作为通知到达,工作流从第 3 步继续。

  1. 根据第一个信号行动:
信号 操作
脚本打印 TIMEOUT 按草稿发布。
脚本打印 EDITED 按磁盘上当前文件内容发布。(若截止后两分钟编辑仍在进行也会打印。)
脚本打印 DELETED 不发布。在聊天中说明并继续。
Adam 在聊天中说发布(“post it”、“go ahead”、“looks good, ship it”) 立即发布。用 TaskStop 停止等待器。
Adam 在聊天中要求修改 修改文件,重新运行等待器。重新计时五分钟。

从文件发布。发布前立即从磁盘重新读取。文件是事实来源,不是对话中的草稿版本——Adam 会就地编辑且可能不提及。

  1. 记录并报告:
bash ~/.claude/skills/post-review-gate/scripts/log-post.sh comment "WordPress/gutenberg#81397" <url> unreviewed ~/Downloads/gutenberg-81397-comment.md

类型:comment、review-reply、issue、pr、trac-ticket、trac-comment。日志位于 ~/.claude/posts-log.md。在聊天中给 Adam URL,并说明是否经过审核。

短回复

短回复跳过文件和等待,但不跳过记录。短回复是一句话,陈述 Adam 已知或已决定的事:提交哈希、感谢、合并、“完成”(如“Updated in a1b2c3d.”、“Thanks, merging.”)。它直接发布,无草稿文件,记录为 review: short 且无草稿路径。带有观点、关于代码的声明或问题的回复,无论多短,都要走门控。

查询已发布内容

bash ~/.claude/skills/post-review-gate/scripts/show-posts.sh            # 今天
bash ~/.claude/skills/post-review-gate/scripts/show-posts.sh 2026-09-01 # 某一天
bash ~/.claude/skills/post-review-gate/scripts/show-posts.sh all        # 全部

以带链接的列表呈现条目。标出任何标记为 unreviewed 的内容,让 Adam 知道哪些帖子未经他查看就发布了。

日志行格式:

- 16:52 PDT | comment | WordPress/gutenberg#81397 | https://github.com/WordPress/gutenberg/pull/81397#issuecomment-123 | review: unreviewed | draft: ~/Downloads/gutenberg-81397-comment.md

适用场景

  • 在 Adam 名下发布 GitHub issue、PR 描述、issue 或 PR 评论、代码审查回复等较长内容之前。
  • 需要给 Adam 限时查看机会但不想阻塞任务的发布流程。
  • 需要记录所有以 Adam 名义发布内容的情况。

限制与护栏

  • 五分钟,然后发布。不手动休眠,不重新运行等待器“给 Adam 更多时间”,不在草稿未发布且无等待器运行时结束回合。核心是 Adam 忙碌不会拖延任务。
  • 等待器已触发但帖子已发布(Adam 先在聊天中批准):如果已有该帖 URL,什么都不做。不要用日志中的草稿路径作为判断依据;草稿文件名会重用,旧条目可能匹配。
  • 无文件,无门控发布。当 Adam 在草稿存在前说“just post it”且内容超过短回复时,仍要写文件、从文件发布,并记录为 approved。
  • 先记录再报告。如果日志行失败,在交出 URL 前修复。未记录的帖子在“你为我发布了什么”看来等于没发生。
  • 批准是关于帖子的回复,不是关于工作的。在你说出草稿后说“Looks good, go ahead”是批准。关于代码、diff 或任务说“Looks good”且未提及发布,不是批准。有疑问时,计时器决定。

需要停止并遵循工作流的合理化想法

想法 现实
“Adam 可能很忙,最好等他回答。” 无限等待正是此技能要取代的失败。五分钟,然后发布。
“这个太重要,不能未经审核发布。” Adam 设置超时时知道可能不回应。发布。日志中的 unreviewed 标记告诉他去看。
“很快,我直接在聊天中粘贴并问。” 聊天中的草稿无法就地编辑且无记录。写文件。
“我已经发布了,不用记录。” 日志是 Adam 了解以他名义发布了什么的方式。记录。
“我先发布再写文件。” 文件是 Adam 编辑和等待器监视的对象。永远先写文件。

安装

脚本位于此技能的 scripts/ 目录(安装后为 ~/.claude/skills/post-review-gate/scripts/)。