mcpField
U
ultraqa

ultraqa

github.com/yeachan-heo测试与质量40.4k902 次安装1 天前更新
代码仓库

关于 ultraqa

UltraQA 是用于重复执行质量检查、诊断和修复的自主 QA 循环技能,适合目标行为已明确、仍需确认质量门是否通过的任务。它按指定目标运行检查,失败时安排诊断与修复,并设有循环上限和提前停止条件。

主要功能

  1. 01支持测试、构建、lint 和类型检查目标
  2. 02运行 QA 检查并跟踪结果
  3. 03失败时安排诊断与修复
  4. 04最多循环五次并检测重复失败
  5. 05完成或退出时清理状态文件

适用场景

  1. 01反复运行测试直至通过或触及上限
  2. 02构建失败后的诊断与修复
  3. 03检查 lint 或 TypeScript 类型错误
  4. 04针对自定义输出模式验证命令

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/yeachan-heo/oh-my-claudecode --skill ultraqa

安装后在 Claude Code 中输入/ultraqa确认已加载。

详细介绍

UltraQA Skill

[ULTRAQA ACTIVATED - AUTONOMOUS QA CYCLING]

概述

你现在处于 ULTRAQA 模式 —— 一个自主 QA 循环工作流,会持续运行,直到满足你的质量目标。

循环:qa-tester → architect 验证 → 修复 → 重复

与 /goal、Ralph、Team 和 Ultragoal 的关系

UltraQA 只负责重复的质量门禁循环。请使用确定性冲突策略 refuse、adopt_existing 和 artifact_only,而不是非确定性的警告处理。请在目标行为已知、且剩余问题只是测试、构建、lint、typecheck 或其他显式 QA 条件是否通过时使用它。如果 Claude Code /goal 处于活动状态,UltraQA 可以为该目标产生可见的命令证据,但不得将 /goal 评估器描述为独立运行命令或读取文件。如果 Ralph 或 Team 处于活动状态,UltraQA 是该权威下的验证/修复子循环,而不是与之竞争的会话循环。如果没有安全的活动循环,请在仅产物的 Ultragoal 笔记中记录 QA 预期和证据,而不是声称会自动执行。

目标解析

从参数中解析目标。支持的格式:

调用方式目标类型检查内容
/oh-my-claudecode:ultraqa --teststests所有测试套件通过
/oh-my-claudecode:ultraqa --buildbuild构建成功并以退出码 0 结束
/oh-my-claudecode:ultraqa --lintlint无 lint 错误
/oh-my-claudecode:ultraqa --typechecktypecheck无 TypeScript 错误
/oh-my-claudecode:ultraqa --custom "pattern"custom输出中匹配自定义成功模式

如果未提供结构化目标,则将参数解释为自定义目标。

循环工作流

第 N 轮循环(最多 5 轮)
  1. 运行 QA:根据目标类型执行验证

    • --tests:运行项目的测试命令
    • --build:运行项目的构建命令
    • --lint:运行项目的 lint 命令
    • --typecheck:运行项目的类型检查命令
    • --custom:运行相应命令并检查模式
    • --interactive:使用 qa-tester 进行交互式 CLI/服务测试:
      Task(subagent_type="oh-my-claudecode:qa-tester", model="sonnet", prompt="TEST:
      Goal: [describe what to verify]
      Service: [how to start]
      Test cases: [specific scenarios to verify]")
      
  2. 检查结果:目标是否通过?

    • 是 → 以成功消息退出
    • 否 → 继续执行第 3 步
  3. Architect 诊断:启动 architect 分析失败

    Task(subagent_type="oh-my-claudecode:architect", model="opus", prompt="DIAGNOSE FAILURE:
    Goal: [goal type]
    Output: [test/build output]
    Provide root cause and specific fix recommendations.")
    
  4. 修复问题:应用 architect 的建议

    Task(subagent_type="oh-my-claudecode:executor", model="sonnet", prompt="FIX:
    Issue: [architect diagnosis]
    Files: [affected files]
    Apply the fix precisely as recommended.")
    
  5. 重复:返回第 1 步

退出条件

条件操作
目标达成以成功消息退出:"ULTRAQA COMPLETE: Goal met after N cycles"
达到第 5 轮以诊断消息退出:"ULTRAQA STOPPED: Max cycles. Diagnosis: ..."
同一失败出现 3 次提前退出:"ULTRAQA STOPPED: Same failure detected 3 times. Root cause: ..."
环境错误退出:"ULTRAQA ERROR: [tmux/port/dependency issue]"

可观测性

每轮循环输出进度:

[ULTRAQA Cycle 1/5] Running tests...
[ULTRAQA Cycle 1/5] FAILED - 3 tests failing
[ULTRAQA Cycle 1/5] Architect diagnosing...
[ULTRAQA Cycle 1/5] Fixing: auth.test.ts - missing mock
[ULTRAQA Cycle 2/5] Running tests...
[ULTRAQA Cycle 2/5] PASSED - All 47 tests pass
[ULTRAQA COMPLETE] Goal met after 2 cycles

状态跟踪

在 .omc/ultraqa-state.json 中跟踪状态:

{
  "active": true,
  "goal_type": "tests",
  "goal_pattern": null,
  "cycle": 1,
  "max_cycles": 5,
  "failures": ["3 tests failing: auth.test.ts"],
  "started_at": "2024-01-18T12:00:00Z",
  "session_id": "uuid"
}

取消

用户可以使用 /oh-my-claudecode:cancel 取消,该命令会清除状态文件。

重要规则

  1. 尽可能并行 - 在准备潜在修复的同时运行诊断
  2. 记录失败 - 记录每次失败以检测模式
  3. 发现模式时提前退出 - 3 次相同失败 = 停止并上报
  4. 清晰输出 - 用户应始终了解当前循环和状态
  5. 清理 - 在完成或取消时清除状态文件

完成时清理状态

重要:完成时删除状态文件 - 不要只是设置 active: false

当目标达成或达到最大循环次数或提前退出时:

# Delete ultraqa state file
rm -f .omc/state/ultraqa-state.json

这可确保为未来会话留下干净的状态。不应留下带有 active: false 的过期状态文件。

并行会话注意事项

  • 多仓库工作区锚点: 在父目录放置一个 .omc-workspace 标记,以便跨子仓库的多个会话共享一个 .omc/。解析顺序:OMC_STATE_DIR > .omc-workspace > git > cwd。参见 docs/REFERENCE.md。
  • 会话 id 来源: 在命令行上下文中,OMC_SESSION_ID 环境变量优先;在 hook 上下文中,hook 负载数据 session_id 优先。
  • 计划 id(如适用): UltraQA 状态是会话范围的。与 ralph 的互斥仅适用于同一会话内。
  • 并行判定: 支持(会话范围状态)

立即开始 ULTRAQA 循环。解析目标并开始循环 1。

评论

支持 Markdown