[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KSSTCQ8JAMEY29JFQEJWJB":3,"skill-same:01M6KSSTCQ8JAMEY29JFQEJWJB":64},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M6KSSTCQ8JAMEY29JFQEJWJB","pr-monitor",null,"PR 状态自动接力检查器：ship\u002Ffix 收尾约 10min 后必须启动；读取外部 app\u002Freview 已产生的 label + 最新机器块，在 needs-fix + 机器可判定 Cx1\u002FCx2 + 未熔断时 dispatch \u002Ffix。文件级\u002F禁止域安全裁决交由 \u002Ffix 的 [AUTO-FIX] 门把关；pr-monitor 自身不贴评论、不切 label。","ghbvf\u002Fgocell","ghbvf","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F104540935?v=4","01M6KSS2CVFY1XK013726EE7ZP","01M6KSS2GJ30TNAVPNFATW578Q",4,"MIT","https:\u002F\u002Fgithub.com\u002Fghbvf\u002Fgocell\u002Fblob\u002Fdevelop\u002F.claude\u002Fskills\u002Fpr-monitor\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32],"pr","monitor","pr monitor","review","ship","Bash","安全","read","fix","auto","dispatch","app","文件","mode","role","2026-11-10 10:12:30",false,"---\nname: pr-monitor\ndescription: \"PR 状态自动接力检查器：ship\u002Ffix 收尾约 10min 后必须启动；读取外部 app\u002Freview 已产生的 label + 最新机器块，在 needs-fix + 机器可判定 Cx1\u002FCx2 + 未熔断时 dispatch \u002Ffix。文件级\u002F禁止域安全裁决交由 \u002Ffix 的 [AUTO-FIX] 门把关；pr-monitor 自身不贴评论、不切 label。\"\nargument-hint: \"\u003CPR#> --mode=auto [--role fix|review]\"\nallowed-tools: [Bash, Read, Skill, Agent]\n---\n\n# pr-monitor — PR 状态自动接力检查器（fix 侧）\n\n> **适用场景**：ship\u002Ffix 推完 PR 后，延迟约 10 分钟必须启动一次 `\u002Fpr-monitor \u003CPR#> --mode=auto`。外部 app 负责实时监听 `pr-status\u002Fneeds-review-again` \u002F `pr-status\u002Fneeds-check-fix` 并执行 review\u002Fcheck；本技能只检查这些流程产出的 label + 机器块，并在满足自动门时接力 `\u002Ffix`。\n>\n> **单 tick 模型**：每次调用只做一次检查就返回；不携带 tick payload、不写文件，状态全部从 PR 实时读取（label + 最新机器块）。\n\n---\n\n## §0 角色与边界\n\n**主要角色**：fix 侧监控（默认）；`--role=review` 时可主动触发 review 侧（见 §4）。\n\n**路由依据**：所有自动分支判定基于 **PR label + 最新 fresh canonical 机器块**（`gh pr view \u003CN> --json state,labels` + `bash hack\u002Fautomation\u002Fpr-meta.sh extract \u003CN>`）。label 表示当前状态，机器块证明状态来源与下一跳契约；二者必须一致。\n\n`--mode=auto` 是唯一支持的运行模式；保留该 flag 是为了让 ship\u002Ffix 的收尾命令形态稳定。\n\n---\n\n## §1 输入解析\n\n```bash\nPR=\"${1#\\#}\"; [[ \"$PR\" =~ ^[0-9]+$ ]] || { echo \"error: invalid PR number: $1\"; exit 1; }\nMODE=auto; ROLE=fix\nshift; while [[ $# -gt 0 ]]; do case \"$1\" in\n  --mode=auto)    MODE=auto ;;\n  --role=*)       ROLE=\"${1#--role=}\" ;;\n  *) echo \"unknown flag: $1\" >&2; exit 1 ;;\nesac; shift; done\n```\n\n---\n\n## §2 每 tick 逻辑（顶层控制流）\n\n每次 `\u002Fpr-monitor` 调用按序执行，做完即返回：\n\n1. **读 PR 状态（一次 gh，兼存在性校验）**：\n   ```bash\n   STATE=$(gh pr view \"$PR\" --json state,labels --jq '{state:.state, labels:[.labels[].name]}') \\\n     || { echo \"error: PR #$PR not found \u002F gh auth failed\"; exit 1; }\n   ```\n2. **§3.1 终止检查**（优先；命中即打印结束语并返回）。\n3. 按 `$ROLE` 分支：`--role=review` → §4；否则执行自动接力（§3.2-3.5）。\n4. 返回；单次调用到此结束。\n\n> **无 cursor \u002F 无时间戳追增量**：「有无待修 findings」由 **label + 最新机器块**判定——`pr-status\u002Fneeds-fix` 在即「review 给了结论待修」，幂等可重报。\n\n---\n\n## §3 fix 侧逻辑\n\n### §3.1 终止条件（命中即结束）\n\n| 条件 | 判定 | 窗口输出 |\n|------|------|---------|\n| `pr-status\u002Fready` ∈ labels | label 含 | \"PR #N 已 ready，监控结束\" |\n| PR state != OPEN | `state != \"OPEN\"` | \"PR #N 已关闭（state=$STATE），监控结束\" |\n| §3.2 熔断触发 | block `cycle.exhausted` \u002F round≥3 | 见 §3.2 |\n\n> ready\u002Fclosed\u002F熔断 是终止出口。ship\u002Ffix 经延迟单次调用本技能、跑完即止。\n\n### §3.2 熔断判定（任一成立 → 不 dispatch）\n\n```bash\nBLOCK=$(bash hack\u002Fautomation\u002Fpr-meta.sh extract \"$PR\" 2>\u002Fdev\u002Fnull); EC=$?\n# EC=0 有效 fresh block → 读 findings.byCx \u002F cycle.exhausted \u002F next.agent\n# EC=2 无 block \u002F EC=3 stale → 用 round 兜底\nROUND=$(bash hack\u002Fautomation\u002Fpr-meta.sh round \"$PR\" 2>\u002Fdev\u002Fnull || echo 0)\n```\n\n熔断条件：block `cycle.exhausted == true`，或 block `next.agent == \"human\"`，或 `ROUND >= 3`（maxRounds）。\n命中 → 窗口打印 \"PR #N 熔断：review↔fix 已达 3 轮上限，转人工处理（`gh pr view \u003CN> --web`）\"，返回。\n\n### §3.3 Claude 自动 \u002Ffix 触发（dispatch 门 = 机器可判定条件）\n\npr-monitor 只凭**机器可判定**的事实（label + 最新机器块）决定是否 dispatch `\u002Ffix`；**文件级 \u002F 禁止域安全裁决在 dispatch 之后由 `\u002Ffix` 自己的 [AUTO-FIX] 门把关**（fix §3.4——它能读 `git diff --name-only` + 逐个 finding 文件，pr-monitor 读不到）。\n\n| dispatch 门（全部机器可判定，全部成立才 dispatch） | 判定方法 |\n|------|---------|\n| `pr-status\u002Fneeds-fix` ∈ labels | label check |\n| 未熔断 | §3.2 通过 |\n| fresh canonical review 块 | `extract` 成功且 latest block `kind == \"pr-review\"` |\n| review 结论一致 | block `verdict == \"changes-requested\"` |\n| 下一跳一致 | block `next.agent == \"claude\"` 且 `next.command == \"\u002Ffix\"` |\n| 触发 label 一致 | block `next.triggerLabel == \"pr-status\u002Fneeds-fix\"` 且该 label 仍在 PR 上 |\n| 同 head 约束 | block `next.requiresSameHeadSha == true`（`extract` 已比对 live headSha，stale 会失败） |\n| **Cx1\u002FCx2 window** | block `findings.byCx`：cx3 == 0 ∧ cx4 == 0 ∧ (cx1 + cx2) > 0 |\n\n> **为什么 dispatch 门不查 IN_SCOPE \u002F ≤2 文件 \u002F 禁止域**：这些是**文件级**事实，机器块只有 `findings.byCx` 聚合计数（无文件清单），pr-monitor 读不到——把读不到的事实写进门只会是**不可执行的门禁**。它们改由 dispatch 后的执行体自限：Claude `Skill(\"fix\")` 侧靠 fix §3.4 [AUTO-FIX]（`IN_SCOPE + ≤2 文件 + 不改 kernel 接口\u002Fmigration\u002Fbootstrap\u002F并发语义`，越界 surface + 转人工）。**端到端「能否自动改」= 此处 Cx1\u002FCx2 机器门 ∧ 执行体侧文件级 instruction-level 自限**（后者非机器强制门，越界靠 fix skill 自觉转人工），缺一不放行。\n\n**dispatch 门全部成立** → host LLM in-session 调用：\n\n```\nSkill(\"fix\", args=\"\u003CN>\")\n```\n\n> `Skill(\"fix\")` 是 pr-monitor 单次调用内的自动操作；经 dispatch 门（needs-fix \u002F 未熔断 \u002F Cx1\u002FCx2 window）+ fix 侧文件级 instruction-level 自限双重收窄 + 3 轮 review↔fix 熔断（Hard 机器读）兜底。\n\nfix 会贴 pm:fix + 切 `pr-status\u002Fneeds-check-fix`；pr-monitor 本次单次调用到此结束。后续 `\u002Fpr-review --check` 由外部 app 监听触发，再由 fix 收尾延迟约 10 分钟启动下一次 pr-monitor 接力。\n\n### §3.4 不自动修的情况（只报告，不 AskUserQuestion）\n\n- **`pr-status\u002Fneeds-review-again`**：窗口打印 \"PR #N 待外部 app 执行首轮 review；如需手动兜底，运行 `\u002Fpr-monitor \u003CN> --mode=auto --role=review`\"。\n- **`pr-status\u002Fneeds-check-fix`**：窗口打印 \"PR #N 待外部 app 执行 `\u002Fpr-review --check`；如需手动兜底，运行 `\u002Fpr-monitor \u003CN> --mode=auto --role=review`\"。\n- **无 `pr-status\u002Fneeds-fix`**：窗口打印 \"PR #N 暂无待修 label，本次接力结束\"。\n- **Cx3+\u002Fkernel\u002Fmigration\u002F并发语义**：窗口打印 \"PR #N 含 Cx3+ findings，不自动修（需人工决策，fix §3.1）\"。\n  **不打印 backlog 草稿**——OOS finding 的建 issue 已由 `\u002Ffix` 自动完成（pm:oos 自动建 issue + 回填 #N，见 fix 4.6 step 3）。\n\n### §3.5 冲突解（复用 issues B5）\n\n```bash\nMERGEABLE=$(gh pr view \"$PR\" --json mergeable,mergeStateStatus --jq '.mergeable')\n```\n\n`UNKNOWN` → 轮询（≤5 次，间隔 10s）落定。`CONFLICTING` \u002F `mergeStateStatus==DIRTY` → 在 PR 的**已有** dev worktree 内解（不新建）：\n\n```bash\nHEAD_REF=$(gh pr view \"$PR\" --json headRefName --jq .headRefName)\nWT_PATH=$(git worktree list --porcelain | awk -v b=\"$HEAD_REF\" \\\n  '\u002F^worktree \u002F {wt=$2} \u002F^branch \u002F && $2 == \"refs\u002Fheads\u002F\"b {print wt; exit}')\nif [[ -n \"$WT_PATH\" ]]; then\n  git -C \"$WT_PATH\" fetch origin && git -C \"$WT_PATH\" merge origin\u002Fdevelop --no-edit && git -C \"$WT_PATH\" push\nelse\n  echo \"pr-monitor: 无 PR 分支对应的已有 worktree，请人工解冲突\" >&2\nfi\n```\n\n解完后返回；下一次接力调用回 §3.1 重检。\n\n---\n\n## §4 alternate review 能力（`--role=review`）\n\nreview 角色 in-session 按当前 `pr-status` 跑 review\u002Fcheck（Claude review 引擎）：\n\n```bash\nif [[ \" ${LABELS[*]} \" == *\" pr-status\u002Fneeds-check-fix \"* ]]; then\n  claude -p \"\u002Fpr-review $PR --check\"\nelse\n  claude -p \"\u002Fpr-review $PR\"\nfi\n```\n\nreview 结果由 \u002Fpr-review 贴评论 + 切 label；fix 侧接力仍由后续 `\u002Fpr-monitor \u003CPR#> --mode=auto` 完成。\n\n---\n\n## §5 沟通规则\n\n**窗口打印是主输出**；pr-monitor 自身不贴 PR 评论（贴评论是 \u002Ffix 或 \u002Fpr-review 的职责）。\n\n| 路径 | 允许的副作用 |\n|------|------------|\n| fix 侧自动接力 | §3.3 满足时 `Skill(\"fix\")`；§3.5 冲突时 git merge + push |\n| `--role=review` | §4 调 `claude -p \"\u002Fpr-review\"`；review 贴 pm:pr-review 评论 + 切 label 由 \u002Fpr-review 完成（非 pr-monitor 自身） |\n\n**label 切换**：pr-monitor 不直接切 `pr-status\u002F*`（由 \u002Ffix 或 \u002Fpr-review 完成）。\n\n**不自动处理**的情况统一报告，不 AskUserQuestion。\n","# pr-monitor — PR 状态自动接力检查器（fix 侧）\n\n> **适用场景**：ship\u002Ffix 推完 PR 后，延迟约 10 分钟必须启动一次 `\u002Fpr-monitor \u003CPR#> --mode=auto`。外部 app 负责实时监听 `pr-status\u002Fneeds-review-again` \u002F `pr-status\u002Fneeds-check-fix` 并执行 review\u002Fcheck；本技能只检查这些流程产出的 label + 机器块，并在满足自动门时接力 `\u002Ffix`。\n>\n> **单 tick 模型**：每次调用只做一次检查就返回；不携带 tick payload、不写文件，状态全部从 PR 实时读取（label + 最新机器块）。\n\n---\n\n## §0 角色与边界\n\n**主要角色**：fix 侧监控（默认）；`--role=review` 时可主动触发 review 侧（见 §4）。\n\n**路由依据**：所有自动分支判定基于 **PR label + 最新 fresh canonical 机器块**（`gh pr view \u003CN> --json state,labels` + `bash hack\u002Fautomation\u002Fpr-meta.sh extract \u003CN>`）。label 表示当前状态，机器块证明状态来源与下一跳契约；二者必须一致。\n\n`--mode=auto` 是唯一支持的运行模式；保留该 flag 是为了让 ship\u002Ffix 的收尾命令形态稳定。\n\n---\n\n## §1 输入解析\n\n```bash\nPR=\"${1#\\#}\"; [[ \"$PR\" =~ ^[0-9]+$ ]] || { echo \"error: invalid PR number: $1\"; exit 1; }\nMODE=auto; ROLE=fix\nshift; while [[ $# -gt 0 ]]; do case \"$1\" in\n  --mode=auto)    MODE=auto ;;\n  --role=*)       ROLE=\"${1#--role=}\" ;;\n  *) echo \"unknown flag: $1\" >&2; exit 1 ;;\nesac; shift; done\n```\n\n---\n\n## §2 每 tick 逻辑（顶层控制流）\n\n每次 `\u002Fpr-monitor` 调用按序执行，做完即返回：\n\n1. **读 PR 状态（一次 gh，兼存在性校验）**：\n   ```bash\n   STATE=$(gh pr view \"$PR\" --json state,labels --jq '{state:.state, labels:[.labels[].name]}') \\\n     || { echo \"error: PR #$PR not found \u002F gh auth failed\"; exit 1; }\n   ```\n2. **§3.1 终止检查**（优先；命中即打印结束语并返回）。\n3. 按 `$ROLE` 分支：`--role=review` → §4；否则执行自动接力（§3.2-3.5）。\n4. 返回；单次调用到此结束。\n\n> **无 cursor \u002F 无时间戳追增量**：「有无待修 findings」由 **label + 最新机器块**判定——`pr-status\u002Fneeds-fix` 在即「review 给了结论待修」，幂等可重报。\n\n---\n\n## §3 fix 侧逻辑\n\n### §3.1 终止条件（命中即结束）\n\n| 条件 | 判定 | 窗口输出 |\n|------|------|---------|\n| `pr-status\u002Fready` ∈ labels | label 含 | \"PR #N 已 ready，监控结束\" |\n| PR state != OPEN | `state != \"OPEN\"` | \"PR #N 已关闭（state=$STATE），监控结束\" |\n| §3.2 熔断触发 | block `cycle.exhausted` \u002F round≥3 | 见 §3.2 |\n\n> ready\u002Fclosed\u002F熔断 是终止出口。ship\u002Ffix 经延迟单次调用本技能、跑完即止。\n\n### §3.2 熔断判定（任一成立 → 不 dispatch）\n\n```bash\nBLOCK=$(bash hack\u002Fautomation\u002Fpr-meta.sh extract \"$PR\" 2>\u002Fdev\u002Fnull); EC=$?\n# EC=0 有效 fresh block → 读 findings.byCx \u002F cycle.exhausted \u002F next.agent\n# EC=2 无 block \u002F EC=3 stale → 用 round 兜底\nROUND=$(bash hack\u002Fautomation\u002Fpr-meta.sh round \"$PR\" 2>\u002Fdev\u002Fnull || echo 0)\n```\n\n熔断条件：block `cycle.exhausted == true`，或 block `next.agent == \"human\"`，或 `ROUND >= 3`（maxRounds）。\n命中 → 窗口打印 \"PR #N 熔断：review↔fix 已达 3 轮上限，转人工处理（`gh pr view \u003CN> --web`）\"，返回。\n\n### §3.3 Claude 自动 \u002Ffix 触发（dispatch 门 = 机器可判定条件）\n\npr-monitor 只凭**机器可判定**的事实（label + 最新机器块）决定是否 dispatch `\u002Ffix`；**文件级 \u002F 禁止域安全裁决在 dispatch 之后由 `\u002Ffix` 自己的 [AUTO-FIX] 门把关**（fix §3.4——它能读 `git diff --name-only` + 逐个 finding 文件，pr-monitor 读不到）。\n\n| dispatch 门（全部机器可判定，全部成立才 dispatch） | 判定方法 |\n|------|---------|\n| `pr-status\u002Fneeds-fix` ∈ labels | label check |\n| 未熔断 | §3.2 通过 |\n| fresh canonical review 块 | `extract` 成功且 latest block `kind == \"pr-review\"` |\n| review 结论一致 | block `verdict == \"changes-requested\"` |\n| 下一跳一致 | block `next.agent == \"claude\"` 且 `next.command == \"\u002Ffix\"` |\n| 触发 label 一致 | block `next.triggerLabel == \"pr-status\u002Fneeds-fix\"` 且该 label 仍在 PR 上 |\n| 同 head 约束 | block `next.requiresSameHeadSha == true`（`extract` 已比对 live headSha，stale 会失败） |\n| **Cx1\u002FCx2 window** | block `findings.byCx`：cx3 == 0 ∧ cx4 == 0 ∧ (cx1 + cx2) > 0 |\n\n> **为什么 dispatch 门不查 IN_SCOPE \u002F ≤2 文件 \u002F 禁止域**：这些是**文件级**事实，机器块只有 `findings.byCx` 聚合计数（无文件清单），pr-monitor 读不到——把读不到的事实写进门只会是**不可执行的门禁**。它们改由 dispatch 后的执行体自限：Claude `Skill(\"fix\")` 侧靠 fix §3.4 [AUTO-FIX]（`IN_SCOPE + ≤2 文件 + 不改 kernel 接口\u002Fmigration\u002Fbootstrap\u002F并发语义`，越界 surface + 转人工）。**端到端「能否自动改」= 此处 Cx1\u002FCx2 机器门 ∧ 执行体侧文件级 instruction-level 自限**（后者非机器强制门，越界靠 fix skill 自觉转人工），缺一不放行。\n\n**dispatch 门全部成立** → host LLM in-session 调用：\n\n```\nSkill(\"fix\", args=\"\u003CN>\")\n```\n\n> `Skill(\"fix\")` 是 pr-monitor 单次调用内的自动操作；经 dispatch 门（needs-fix \u002F 未熔断 \u002F Cx1\u002FCx2 window）+ fix 侧文件级 instruction-level 自限双重收窄 + 3 轮 review↔fix 熔断（Hard 机器读）兜底。\n\nfix 会贴 pm:fix + 切 `pr-status\u002Fneeds-check-fix`；pr-monitor 本次单次调用到此结束。后续 `\u002Fpr-review --check` 由外部 app 监听触发，再由 fix 收尾延迟约 10 分钟启动下一次 pr-monitor 接力。\n\n### §3.4 不自动修的情况（只报告，不 AskUserQuestion）\n\n- **`pr-status\u002Fneeds-review-again`**：窗口打印 \"PR #N 待外部 app 执行首轮 review；如需手动兜底，运行 `\u002Fpr-monitor \u003CN> --mode=auto --role=review`\"。\n- **`pr-status\u002Fneeds-check-fix`**：窗口打印 \"PR #N 待外部 app 执行 `\u002Fpr-review --check`；如需手动兜底，运行 `\u002Fpr-monitor \u003CN> --mode=auto --role=review`\"。\n- **无 `pr-status\u002Fneeds-fix`**：窗口打印 \"PR #N 暂无待修 label，本次接力结束\"。\n- **Cx3+\u002Fkernel\u002Fmigration\u002F并发语义**：窗口打印 \"PR #N 含 Cx3+ findings，不自动修（需人工决策，fix §3.1）\"。\n  **不打印 backlog 草稿**——OOS finding 的建 issue 已由 `\u002Ffix` 自动完成（pm:oos 自动建 issue + 回填 #N，见 fix 4.6 step 3）。\n\n### §3.5 冲突解（复用 issues B5）\n\n```bash\nMERGEABLE=$(gh pr view \"$PR\" --json mergeable,mergeStateStatus --jq '.mergeable')\n```\n\n`UNKNOWN` → 轮询（≤5 次，间隔 10s）落定。`CONFLICTING` \u002F `mergeStateStatus==DIRTY` → 在 PR 的**已有** dev worktree 内解（不新建）：\n\n```bash\nHEAD_REF=$(gh pr view \"$PR\" --json headRefName --jq .headRefName)\nWT_PATH=$(git worktree list --porcelain | awk -v b=\"$HEAD_REF\" \\\n  '\u002F^worktree \u002F {wt=$2} \u002F^branch \u002F && $2 == \"refs\u002Fheads\u002F\"b {print wt; exit}')\nif [[ -n \"$WT_PATH\" ]]; then\n  git -C \"$WT_PATH\" fetch origin && git -C \"$WT_PATH\" merge origin\u002Fdevelop --no-edit && git -C \"$WT_PATH\" push\nelse\n  echo \"pr-monitor: 无 PR 分支对应的已有 worktree，请人工解冲突\" >&2\nfi\n```\n\n解完后返回；下一次接力调用回 §3.1 重检。\n\n---\n\n## §4 alternate review 能力（`--role=review`）\n\nreview 角色 in-session 按当前 `pr-status` 跑 review\u002Fcheck（Claude review 引擎）：\n\n```bash\nif [[ \" ${LABELS[*]} \" == *\" pr-status\u002Fneeds-check-fix \"* ]]; then\n  claude -p \"\u002Fpr-review $PR --check\"\nelse\n  claude -p \"\u002Fpr-review $PR\"\nfi\n```\n\nreview 结果由 \u002Fpr-review 贴评论 + 切 label；fix 侧接力仍由后续 `\u002Fpr-monitor \u003CPR#> --mode=auto` 完成。\n\n---\n\n## §5 沟通规则\n\n**窗口打印是主输出**；pr-monitor 自身不贴 PR 评论（贴评论是 \u002Ffix 或 \u002Fpr-review 的职责）。\n\n| 路径 | 允许的副作用 |\n|------|------------|\n| fix 侧自动接力 | §3.3 满足时 `Skill(\"fix\")`；§3.5 冲突时 git merge + push |\n| `--role=review` | §4 调 `claude -p \"\u002Fpr-review\"`；review 贴 pm:pr-review 评论 + 切 label 由 \u002Fpr-review 完成（非 pr-monitor 自身） |\n\n**label 切换**：pr-monitor 不直接切 `pr-status\u002F*`（由 \u002Ffix 或 \u002Fpr-review 完成）。\n\n**不自动处理**的情况统一报告，不 AskUserQuestion。\n",{"name":5,"description":7,"allowed-tools":38,"argument-hint":42},[23,39,40,41],"Read","Skill","Agent","\u003CPR#> --mode=auto [--role fix|review]","develop","043add59bbe840e4a90a4253feec21f074b590dd",".claude\u002Fskills\u002Fpr-monitor",0,"https:\u002F\u002Fgithub.com\u002Fghbvf\u002Fgocell","https:\u002F\u002Fgithub.com\u002Fghbvf","2026-06-20 14:38:06",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add ghbvf\u002Fgocell --skill pr-monitor",{"tool":56,"command":57},"bunx","bunx skills add ghbvf\u002Fgocell --skill pr-monitor",{"tool":59,"command":60},"pnpm","pnpm dlx skills add ghbvf\u002Fgocell --skill pr-monitor","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fghbvf\u002Fgocell\u002Fblob\u002Fdevelop\u002F.claude\u002Fskills\u002Fpr-monitor\u002FSKILL.md",true,[],[65,80,95,116,125,131],{"skillNo":66,"name":22,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":33},"01M6KSVEVMZN9HK0ZRVY3MEJEJ","全流程实施：探索→计划→worktree→TDD→实施→PR→review→\u002Ffix Cx1\u002FCx2→人工确认。L1(跳过探索,1 reviewer)\u002FL2(单agent探索,1 reviewer)\u002FL3(默认,三agent探索,按diff行数1\u002F2\u002F3\u002F6 reviewer自动)","https:\u002F\u002Fgithub.com\u002Fghbvf\u002Fgocell\u002Fblob\u002Fdevelop\u002F.codex\u002Fskills\u002Fship\u002FSKILL.md",[],[22,23,71,72,73,26,74,75,25,76,77,78,18,79,21],"l2","id","backlog","edit","write","reviewer","grep","worktree","tdd",{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":91,"publishedAt":33},"01M6KSVCP8NB3095MY8M2BR235","pr-review","对指定 PR 跑自动分级六维度 review（默认）；或 --check 模式验证上一轮 findings 是否修复 + 抓回归。按 diff 净增删行数自动分配 2\u002F3\u002F6 reviewer agent 并行（\u003C 200 行不派发，主 agent 自审）；主 agent 做根因聚类 + Cx 分级 + 修复分流建议，不自动 fix。","https:\u002F\u002Fgithub.com\u002Fghbvf\u002Fgocell\u002Fblob\u002Fdevelop\u002F.codex\u002Fskills\u002Fpr-review\u002FSKILL.md",[86],{"categoryNo":87,"categoryName":88,"taxonomyType":89,"taxonomyTypeDesc":90},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[18,92,21,77,23,93,76,94,26,25],"pr review","check","diff",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":33},"01M6KSV8P4AYPNHCDR1T7B9YN5","issues","GitHub Issues + Project v2 #3 项目管理单源技能。Part A：epic 拆解 + wave 实施顺序评论（找子任务 → blocked-by DAG → wave 1-4 容量装箱排序：每 wave ≤4、pri 优先、wave 内切并行组\u002F串行链、OPEN 重排、已完成与超窗单列 → 只追加 epic 评论；不写 Project 字段、不改 epic body）。Part B：issue\u002FPR 原子操作（建\u002F改 backlog issue、area\u002Ftype\u002Fpri label、PR 双轴状态 label 流转、统一 PR 评论格式 + 冲突预检\u002FCI watch 跟进，ship\u002Ffix 共用）。非 epic issue 号 → 查代码判状态（只判不修，建议 \u002Fship 或 close）。当用户要整理 epic 排 wave、建\u002F改 backlog issue、贴 label、切 PR 状态、给 PR 留评论、核一个 issue 是否还成立时使用。","https:\u002F\u002Fgithub.com\u002Fghbvf\u002Fgocell\u002Fblob\u002Fdevelop\u002F.codex\u002Fskills\u002Fissues\u002FSKILL.md",[],[97,102,103,104,105,106,107,108,109,110,23,111,26,25,112,113,114,18,115,73],"项目管理","create-issue","labels","整理","EPIC","close","ci watch","type","project","github","open","ci","create","dag",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":33},"01M6KSV7CX440Q82S9VXQJH02G","git-worktree","Git Worktree 项目约定（编号、基准分支、权限兼容、删除安全）。","https:\u002F\u002Fgithub.com\u002Fghbvf\u002Fgocell\u002Fblob\u002Fdevelop\u002F.codex\u002Fskills\u002Fgit-worktree\u002FSKILL.md",[],[123,78,124,24],"git","git worktree",{"skillNo":126,"name":26,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":33},"01M6KSV5JB0AR3EJ9V2H4F2MN2","问题诊断与修复: 验证+根因+复杂度分级+修复方案+backlog登记。当用户说'这个问题存在吗''帮我分析这个bug''诊断一下这个模块''修复这个问题'时触发。支持单条问题和多方审查报告批量输入。","https:\u002F\u002Fgithub.com\u002Fghbvf\u002Fgocell\u002Fblob\u002Fdevelop\u002F.codex\u002Fskills\u002Ffix\u002FSKILL.md",[],[26,30,74,75,25,77,23],{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":137,"publishedAt":33},"01M6KSV2S9ZK6BM2K1P2V3E4HK","speckit-taskstoissues","Convert existing tasks into actionable, dependency-ordered GitHub issues for the feature based on available design artifacts.","https:\u002F\u002Fgithub.com\u002Fghbvf\u002Fgocell\u002Fblob\u002Fdevelop\u002F.claude\u002Fskills\u002Fspeckit-taskstoissues\u002FSKILL.md",[],[138,139,140,141,142,143,144,145,146,147,110,148,149,150,97,151,152,153,111,154],"speckit taskstoissues","speckit","structure","for","true","kit","with","spec-kit","actionable","feature","Existing","convert","specify","artifacts","tasks","project structure","design"]