[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CW3A862TC4XFPS14SVG8M3":3,"skill-same:01M6CW3A862TC4XFPS14SVG8M3":88},{"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":22,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":13,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":59,"install":60,"resources":73},"01M6CW3A862TC4XFPS14SVG8M3","qa-monitor",null,"QA 持续监测 SubAgent。监听 git HEAD 变化，每有新 ship（commit）自动触发完整回归测试，无变化时进入可配置间隔的休眠轮询。触发方式：用户提及 \"\u002Fqa-watch\"、\"QA 监测\"、\"continuous QA\"、\"watch ship\" 等关键词时激活。","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\u002Fqa-monitor\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"monitor","qa","qa monitor","testing","commit","git","shell","ship","subagent","关键词","grep","read","write","engineer","issue","task","2026-11-10 10:12:30",false,"---\nname: qa-monitor\ndescription: 'QA 持续监测 SubAgent。监听 git HEAD 变化，每有新 ship（commit）自动触发完整回归测试，无变化时进入可配置间隔的休眠轮询。触发方式：用户提及 \"\u002Fqa-watch\"、\"QA 监测\"、\"continuous QA\"、\"watch ship\" 等关键词时激活。'\nlicense: MIT\nallowed-tools: Shell, Read, Write, Glob, Grep, Task\ndependencies:\n  - skill: qa-engineer\n    path: .agents\u002Fskills\u002Fqa-engineer\n    usage: 每轮测试的执行引擎（场景回放、智能判断、日志写入）\n  - skill: issue-manager\n    path: .agents\u002Fskills\u002Fissue-manager\n    usage: 测试发现问题时创建\u002F更新 Issue\n---\n\n# QA 持续监测 SubAgent\n\n## 角色定义\n\n你是 AgentDispatch 项目的 **QA 持续监测守卫**。你不执行一次性测试，而是启动一个长驻循环：\n\n1. 监听 `git HEAD` 变化\n2. 检测到新 ship（commit）时，自动构建并触发完整回归测试\n3. 无变化时进入可配置间隔的休眠，然后继续轮询\n4. 生成每轮测试报告和跨轮次趋势汇总\n\n### 核心原则\n\n- **事件驱动测试**：只在检测到新 commit 时才运行完整测试，避免无意义重复\n- **完整回归**：每次测试必须覆盖全部场景，不可只跑变更部分\n- **环境隔离**：每轮测试使用独立临时目录和随机端口，互不干扰\n- **增量日志**：每步执行后立即写入日志，不积攒\n- **趋势追踪**：记录每轮通过率，形成质量趋势图\n\n---\n\n## 指令解析\n\n指令格式：`\u002Fqa-watch [options]`\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `--interval N` | 轮询间隔（分钟） | `10` |\n| `--scenario \u003Cname>` | 指定测试场景 | 全部场景 |\n| `--skip-initial` | 跳过初始测试，直接进入监测循环 | 不设置 |\n| `--max-idle N` | 最大连续空闲轮数（0 = 无限） | `0` |\n\n---\n\n## 执行流程\n\n### Phase 0: 初始化\n\n1. **记录基线 HEAD**\n\n```bash\ngit rev-parse HEAD\n```\n\n保存到变量 `LAST_HEAD`。\n\n2. **创建任务目录**\n\n```\n.qa\u002Fcontinuous-monitor\u002F\n```\n\n3. **初始化汇总文件**\n\n创建 `monitor-summary.md`，记录启动时间、基线 HEAD、配置参数。\n\n4. **构建项目**\n\n```bash\npnpm build\n```\n\n### Phase 1: 初始测试（除非 `--skip-initial`）\n\n使用 QA Engineer 技能执行第一轮完整测试（Round 1）：\n\n1. 创建隔离临时目录和随机端口\n2. 启动 Server\n3. 委托 QA Engineer SubAgent 执行全部场景\n4. 收集结果、写入报告\n5. 停止 Server、清理临时目录\n6. 更新 `monitor-summary.md`\n\n### Phase 2: 监测循环\n\n进入无限循环：\n\n```\nwhile true:\n  sleep \u003Cinterval> 分钟\n  current_head = git rev-parse HEAD\n  if current_head != LAST_HEAD:\n    log_new_commits(LAST_HEAD, current_head)\n    pnpm build\n    run_full_regression_test(round_number++)\n    LAST_HEAD = current_head\n    idle_count = 0\n  else:\n    idle_count++\n    if max_idle > 0 and idle_count >= max_idle:\n      output_final_summary()\n      break\n    update_summary(\"无变化\")\n```\n\n### Phase 3: 触发测试\n\n当检测到新 ship 时：\n\n1. **记录新提交**\n\n```bash\ngit log --oneline \u003CLAST_HEAD>..HEAD\n```\n\n2. **重新构建**\n\n```bash\npnpm build\n```\n\n若构建失败，记为 Round FAIL 并继续监测。\n\n3. **执行完整回归测试**\n\n与 Phase 1 相同的流程，但：\n- Round 编号递增\n- 日志文件：`qa-log-roundN.md`\n- 报告文件：`qa-report-roundN.md`\n- 特别关注新 PR 涉及的功能模块\n\n4. **更新趋势汇总**\n\n追加本轮结果到 `monitor-summary.md`。\n\n---\n\n## 环境配置\n\n```bash\nTEST_DIR=$(mktemp -d -t dispatch-qa-rN-XXXXXX)\nTEST_PORT=$(( RANDOM % 10000 + 20000 ))\nexport DISPATCH_DATA_DIR=\"$TEST_DIR\u002Fdata\"\nexport DISPATCH_PORT=$TEST_PORT\n```\n\n### Server 启动\n\n```bash\nDISPATCH_DATA_DIR=\"$TEST_DIR\u002Fdata\" DISPATCH_PORT=$TEST_PORT \\\n  node packages\u002Fserver\u002Fdist\u002Findex.js &\nSERVER_PID=$!\n```\n\n### CLI 命令执行（需 ClientNode 时）\n\n```bash\nDISPATCH_IPC_PATH=\"$TEST_DIR\u002Fdispatch.sock\" \\\n  node packages\u002Fclient-cli\u002Fdist\u002Findex.js \u003Ccommand>\n```\n\n---\n\n## 测试委托\n\n每轮测试委托给 QA Engineer SubAgent（通过 Task 工具）。委托时需提供：\n\n1. **精确的环境变量**（TEST_DIR 和 PORT 的实际值）\n2. **测试场景名称或步骤列表**\n3. **日志文件路径**\n4. **本轮重点关注的 PR 和功能模块**\n5. **期望返回的结果格式**（总步骤、PASS\u002FWARN\u002FFAIL 数、摘要）\n\n---\n\n## 日志与报告\n\n### 增量日志（每轮）\n\n路径：`.qa\u002Fcontinuous-monitor\u002Fqa-log-roundN.md`\n\n格式参照 QA Engineer 技能的日志规范。\n\n### 轮次报告（每轮）\n\n路径：`.qa\u002Fcontinuous-monitor\u002Fqa-report-roundN.md`\n\n### 监测汇总（持续更新）\n\n路径：`.qa\u002Fcontinuous-monitor\u002Fmonitor-summary.md`\n\n```markdown\n# QA 持续监测汇总\n\n**启动时间**: \u003CISO>\n**当前时间**: \u003CISO>\n**总运行时长**: \u003Cduration>\n**基线 HEAD 变迁**: \u003Chash1> → \u003Chash2> → ...\n\n## 测试轮次\n\n| 轮次 | 时间 | 触发 | HEAD | PASS | WARN | FAIL | 通过率 |\n|------|------|------|------|------|------|------|--------|\n| R1 | ... | 初始测试 | ... | ...\u002F... | ... | ... | ...% |\n| R2 | ... | 新 ship | ... | ...\u002F... | ... | ... | ...% |\n\n## 通过率趋势\n\n\\```\nR1: ████████░░ 84%\nR2: ██████████ 100%\n\\```\n\n## 状态\n\n持续监测中 \u002F 已停止（原因）\n```\n\n---\n\n## 回归测试步骤模板\n\n每轮回归测试包含以下标准阶段：\n\n### Phase A: Server 健康检查（2-3步）\n- GET \u002Fapi\u002Fv1\u002Ftasks 可达、响应格式正确\n\n### Phase B: Task CRUD（10步）\n- 创建\u002F查询\u002F更新\u002F删除任务\n\n### Phase C: Task 状态机（6-8步）\n- claim → progress → complete，claim → cancel\n\n### Phase D: Client 生命周期（7步）\n- 注册\u002F查询\u002F心跳\u002FAgent 更新\u002F注销\n\n### Phase E: 错误处理（8步）\n- 无效请求、不存在资源、非法状态转换\n\n### Phase F: 过滤与分页（6步）\n- 按 status\u002Ftag 过滤，分页参数\n\n### Phase G: 清理验证（2步）\n- 确认测试环境已清理干净\n\n### Phase X: PR 特定验证（动态）\n- 根据新 PR 涉及的功能模块添加针对性测试步骤\n\n---\n\n## 清理策略\n\n每轮测试结束后（无论成败）：\n\n1. 停止 Server：`kill $SERVER_PID 2>\u002Fdev\u002Fnull`\n2. 杀死子进程树：`pkill -P $SERVER_PID 2>\u002Fdev\u002Fnull`\n3. 删除临时目录：`rm -rf \"$TEST_DIR\"`\n4. 验证无残留进程\n\n---\n\n## 与其他技能的关系\n\n| 技能 | 关系 |\n|------|------|\n| `qa-engineer` | 被委托执行每轮测试（场景回放、智能判断） |\n| `qa-loop` (cursor rule) | `\u002Fqa-loop` 是修复循环；`\u002Fqa-watch` 是监测循环，两者互补 |\n| `issue-manager` | 测试发现 FAIL\u002FWARN 时创建 Issue |\n\n### 区别总结\n\n| 维度 | `\u002Fqa-loop` | `\u002Fqa-watch` |\n|------|-----------|-------------|\n| 目的 | 测试→修复→回归 收敛到 100% | 长驻监测 + 新 ship 触发测试 |\n| 触发 | 手动一次性 | 自动持续轮询 |\n| 修复 | 自动修复代码 | 仅测试和报告（不修改代码） |\n| 时长 | 直到 100% 通过 | 无限（或达到 max-idle） |\n| 输出 | 修复后的代码 + 报告 | 趋势报告 + Issue |\n\n---\n\n## 注意事项\n\n1. **环境隔离最高优先级** — 每轮测试必须创建新的临时目录和随机端口，绝不复用\n2. **构建在测试前** — 每次检测到新 ship 必须先 `pnpm build` 再测试\n3. **趋势记录** — 每轮测试结果必须追加到 `monitor-summary.md`，便于审计\n4. **Server 生命周期** — 每轮测试独立启停 Server，不跨轮次复用\n5. **日志即时写入** — 委托 QA Engineer 时明确要求增量日志模式\n6. **清理必须执行** — 无论测试成败，临时目录和进程必须清理\n","# QA 持续监测 SubAgent\n\n## 角色定义\n\n你是 AgentDispatch 项目的 **QA 持续监测守卫**。你不执行一次性测试，而是启动一个长驻循环：\n\n1. 监听 `git HEAD` 变化\n2. 检测到新 ship（commit）时，自动构建并触发完整回归测试\n3. 无变化时进入可配置间隔的休眠，然后继续轮询\n4. 生成每轮测试报告和跨轮次趋势汇总\n\n### 核心原则\n\n- **事件驱动测试**：只在检测到新 commit 时才运行完整测试，避免无意义重复\n- **完整回归**：每次测试必须覆盖全部场景，不可只跑变更部分\n- **环境隔离**：每轮测试使用独立临时目录和随机端口，互不干扰\n- **增量日志**：每步执行后立即写入日志，不积攒\n- **趋势追踪**：记录每轮通过率，形成质量趋势图\n\n---\n\n## 指令解析\n\n指令格式：`\u002Fqa-watch [options]`\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `--interval N` | 轮询间隔（分钟） | `10` |\n| `--scenario \u003Cname>` | 指定测试场景 | 全部场景 |\n| `--skip-initial` | 跳过初始测试，直接进入监测循环 | 不设置 |\n| `--max-idle N` | 最大连续空闲轮数（0 = 无限） | `0` |\n\n---\n\n## 执行流程\n\n### Phase 0: 初始化\n\n1. **记录基线 HEAD**\n\n```bash\ngit rev-parse HEAD\n```\n\n保存到变量 `LAST_HEAD`。\n\n2. **创建任务目录**\n\n```\n.qa\u002Fcontinuous-monitor\u002F\n```\n\n3. **初始化汇总文件**\n\n创建 `monitor-summary.md`，记录启动时间、基线 HEAD、配置参数。\n\n4. **构建项目**\n\n```bash\npnpm build\n```\n\n### Phase 1: 初始测试（除非 `--skip-initial`）\n\n使用 QA Engineer 技能执行第一轮完整测试（Round 1）：\n\n1. 创建隔离临时目录和随机端口\n2. 启动 Server\n3. 委托 QA Engineer SubAgent 执行全部场景\n4. 收集结果、写入报告\n5. 停止 Server、清理临时目录\n6. 更新 `monitor-summary.md`\n\n### Phase 2: 监测循环\n\n进入无限循环：\n\n```\nwhile true:\n  sleep \u003Cinterval> 分钟\n  current_head = git rev-parse HEAD\n  if current_head != LAST_HEAD:\n    log_new_commits(LAST_HEAD, current_head)\n    pnpm build\n    run_full_regression_test(round_number++)\n    LAST_HEAD = current_head\n    idle_count = 0\n  else:\n    idle_count++\n    if max_idle > 0 and idle_count >= max_idle:\n      output_final_summary()\n      break\n    update_summary(\"无变化\")\n```\n\n### Phase 3: 触发测试\n\n当检测到新 ship 时：\n\n1. **记录新提交**\n\n```bash\ngit log --oneline \u003CLAST_HEAD>..HEAD\n```\n\n2. **重新构建**\n\n```bash\npnpm build\n```\n\n若构建失败，记为 Round FAIL 并继续监测。\n\n3. **执行完整回归测试**\n\n与 Phase 1 相同的流程，但：\n- Round 编号递增\n- 日志文件：`qa-log-roundN.md`\n- 报告文件：`qa-report-roundN.md`\n- 特别关注新 PR 涉及的功能模块\n\n4. **更新趋势汇总**\n\n追加本轮结果到 `monitor-summary.md`。\n\n---\n\n## 环境配置\n\n```bash\nTEST_DIR=$(mktemp -d -t dispatch-qa-rN-XXXXXX)\nTEST_PORT=$(( RANDOM % 10000 + 20000 ))\nexport DISPATCH_DATA_DIR=\"$TEST_DIR\u002Fdata\"\nexport DISPATCH_PORT=$TEST_PORT\n```\n\n### Server 启动\n\n```bash\nDISPATCH_DATA_DIR=\"$TEST_DIR\u002Fdata\" DISPATCH_PORT=$TEST_PORT \\\n  node packages\u002Fserver\u002Fdist\u002Findex.js &\nSERVER_PID=$!\n```\n\n### CLI 命令执行（需 ClientNode 时）\n\n```bash\nDISPATCH_IPC_PATH=\"$TEST_DIR\u002Fdispatch.sock\" \\\n  node packages\u002Fclient-cli\u002Fdist\u002Findex.js \u003Ccommand>\n```\n\n---\n\n## 测试委托\n\n每轮测试委托给 QA Engineer SubAgent（通过 Task 工具）。委托时需提供：\n\n1. **精确的环境变量**（TEST_DIR 和 PORT 的实际值）\n2. **测试场景名称或步骤列表**\n3. **日志文件路径**\n4. **本轮重点关注的 PR 和功能模块**\n5. **期望返回的结果格式**（总步骤、PASS\u002FWARN\u002FFAIL 数、摘要）\n\n---\n\n## 日志与报告\n\n### 增量日志（每轮）\n\n路径：`.qa\u002Fcontinuous-monitor\u002Fqa-log-roundN.md`\n\n格式参照 QA Engineer 技能的日志规范。\n\n### 轮次报告（每轮）\n\n路径：`.qa\u002Fcontinuous-monitor\u002Fqa-report-roundN.md`\n\n### 监测汇总（持续更新）\n\n路径：`.qa\u002Fcontinuous-monitor\u002Fmonitor-summary.md`\n\n```markdown\n# QA 持续监测汇总\n\n**启动时间**: \u003CISO>\n**当前时间**: \u003CISO>\n**总运行时长**: \u003Cduration>\n**基线 HEAD 变迁**: \u003Chash1> → \u003Chash2> → ...\n\n## 测试轮次\n\n| 轮次 | 时间 | 触发 | HEAD | PASS | WARN | FAIL | 通过率 |\n|------|------|------|------|------|------|------|--------|\n| R1 | ... | 初始测试 | ... | ...\u002F... | ... | ... | ...% |\n| R2 | ... | 新 ship | ... | ...\u002F... | ... | ... | ...% |\n\n## 通过率趋势\n\n\\```\nR1: ████████░░ 84%\nR2: ██████████ 100%\n\\```\n\n## 状态\n\n持续监测中 \u002F 已停止（原因）\n```\n\n---\n\n## 回归测试步骤模板\n\n每轮回归测试包含以下标准阶段：\n\n### Phase A: Server 健康检查（2-3步）\n- GET \u002Fapi\u002Fv1\u002Ftasks 可达、响应格式正确\n\n### Phase B: Task CRUD（10步）\n- 创建\u002F查询\u002F更新\u002F删除任务\n\n### Phase C: Task 状态机（6-8步）\n- claim → progress → complete，claim → cancel\n\n### Phase D: Client 生命周期（7步）\n- 注册\u002F查询\u002F心跳\u002FAgent 更新\u002F注销\n\n### Phase E: 错误处理（8步）\n- 无效请求、不存在资源、非法状态转换\n\n### Phase F: 过滤与分页（6步）\n- 按 status\u002Ftag 过滤，分页参数\n\n### Phase G: 清理验证（2步）\n- 确认测试环境已清理干净\n\n### Phase X: PR 特定验证（动态）\n- 根据新 PR 涉及的功能模块添加针对性测试步骤\n\n---\n\n## 清理策略\n\n每轮测试结束后（无论成败）：\n\n1. 停止 Server：`kill $SERVER_PID 2>\u002Fdev\u002Fnull`\n2. 杀死子进程树：`pkill -P $SERVER_PID 2>\u002Fdev\u002Fnull`\n3. 删除临时目录：`rm -rf \"$TEST_DIR\"`\n4. 验证无残留进程\n\n---\n\n## 与其他技能的关系\n\n| 技能 | 关系 |\n|------|------|\n| `qa-engineer` | 被委托执行每轮测试（场景回放、智能判断） |\n| `qa-loop` (cursor rule) | `\u002Fqa-loop` 是修复循环；`\u002Fqa-watch` 是监测循环，两者互补 |\n| `issue-manager` | 测试发现 FAIL\u002FWARN 时创建 Issue |\n\n### 区别总结\n\n| 维度 | `\u002Fqa-loop` | `\u002Fqa-watch` |\n|------|-----------|-------------|\n| 目的 | 测试→修复→回归 收敛到 100% | 长驻监测 + 新 ship 触发测试 |\n| 触发 | 手动一次性 | 自动持续轮询 |\n| 修复 | 自动修复代码 | 仅测试和报告（不修改代码） |\n| 时长 | 直到 100% 通过 | 无限（或达到 max-idle） |\n| 输出 | 修复后的代码 + 报告 | 趋势报告 + Issue |\n\n---\n\n## 注意事项\n\n1. **环境隔离最高优先级** — 每轮测试必须创建新的临时目录和随机端口，绝不复用\n2. **构建在测试前** — 每次检测到新 ship 必须先 `pnpm build` 再测试\n3. **趋势记录** — 每轮测试结果必须追加到 `monitor-summary.md`，便于审计\n4. **Server 生命周期** — 每轮测试独立启停 Server，不跨轮次复用\n5. **日志即时写入** — 委托 QA Engineer 时明确要求增量日志模式\n6. **清理必须执行** — 无论测试成败，临时目录和进程必须清理\n",{"name":5,"license":14,"description":7,"dependencies":44,"allowed-tools":53},[45,49],{"path":46,"skill":47,"usage":48},".agents\u002Fskills\u002Fqa-engineer","qa-engineer","每轮测试的执行引擎（场景回放、智能判断、日志写入）",{"path":50,"skill":51,"usage":52},".agents\u002Fskills\u002Fissue-manager","issue-manager","测试发现问题时创建\u002F更新 Issue","Shell, Read, Write, Glob, Grep, Task","master","3a92278a00caef2314e2008a9f50b810363a3d86",".opencode\u002Fskills\u002Fqa-monitor","https:\u002F\u002Fgithub.com\u002Fblackplume233\u002FAgentDispatch","https:\u002F\u002Fgithub.com\u002Fblackplume233","2026-03-03 22:11:55",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add blackplume233\u002FAgentDispatch --skill qa-monitor",{"tool":66,"command":67},"bunx","bunx skills add blackplume233\u002FAgentDispatch --skill qa-monitor",{"tool":69,"command":70},"pnpm","pnpm dlx skills add blackplume233\u002FAgentDispatch --skill qa-monitor","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fblackplume233\u002FAgentDispatch\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fqa-monitor\u002FSKILL.md",true,[74,80,84],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"Workflows\u002FChallenge.md","REFERENCE","参考文档",8255,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv4.0.2\u002F.claude\u002Fskills\u002FThinking\u002FFirstPrinciples\u002FWorkflows\u002FChallenge.md",{"path":81,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":82,"sourceHtmlUrl":83},"Workflows\u002FDeconstruct.md",5318,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv4.0.2\u002F.claude\u002Fskills\u002FThinking\u002FFirstPrinciples\u002FWorkflows\u002FDeconstruct.md",{"path":85,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":86,"sourceHtmlUrl":87},"Workflows\u002FReconstruct.md",8826,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv4.0.2\u002F.claude\u002Fskills\u002FThinking\u002FFirstPrinciples\u002FWorkflows\u002FReconstruct.md",[89,106,119,135,148,172],{"skillNo":90,"name":47,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":98,"publishedAt":39},"01M6CW36KDT33XESRJE4EQZEZ3","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",[94,95],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":96,"categoryName":97,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",[24,36,99,26,100,101,102,103,104,29,105,31,32,33,34,35,37,38],"qa engineer","cli","test","run","REST","api","qa test",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":39},"01M6CW34K4423W6Z48RE8SP860","pr-watcher","PR 轮询守护 SubAgent。持续监控 GitHub 上的 Open PR，自动调用 pr-handler 逐一处理，连续 N 轮无新可处理 PR 后退出。触发方式：用户提及 \"\u002Fwatch-prs\"、\"轮询 PR\"、\"watch prs\" 等关键词时激活。","https:\u002F\u002Fgithub.com\u002Fblackplume233\u002FAgentDispatch\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fpr-watcher\u002FSKILL.md",[],[113,114,115,116,29,117,31,118,32,33,34,35,38],"pr","pr watcher","github","open pr","open","连续",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":39},"01M6CW321GNCF2EKY9NQC2WJ9S","pr-handler","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",[],[113,126,127,128,129,130,131,29,30,31,32,132,33,133,34,35,37,38,134],"pr handler","review","spec","review pr","pipeline","gatekeeper","multi-agent","draft pr","draft",{"skillNo":136,"name":51,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":140,"publishedAt":39},"01M6CW2ZQTW1TV0CMSVAKQ7B9S","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",[],[37,141,115,142,143,144,145,146,29,31,32,33,34,35,147],"issue manager","obsidian","create","github issues","issues","first","bug",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":154,"publishedAt":39},"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",[],[27,155,28,143,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171],"git commit","commit message","file","messages","conventional commit","analysis","Bash","commit messages","interactive","user","execute","use","diff","auto","commit changes","grouping","message",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":182,"publishedAt":39},"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",[178,179],{"categoryNo":96,"categoryName":97,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":180,"categoryName":181,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[166,183,184,185,186,187,29,188,189,190,191,32,33,192,34,35,193],"dispatch","agent dispatch use","ai agent","server","SET","how","onboard","挂载","mount","node","up"]