一键导入
qa-monitor
QA 持续监测 SubAgent。监听 git HEAD 变化,每有新 ship(commit)自动触发完整回归测试,无变化时进入可配置间隔的休眠轮询。触发方式:用户提及 "/qa-watch"、"QA 监测"、"continuous QA"、"watch ship" 等关键词时激活。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
QA 持续监测 SubAgent。监听 git HEAD 变化,每有新 ship(commit)自动触发完整回归测试,无变化时进入可配置间隔的休眠轮询。触发方式:用户提及 "/qa-watch"、"QA 监测"、"continuous QA"、"watch ship" 等关键词时激活。
用 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`)。
持续审查项目进度、代码质量与 Roadmap 合理性的只读 SubAgent。不直接修改任何源码或文档,仅通过创建 Issue 和添加 Comment 输出审查意见。触发方式:用户提及 "/review"、"审查项目"、"review progress" 等关键词时自动激活。
GitHub-first Issue 管理 SubAgent。Issue 编号和内容以 GitHub Issues 为准,本地 .trellis/issues/ 为 Obsidian 兼容缓存。触发方式:用户提及 "/issue"、"创建 issue"、"create issue"、"新建问题"、"提 bug" 等关键词时激活。
编辑范围冻结技能。用于把当前任务限制在指定路径、模块或责任边界内,越界时必须停下并报告。触发方式:用户提及 "freeze"、"只改这个模块"、"不要动别的文件"、"锁定范围" 等关键词时激活。
高风险会话护栏技能。用于约束危险操作、提醒 destructive command 风险、限制在无验证或无依据时继续推进。触发方式:用户提及 "guard"、"安全模式"、"高风险修改"、"谨慎处理"、"不要乱改" 等关键词时激活。
| name | qa-monitor |
| description | QA 持续监测 SubAgent。监听 git HEAD 变化,每有新 ship(commit)自动触发完整回归测试,无变化时进入可配置间隔的休眠轮询。触发方式:用户提及 "/qa-watch"、"QA 监测"、"continuous QA"、"watch ship" 等关键词时激活。 |
| license | MIT |
| allowed-tools | Shell, Read, Write, Glob, Grep, Task |
| dependencies | [{"skill":"qa-engineer","path":".agents/skills/qa-engineer","usage":"每轮测试的执行引擎(场景回放、智能判断、日志写入)"},{"skill":"issue-manager","path":".agents/skills/issue-manager","usage":"测试发现问题时创建/更新 Issue"}] |
你是 Actant 项目的 QA 持续监测守卫。你不执行一次性测试,而是启动一个长驻循环:
git HEAD 变化指令格式:/qa-watch [options]
| 参数 | 说明 | 默认值 |
|---|---|---|
--interval N | 轮询间隔(分钟) | 10 |
--mock | 使用 mock launcher 模式 | 不设置(真实模式) |
--scenario <name> | 指定测试场景 | random-walk-comprehensive |
--skip-initial | 跳过初始测试,直接进入监测循环 | 不设置 |
--max-idle N | 最大连续空闲轮数(0 = 无限) | 0 |
git rev-parse HEAD
保存到变量 LAST_HEAD。
.trellis/tasks/qa-continuous-monitor/
创建 monitor-summary.md,记录启动时间、基线 HEAD、配置参数。
pnpm build
--skip-initial)使用 QA Engineer 技能执行第一轮完整测试(Round 1):
monitor-summary.md进入无限循环:
while true:
sleep <interval> 分钟
current_head = git rev-parse HEAD
if current_head != LAST_HEAD:
# 检测到新 ship
log_new_commits(LAST_HEAD, current_head)
pnpm build
run_full_regression_test(round_number++)
LAST_HEAD = current_head
idle_count = 0
else:
idle_count++
if max_idle > 0 and idle_count >= max_idle:
output_final_summary()
break
update_summary("无变化")
当检测到新 ship 时:
git log --oneline <LAST_HEAD>..HEAD
解析 PR 编号和变更摘要。
pnpm build
若构建失败,记为 Round FAIL 并继续监测。
与 Phase 1 相同的流程,但:
qa-log-roundN.mdqa-report-roundN.md追加本轮结果到 monitor-summary.md。
$TEST_DIR = "$env:TEMP\ac-qa-rN-<random>"
$PIPE_ID = "actant-qa-rN-<random>"
$env:ACTANT_HOME = $TEST_DIR
$env:ACTANT_SOCKET = "\\.\pipe\$PIPE_ID"
$env:ACTANT_LAUNCHER_MODE = "mock" # 仅当 --mock 时
TEST_DIR=$(mktemp -d -t ac-qa-XXXXXX)
export ACTANT_HOME="$TEST_DIR"
export ACTANT_SOCKET="$TEST_DIR/actant.sock"
export ACTANT_LAUNCHER_MODE="mock" # 仅当 --mock 时
所有 CLI 命令通过以下方式执行:
node <project_root>/packages/cli/dist/bin/actant.js <command>
每轮测试前加载以下模板:
{
"name": "rw-basic-tpl",
"version": "1.0.0",
"backend": { "type": "cursor" },
"provider": { "type": "anthropic" },
"domainContext": {}
}
{
"name": "rw-claude-tpl",
"version": "1.0.0",
"backend": {
"type": "claude-code",
"config": { "model": "claude-sonnet-4-20250514" }
},
"provider": {
"type": "anthropic",
"config": { "apiKeyEnv": "ANTHROPIC_API_KEY" }
},
"domainContext": {}
}
每轮测试委托给 QA Engineer SubAgent(通过 Task 工具)。委托时需提供:
你是 QA 测试工程师 SubAgent,执行 Round N 完整回归测试。
## 触发原因
<新提交列表和 PR 编号>
## 环境信息
- 项目根目录: <project_root>
- CLI: packages/cli/dist/bin/actant.js
- 环境变量(每条命令都必须精确设置):
- $env:ACTANT_HOME = "<actual_test_dir>"
- $env:ACTANT_SOCKET = "<actual_socket_path>"
- $env:ACTANT_LAUNCHER_MODE = "mock"(如适用)
## 测试内容
<Phase A-G 步骤列表,含期望行为>
## 日志要求
每步追加到 <log_file_path>
## 返回内容
- 总步骤 / PASS / WARN / FAIL
- 与前轮对比
- 新 PR 回归结果
- FAIL/WARN 摘要
路径:.trellis/tasks/qa-continuous-monitor/qa-log-roundN.md
格式参照 QA Engineer 技能的日志规范。
路径:.trellis/tasks/qa-continuous-monitor/qa-report-roundN.md
路径:.trellis/tasks/qa-continuous-monitor/monitor-summary.md
# QA 持续监测汇总
**启动时间**: <ISO>
**当前时间**: <ISO>
**总运行时长**: <duration>
**基线 HEAD 变迁**: <hash1> → <hash2> → ...
## 测试轮次
| 轮次 | 时间 | 触发 | HEAD | PASS | WARN | FAIL | 通过率 |
|------|------|------|------|------|------|------|--------|
| R1 | ... | 初始测试 | ... | .../... | ... | ... | ...% |
| R2 | ... | 新 ship | ... | .../... | ... | ... | ...% |
## 监测检查记录
| 检查时间 | 基线 | 结果 |
|----------|------|------|
| ... | ... | 新 ship → Round N / 无变化 |
## 覆盖的 PR
| PR | 标题 | 回归结果 |
|----|------|---------|
## 通过率趋势
\```
R1: ████████░░ 84%
R2: ██████████ 100%
\```
## 状态
持续监测中 / 已停止(原因)
每轮回归测试包含以下标准阶段(可根据新 PR 动态扩展):
每轮测试结束后(无论成败):
agent destroy <name> --force (忽略错误)daemon stoprm -rf $TEST_DIR / Remove-Item -Recurse -Force $TEST_DIR| 技能 | 关系 |
|---|---|
qa-engineer | 被委托执行每轮测试(黑盒场景回放、智能判断) |
qa-loop (skill) | qa-loop 是修复循环技能;/qa-watch 是监测循环,两者互补 |
issue-manager | 测试发现 FAIL/WARN 时创建 Issue |
| 维度 | qa-loop | /qa-watch |
|---|---|---|
| 目的 | 测试→修复→回归 收敛到 100% | 长驻监测 + 新 ship 触发测试 |
| 触发 | 手动一次性 | 自动持续轮询 |
| 修复 | 自动修复代码 | 仅测试和报告(不修改代码) |
| 时长 | 直到 100% 通过 | 无限(或达到 max-idle) |
| 输出 | 修复后的代码 + 报告 | 趋势报告 + Issue |
ACTANT_SOCKET 使用命名管道 \\.\pipe\<id>,PIPE_ID 每轮随机生成pnpm build 再测试monitor-summary.md,便于审计