name: ultraqa description: QA循环工作流程 - 测试、验证、修复、重复直到目标达成
UltraQA技能
[ULTRAQA已激活 - 自主QA循环]
概述
您现在处于ULTRAQA模式 - 一个自主的QA循环工作流程,运行直到您的质量目标达成。
循环: qa测试员 → 架构师验证 → 修复 → 重复
目标解析
从参数中解析目标。支持的格式:
| 调用 | 目标类型 | 检查内容 |
|---|---|---|
/oh-my-claudecode:ultraqa --tests |
tests | 所有测试套件通过 |
/oh-my-claudecode:ultraqa --build |
build | 构建成功,退出码为0 |
/oh-my-claudecode:ultraqa --lint |
lint | 无lint错误 |
/oh-my-claudecode:ultraqa --typecheck |
typecheck | 无TypeScript错误 |
/oh-my-claudecode:ultraqa --custom "pattern" |
custom | 输出中的自定义成功模式 |
如果没有提供结构化目标,则将参数解释为自定义目标。
循环工作流程
循环N(最大5)
-
运行QA: 根据目标类型执行验证
--tests: 运行项目的测试命令--build: 运行项目的构建命令--lint: 运行项目的lint命令--typecheck: 运行项目的类型检查命令--custom: 运行适当的命令并检查模式--interactive: 使用qa-tester进行交互式CLI/服务测试:Task(subagent_type="oh-my-claudecode:qa-tester", model="sonnet", prompt="测试: 目标: [描述要验证的内容] 服务: [如何启动] 测试用例: [要验证的特定场景]")
-
检查结果: 目标是否通过?
- 是 → 退出并显示成功消息
- 否 → 继续到步骤3
-
架构师诊断: 生成架构师以分析失败
Task(subagent_type="oh-my-claudecode:architect", model="opus", prompt="诊断失败: 目标: [目标类型] 输出: [测试/构建输出] 提供根本原因和具体的修复建议。") -
修复问题: 应用架构师的建议
Task(subagent_type="oh-my-claudecode:executor", model="sonnet", prompt="修复: 问题: [架构师诊断] 文件: [受影响文件] 精确按照建议应用修复。") -
重复: 返回步骤1
退出条件
| 条件 | 操作 |
|---|---|
| 目标达成 | 退出并成功: “ULTRAQA完成: 目标在N个循环后达成” |
| 达到5个循环 | 退出并诊断: “ULTRAQA停止: 达到最大循环。诊断: …” |
| 相同失败3次 | 提前退出: “ULTRAQA停止: 检测到相同失败3次。根本原因: …” |
| 环境错误 | 退出: “ULTRAQA错误: [tmux/端口/依赖问题]” |
可观测性
输出进度每个循环:
[ULTRAQA循环1/5] 运行测试...
[ULTRAQA循环1/5] 失败 - 3个测试失败
[ULTRAQA循环1/5] 架构师正在诊断...
[ULTRAQA循环1/5] 修复: auth.test.ts - 缺少模拟
[ULTRAQA循环2/5] 运行测试...
[ULTRAQA循环2/5] 通过 - 所有47个测试通过
[ULTRAQA完成] 目标在2个循环后达成
状态跟踪
在.omc/ultraqa-state.json中跟踪状态:
{
"active": true,
"goal_type": "tests",
"goal_pattern": null,
"cycle": 1,
"max_cycles": 5,
"failures": ["3个测试失败: auth.test.ts"],
"started_at": "2024-01-18T12:00:00Z",
"session_id": "uuid"
}
取消
用户可以使用/oh-my-claudecode:cancel取消,这将清除状态文件。
重要规则
- 尽可能并行 - 在准备潜在修复的同时运行诊断
- 跟踪失败 - 记录每个失败以检测模式
- 模式时提前退出 - 相同失败3次 = 停止并表面
- 清晰输出 - 用户应始终知道当前循环和状态
- 清理 - 完成或取消时清除状态文件
完成时的状态清理
重要: 完成时删除状态文件 - 不要只是设置active: false
当目标达成或达到最大循环或提前退出时:
# 删除ultraqa状态文件
rm -f .omc/state/ultraqa-state.json
这确保未来会话的清洁状态。不应留下带有active: false的陈旧状态文件。
现在开始ULTRAQA循环。解析目标并启动循环1。