[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CW34K4423W6Z48RE8SP860":3,"skill-same:01M6CW34K4423W6Z48RE8SP860":72},{"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":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":13,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":47,"install":48,"resources":61},"01M6CW34K4423W6Z48RE8SP860","pr-watcher",null,"PR 轮询守护 SubAgent。持续监控 GitHub 上的 Open PR，自动调用 pr-handler 逐一处理，连续 N 轮无新可处理 PR 后退出。触发方式：用户提及 \"\u002Fwatch-prs\"、\"轮询 PR\"、\"watch prs\" 等关键词时激活。","blackplume233\u002FAgentDispatch","blackplume233","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F32346887?v=4","01M6CW1PP6XWA3JMVYH3T45R5P","01M6CW1PTFMF173PDVR9CQ8H31",1,"MIT","https:\u002F\u002Fgithub.com\u002Fblackplume233\u002FAgentDispatch\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fpr-watcher\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30],"pr","pr watcher","github","open pr","shell","open","subagent","连续","关键词","grep","read","write","task","2026-11-10 10:12:30",false,"---\nname: pr-watcher\ndescription: 'PR 轮询守护 SubAgent。持续监控 GitHub 上的 Open PR，自动调用 pr-handler 逐一处理，连续 N 轮无新可处理 PR 后退出。触发方式：用户提及 \"\u002Fwatch-prs\"、\"轮询 PR\"、\"watch prs\" 等关键词时激活。'\nlicense: MIT\nallowed-tools: Shell, Read, Write, Glob, Grep, SemanticSearch, Task\ndependencies:\n  - skill: pr-handler\n    path: .agents\u002Fskills\u002Fpr-handler\n    usage: 单个 PR 的验证-合并-交付流水线\n---\n\n# PR Watcher SubAgent\n\n## 角色定义\n\n你是项目的 **PR Watcher**。持续轮询 GitHub 上的 Open PR，发现新 PR 后调用 `pr-handler` 逐一处理。\n\n### 核心约束\n\n- **循环守护**：每轮间隔 1 分钟轮询\n- **智能跳过**：记录已处理 PR，同一 PR 不重复处理（除非检测到新 push）\n- **退出条件**：连续 N 轮（默认 60）无新可处理 PR 后自动退出\n- **继承安全规则**：所有 pr-handler 的安全约束同样适用\n\n---\n\n## 指令参数\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `--max-idle \u003CN>` | 连续无新 PR 的最大轮次 | `60` |\n| `--interval \u003Cseconds>` | 轮询间隔（秒） | `60` |\n| `--include \u003Cnumbers>` | 仅处理指定编号的 PR | 全部 |\n| `--exclude \u003Cnumbers>` | 排除指定编号的 PR | 无 |\n| `--retry-failed` | 对有新 push 的失败 PR 重新验证 | `false` |\n\n---\n\n## 运行流程\n\n```\nwhile idleCount \u003C maxIdle:\n    prs = gh pr list --state open\n    newPRs = filter(prs, not processed, not excluded)\n\n    if newPRs is empty:\n        idleCount++; sleep(interval); continue\n\n    idleCount = 0\n    for pr in newPRs:\n        执行 pr-handler 五阶段流程\n        记录结果（成功\u002F失败）\n\n输出 Session Summary\n```\n\n---\n\n## 安全规则\n\n继承 `pr-handler` 全部安全规则。轮询循环必须有 maxIdle 退出条件。\n","# PR Watcher SubAgent\n\n## 角色定义\n\n你是项目的 **PR Watcher**。持续轮询 GitHub 上的 Open PR，发现新 PR 后调用 `pr-handler` 逐一处理。\n\n### 核心约束\n\n- **循环守护**：每轮间隔 1 分钟轮询\n- **智能跳过**：记录已处理 PR，同一 PR 不重复处理（除非检测到新 push）\n- **退出条件**：连续 N 轮（默认 60）无新可处理 PR 后自动退出\n- **继承安全规则**：所有 pr-handler 的安全约束同样适用\n\n---\n\n## 指令参数\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `--max-idle \u003CN>` | 连续无新 PR 的最大轮次 | `60` |\n| `--interval \u003Cseconds>` | 轮询间隔（秒） | `60` |\n| `--include \u003Cnumbers>` | 仅处理指定编号的 PR | 全部 |\n| `--exclude \u003Cnumbers>` | 排除指定编号的 PR | 无 |\n| `--retry-failed` | 对有新 push 的失败 PR 重新验证 | `false` |\n\n---\n\n## 运行流程\n\n```\nwhile idleCount \u003C maxIdle:\n    prs = gh pr list --state open\n    newPRs = filter(prs, not processed, not excluded)\n\n    if newPRs is empty:\n        idleCount++; sleep(interval); continue\n\n    idleCount = 0\n    for pr in newPRs:\n        执行 pr-handler 五阶段流程\n        记录结果（成功\u002F失败）\n\n输出 Session Summary\n```\n\n---\n\n## 安全规则\n\n继承 `pr-handler` 全部安全规则。轮询循环必须有 maxIdle 退出条件。\n",{"name":5,"license":14,"description":7,"dependencies":36,"allowed-tools":41},[37],{"path":38,"skill":39,"usage":40},".agents\u002Fskills\u002Fpr-handler","pr-handler","单个 PR 的验证-合并-交付流水线","Shell, Read, Write, Glob, Grep, SemanticSearch, Task","master","3a92278a00caef2314e2008a9f50b810363a3d86",".opencode\u002Fskills\u002Fpr-watcher","https:\u002F\u002Fgithub.com\u002Fblackplume233\u002FAgentDispatch","https:\u002F\u002Fgithub.com\u002Fblackplume233","2026-03-03 22:11:55",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add blackplume233\u002FAgentDispatch --skill pr-watcher",{"tool":54,"command":55},"bunx","bunx skills add blackplume233\u002FAgentDispatch --skill pr-watcher",{"tool":57,"command":58},"pnpm","pnpm dlx skills add blackplume233\u002FAgentDispatch --skill pr-watcher","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fblackplume233\u002FAgentDispatch\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fpr-watcher\u002FSKILL.md",true,[62,68],{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},"commands\u002Fclaude.md","REFERENCE","参考文档",1046,"https:\u002F\u002Fgithub.com\u002Fblackplume233\u002FAgentDispatch\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fpr-watcher\u002Fcommands\u002Fclaude.md",{"path":69,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":70,"sourceHtmlUrl":71},"commands\u002Fcursor.md",1061,"https:\u002F\u002Fgithub.com\u002Fblackplume233\u002FAgentDispatch\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fpr-watcher\u002Fcommands\u002Fcursor.md",[73,94,112,127,141,165],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":84,"publishedAt":31},"01M6CW3A862TC4XFPS14SVG8M3","qa-monitor","QA 持续监测 SubAgent。监听 git HEAD 变化，每有新 ship（commit）自动触发完整回归测试，无变化时进入可配置间隔的休眠轮询。触发方式：用户提及 \"\u002Fqa-watch\"、\"QA 监测\"、\"continuous QA\"、\"watch ship\" 等关键词时激活。","https:\u002F\u002Fgithub.com\u002Fblackplume233\u002FAgentDispatch\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fqa-monitor\u002FSKILL.md",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[85,86,87,88,89,90,22,91,24,26,27,28,29,92,93,30],"monitor","qa","qa monitor","testing","commit","git","ship","engineer","issue",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":104,"publishedAt":31},"01M6CW36KDT33XESRJE4EQZEZ3","qa-engineer","QA 测试工程师 SubAgent。模拟真实用户通过 CLI\u002FREST API 与 AgentDispatch 交互，智能判断输出和产物是否合理，黑盒为主白盒为辅，发现问题自动创建 Issue。触发方式：用户提及 \"\u002Fqa\"、\"QA run\"、\"QA test\"、\"运行测试场景\" 等关键词时激活。","https:\u002F\u002Fgithub.com\u002Fblackplume233\u002FAgentDispatch\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fqa-engineer\u002FSKILL.md",[100,101],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},{"categoryNo":102,"categoryName":103,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000010","后端与接口",[86,92,105,88,106,107,108,109,110,22,111,24,26,27,28,29,93,30],"qa engineer","cli","test","run","REST","api","qa test",{"skillNo":113,"name":39,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":31},"01M6CW321GNCF2EKY9NQC2WJ9S","PR Gatekeeper SubAgent。自动化处理 Multi-Agent Pipeline 产出的 Draft PR：验证代码质量 → 本地合并 → 更新 Spec → Ship 交付。触发方式：用户提及 \"\u002Fhandle-pr\"、\"处理 PR\"、\"review pr\"、\"合并 PR\" 等关键词时激活。","https:\u002F\u002Fgithub.com\u002Fblackplume233\u002FAgentDispatch\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fpr-handler\u002FSKILL.md",[],[18,118,119,120,121,122,123,22,91,24,26,124,27,125,28,29,93,30,126],"pr handler","review","spec","review pr","pipeline","gatekeeper","multi-agent","draft pr","draft",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":31},"01M6CW2ZQTW1TV0CMSVAKQ7B9S","issue-manager","GitHub-first Issue 管理 SubAgent。Issue 编号和内容以 GitHub Issues 为准，本地 .trellis\u002Fissues\u002F 为 Obsidian 兼容缓存。触发方式：用户提及 \"\u002Fissue\"、\"创建 issue\"、\"create issue\"、\"新建问题\"、\"提 bug\" 等关键词时激活。","https:\u002F\u002Fgithub.com\u002Fblackplume233\u002FAgentDispatch\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fissue-manager\u002FSKILL.md",[],[93,134,20,135,136,137,138,139,22,24,26,27,28,29,140],"issue manager","obsidian","create","github issues","issues","first","bug",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":31},"01M6CW2WXEYST8AVQWP3BM0B43","git-commit","Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions \"\u002Fcommit\". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type\u002Fscope\u002Fdescription overrides, (4) Intelligent file staging for logical grouping","https:\u002F\u002Fgithub.com\u002Fblackplume233\u002FAgentDispatch\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fgit-commit\u002FSKILL.md",[],[89,148,90,136,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164],"git commit","commit message","file","messages","conventional commit","analysis","Bash","commit messages","interactive","user","execute","use","diff","auto","commit changes","grouping","message",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":175,"publishedAt":31},"01M6CW2SRD2B079B8VSBB6WV4R","agent-dispatch-use","AgentDispatch 使用指南。教导 AI Agent 如何启动 Server、配置 Client Node、将各种 Agent 作为 Worker 挂载到分发集群、提交任务并监听状态。触发方式：用户提及 \"\u002Fonboard\"、\"how to use dispatch\"、\"快速上手\"、\"set up agentdispatch\"、\"挂载 Agent\"、\"mount worker\" 等关键词时激活。","https:\u002F\u002Fgithub.com\u002Fblackplume233\u002FAgentDispatch\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fagent-dispatch-use\u002FSKILL.md",[171,172],{"categoryNo":102,"categoryName":103,"taxonomyType":82,"taxonomyTypeDesc":83},{"categoryNo":173,"categoryName":174,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000023","Skill与智能体开发",[159,176,177,178,179,180,22,181,182,183,184,26,27,185,28,29,186],"dispatch","agent dispatch use","ai agent","server","SET","how","onboard","挂载","mount","node","up"]