mcpField
Q
qa

qa

github.com/q00测试与质量6.3k56 次安装今天更新
代码仓库

关于 qa

qa 是 Ouroboros 的技能,可对代码、文档和测试输出等内容进行单轮评估。它按多个质量维度打分,并给出结论和可执行建议。

主要功能

  1. 01评估多种内容类型
  2. 02评定五个质量维度
  3. 03返回 PASS、REVISE 或 FAIL
  4. 04支持迭代评估
  5. 05探测具有行为的产物

适用场景

  1. 01按验收标准审查代码
  2. 02评估文档或 API 响应
  3. 03检查测试输出与实际行为

MCP 相关

可用时,该技能会调用 Ouroboros MCP 工具 `ouroboros_qa`;没有 MCP 服务的环境也提供备用流程。

安装

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

$npx skills add https://github.com/q00/ouroboros --skill qa

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

详细介绍

/ouroboros:qa

针对任何产物(代码、文档、API 响应、测试输出或自定义内容)进行快速单轮质量评估,并提供可执行的建议。若要对执行进行正式的三阶段验证,请使用 ooo evaluate。

ooo qa [file_path | artifact_text]
ooo qa                                     # recent execution output
/ouroboros:qa [file_path | artifact_text]

QA Judge 会根据质量标准,从正确性、完整性、质量、意图契合度和领域特定维度对产物进行评分:

分数评定循环操作
>= 0.80通过完成
0.40 - 0.79修改继续
< 0.40不通过升级处理

说明

加载 MCP 工具(延迟加载架构防护)

Ouroboros 工具可能会延迟加载,某一轮加载的架构可能会在下一轮卸载。每次调用 ouroboros_* 前,请立即使用当前运行时的工具发现功能加载对应工具:"+ouroboros qa" 用于 ouroboros_qa。若未加载架构,调用会失败并提示 "Invalid tool parameters"。如果该工具已可调用,发现操作不会产生任何效果,预期会返回空结果。仅当工具确实不存在时才使用回退方案;此技能无需 MCP 配置也能使用。

QA 步骤
  1. 制品:文件路径(使用当前运行时的 inspect_code 能力读取)、内联文本,或最近一次执行输出;如果不明确,请使用 ask_user 提问。
  2. 质量标准:如果上下文中有 Seed,则采用 Seed 的验收标准;否则采用用户说明的标准;如果两者都没有,请询问:“这个制品的‘良好’标准是什么?”
  3. 制品类型:code、test_output、document、api_response、screenshot 或 custom。

3.5. 行为验证扇出(具有行为的制品):文本评判器可能会被乐观的日志行误导。使用当前运行时的 orchestrate_subagents 能力,同时为运行时提供的每种行为模态启动一个探测子任务:进程探测(使用 run_shell:运行命令、应用或冒烟测试命令,设置有界超时,并捕获退出代码和实际输出)、浏览器探测(适用于 HTTP 服务和 Web UI:加载页面、测试主要流程,并捕获渲染结果以及控制台/网络错误)、计算机操作探测(适用于 GUI/TUI:像用户一样操作,并对观察到的状态截图)、制品探测(使用 inspect_code:确认声明的文件确实存在且内容真实,并非占位符)。每个探测仅返回结构化证据(命令、观察到的效果、截图/路径、每种行为的通过/失败结果),并覆盖 QA 工具列出的适用对抗性类别。只有在工具不可用或该模态与制品无关时,才跳过该模态,并说明跳过的模态及原因。等待所有探测完成,并将合并后的证据作为 reference 传入;若 artifact 与源码不一致,优先采用观察到的行为作为 artifact。

  1. 调用工具:

    Tool: ouroboros_qa
    Arguments:
      artifact: <the content to evaluate>
      quality_bar: <what 'pass' means>
      artifact_type: "code"  (or other type)
      reference: <observed-behaviour evidence from step 3.5, plus any reference>
      pass_threshold: 0.80  (adjustable)
      seed_content: <seed YAML if available>
    

    插件委派:如果响应包含 status: "delegated_to_subagent" 和 dispatch_mode: "plugin",则不包含判定结果。其内容是桥接程序的派发通知,其中的 _subagent 提示词是子任务的输入,并非结果。保留 qa_session_id,等待插件启动的子任务,并解析其 JSON 判定结果(score、verdict、dimensions、differences、suggestions、reasoning)。不会返回 iteration_entry,因此请像工具一样推导循环操作(score >= pass_threshold:结束;>= 0.40:继续;否则升级处理),并自行构建条目(iteration、score、verdict、loop_action)。如果子任务没有返回可解析的判定结果,请如实说明,而不要将信封内容呈现为结果。

  2. 呈现结果:醒目地展示分数和判定结果,然后列出各维度分数、具体差异及可执行的建议。实证优先于评判结果:如果评判器给出 PASS,但探测观察到行为失败,请依据该证据给出 REVISE/FAIL,并说明原因。如果没有任何工具可以执行操作,请指出尚未观察到该行为。根据判定结果选择下一步操作:

    • PASS(完成):继续;制品符合质量标准
    • REVISE(继续):处理建议,然后再次运行 ooo qa
    • FAIL(升级处理):使用 ooo interview 重新审查需求,或使用 ooo unstuck 质疑假设
迭代式 QA

首次调用会在 meta 中返回 qa_session_id 和 iteration_entry。后续调用时传入 qa_session_id 和累计的 iteration_history。持续执行,直到判定结果为 pass 或 fail。

回退方案(没有 Ouroboros MCP 服务时)

自行承担 qa-judge 角色,并使用 MCP 工具所用的相同提示词:如果设置了该覆盖项,则使用 $OUROBOROS_AGENTS_DIR/qa-judge.md;否则使用已安装软件包中的副本,通过 run_shell 打印:

uvx --isolated --python '>=3.12' --from ouroboros-ai python -c "import importlib.resources as r, sys; print(r.files('ouroboros.agents').joinpath(sys.argv[1]).read_text(encoding='utf-8'))" qa-judge.md

如果无法访问以上任何版本,则依据上述维度和阈值进行评判,并将判定结果标记为未对齐的回退判定。对于具有行为的制品,先运行第 3.5 步中的探测;按照 MCP 工具返回的相同格式呈现判定结果(score、verdict、threshold、dimensions、differences、suggestions、reasoning、loop action),并遵守迭代约定:使用 qa-<uuid4_short> 作为会话 ID,并在对话中记录迭代次数。

RFC #1392 状态面包屑页脚

最终回复必须以且仅以一行 ◆ <current state> → next: <recommended action> 结尾。尽可能通过 ouroboros_session_status 从实时会话状态推导状态,否则根据此技能的实际结果推导。切勿使用线性的 Step N of M 页脚;如果下一步确实有多个选择,请列出 2-3 个选项。

评论

支持 Markdown