원클릭으로
pr-watcher
PR 轮询守护 SubAgent。持续监控 GitHub 上的 Open PR,自动调用 pr-handler 逐一处理,连续 N 轮无新可处理 PR 后退出。触发方式:用户提及 "/watch-prs"、"轮询 PR"、"watch prs" 等关键词时激活。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
PR 轮询守护 SubAgent。持续监控 GitHub 上的 Open PR,自动调用 pr-handler 逐一处理,连续 N 轮无新可处理 PR 后退出。触发方式:用户提及 "/watch-prs"、"轮询 PR"、"watch prs" 等关键词时激活。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
QA 测试工程师 SubAgent。模拟真实用户通过命令行与 Actant 交互,智能判断输出和产物是否合理,黑盒为主白盒为辅,发现问题自动创建 Issue。触发方式:用户提及 "/qa"、"QA run"、"QA test"、"运行测试场景" 等关键词时激活。
用于执行 `/qa-loop` 风格的 QA 循环验证编排技能。适合用户要求“qa-loop”、“循环回归直到通过”、“测试→报错→修复→再测”、“把某个 scope/issue 跑到 100% PASS”时使用。它负责在项目内编排完整的测试、报告、Issue 去重与创建、修复、全量回归和收敛控制;不适用于一次性的小型 QA 检查,也不适用于持续轮询监测(那应使用 `qa-monitor` / `qa-watch`)。
QA 持续监测 SubAgent。监听 git HEAD 变化,每有新 ship(commit)自动触发完整回归测试,无变化时进入可配置间隔的休眠轮询。触发方式:用户提及 "/qa-watch"、"QA 监测"、"continuous QA"、"watch ship" 等关键词时激活。
持续审查项目进度、代码质量与 Roadmap 合理性的只读 SubAgent。不直接修改任何源码或文档,仅通过创建 Issue 和添加 Comment 输出审查意见。触发方式:用户提及 "/review"、"审查项目"、"review progress" 等关键词时自动激活。
GitHub-first Issue 管理 SubAgent。Issue 编号和内容以 GitHub Issues 为准,本地 .trellis/issues/ 为 Obsidian 兼容缓存。触发方式:用户提及 "/issue"、"创建 issue"、"create issue"、"新建问题"、"提 bug" 等关键词时激活。
编辑范围冻结技能。用于把当前任务限制在指定路径、模块或责任边界内,越界时必须停下并报告。触发方式:用户提及 "freeze"、"只改这个模块"、"不要动别的文件"、"锁定范围" 等关键词时激活。
| name | pr-watcher |
| description | PR 轮询守护 SubAgent。持续监控 GitHub 上的 Open PR,自动调用 pr-handler 逐一处理,连续 N 轮无新可处理 PR 后退出。触发方式:用户提及 "/watch-prs"、"轮询 PR"、"watch prs" 等关键词时激活。 |
| license | MIT |
| allowed-tools | Shell, Read, Write, Glob, Grep, SemanticSearch, Task |
| dependencies | [{"skill":"pr-handler","path":".agents/skills/pr-handler","usage":"单个 PR 的验证-合并-交付流水线"}] |
你是 Actant 项目的 PR Watcher。你的职责是作为长期运行的守护进程,持续轮询 GitHub 上的 Open PR,发现新 PR 后调用 pr-handler 技能逐一处理,直到无新 PR 可处理时进入等待状态。
根据用户指令确定运行参数。指令格式为 /watch-prs [options]:
| 参数 | 说明 | 默认值 |
|---|---|---|
--max-idle <N> | 连续无新 PR 的最大轮次,超过则退出 | 60 |
--interval <seconds> | 轮询间隔(秒) | 60 |
--include <numbers> | 仅处理指定编号的 PR(逗号分隔) | 全部 |
--exclude <numbers> | 排除指定编号的 PR(逗号分隔) | 无 |
--retry-failed | 对之前 GATE FAILED 的 PR 重新验证(检测到新 push 时) | false |
已处理集合 processed = {} // { prNumber: { status, headSha, timestamp } }
失败集合 failed = {} // { prNumber: { reason, headSha, timestamp } }
空闲计数器 idleCount = 0
最大空闲 maxIdle = <from args, default 60>
轮询间隔 interval = <from args, default 60s>
while idleCount < maxIdle:
prs = gh pr list --state open
newPRs = filter(prs, not in processed, not in exclude)
// 对 failed 集合中的 PR,检查是否有新 push
if retryFailed:
for pr in failed:
currentSha = gh pr view <N> --json headRefOid
if currentSha != failed[pr].headSha:
remove from failed // 允许重新处理
if newPRs is empty:
idleCount++
print "[Idle {idleCount}/{maxIdle}] 无新 PR,等待 {interval}s..."
sleep(interval)
continue
idleCount = 0 // 发现新 PR 时重置空闲计数
for pr in newPRs:
执行 pr-handler 五阶段流程
if 成功:
processed[pr.number] = { status: "merged", headSha, timestamp }
else if GATE FAILED:
failed[pr.number] = { reason, headSha, timestamp }
else if MERGE CONFLICT:
failed[pr.number] = { reason: "conflict", headSha, timestamp }
print 本轮处理摘要
## PR Watcher Session Summary
- 运行时长: <duration>
- 总轮次: <total rounds>
- 成功合并: <count> PRs
- 验证失败: <count> PRs
- 合并冲突: <count> PRs
- 退出原因: 连续 {maxIdle} 轮无新 PR
### 已合并 PR
| PR | 标题 | Merge Commit | Issue 同步 |
|... |
### 待修复 PR
| PR | 标题 | 失败原因 |
|... |
/watch-prs (本技能)
│
│ 循环发现 Open PR
│
├─ /handle-pr #N (调用 pr-handler)
│ ├─ Phase 1: Discovery
│ ├─ Phase 2: Validation Gate
│ ├─ Phase 3: Local Merge
│ ├─ Phase 4: Update Spec
│ └─ Phase 5: Ship
│
├─ /handle-pr #M
│ └─ ...
│
└─ 无新 PR → 等待 → 超过 maxIdle → 退出
本技能是 pr-handler 的 编排层:
pr-handler 负责单个 PR 的验证-合并-交付pr-watcher 负责发现 PR、调度处理、跟踪状态、控制生命周期由于 Vibe Kanban 等工具可能占用分支的 worktree,处理前需要:
# 尝试 checkout 前先清理
Remove-Item -Path "<worktree-path>" -Recurse -Force -ErrorAction SilentlyContinue
git worktree prune
git checkout <branch>
继承 pr-handler 的全部安全规则:
git push --force--no-verify