qa

工程开发 社区 v2.0.0
解读按原文结构重写,命令、链接、术语均保留;右侧可核对作者原始 SKILL.md

设计思路

qa 是 gstack 的「自动化 QA + 修复」主门——和 design-review 同源同构(11 阶段),差异在于 QA 关心功能正确性,design-review 关心视觉 / UX。重要纪律:Clean working tree requiredOne commit per fixRevert on regression只在 Phase 8e.5 才写新回归测试(绝不改 CI、绝不改既有测试)。

关键纪律

  • 脏树:跑前用 AskUserQuestion 给 commit / stash / abort 三选项
  • One commit per fix:永不打包多条修复
  • 只新增测试文件:绝不改 CI 配置、绝不改既有测试
  • Revert on regression:发现修得更糟立刻 git revert HEAD
  • Self-regulate:按 WTF-likelihood 启发式,拿不准就停下问

Final Report

逐 issue 给:

  • Status:verified / best-effort / reverted / deferred
  • Commit SHA(如已修)
  • Files Changed(如已修)
  • Before/After 截图(如已修)

Summary:发现总数 / 修复(verified X / best-effort Y / reverted Z)/ deferred / health score baseline → final。

PR Summary(一行)

"QA found N issues, fixed M, health score X → Y."

TODOS.md 更新

仓库有 TODOS.md

  • 新 deferred bug → 加 TODO(severity / category / repro 步骤)
  • 修过的旧 TODO → 注 Fixed by /qa on {branch}, {date}

学习捕获

通过 gstack-learnings-log 记非显然发现:types(pattern / pitfall / preference / architecture / tool / operational)/ sources(observed / user-stated / inferred / cross-model)/ confidence 1-10 实事求是;files 字段填具体路径(启用 staleness 检测)。只记真发现——对方早就知道的别写。

适合谁

  • 合并 PR 前要做最后一道功能 QA 的工程师
  • 用 LLM 大量产出代码、想要自动化扫一遍的项目
  • 想把测试缺口可视化的工程负责人

不适合

  • 没有可跑的 daemon / 浏览器环境(gstack QA 走 browse 自动化)
  • 临时实验脚本——开仪式过度

配套

design-review(同构兄弟,视觉维度)、devex-review(DX 维度)、browse(执行端)、canary(部署后扩展监控)、qa-mattpocock(轻量手工 QA 流程)。

流狐档案 作者与许可取自来源;运行、权限和网络为流狐检测或估算
流狐分类
工程开发
作者声明 Agent
未找到明确声明;不据此推断已兼容或已测试
静态检查
88 / 100 · 启发式扫描,不代表运行安全
作者 / 版本 / 许可
@garrytan · v2.0.0 · 未声明 license
流狐 Token 估算
较高消耗
流狐接入估算
需手动接入
是否需要外部 API Key
未发现要求
检测到的系统要求
Linux
底层运行要求
Node.js · Bun · Python
检测到的文件与系统行为
  • 只读
  • 允许写入 / 修改
  • Shell 执行
  • 读取环境变量
检测到的网络行为
允许外网请求
安装命令数
无(仅作为资料)

档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。

需要注意: 未限定 allowed-tools,默认拥有全部工具权限。

输出预览 qa.preview
# Writing Style (skip entirely if EXPLAINLEVEL: terse appears in the preamble echo OR the user's current message explicitly requests terse / no-explanations output)

- Gloss curated jargon on first use per skill invocation, even if the user pasted the term.
- Frame questions in outcome terms: what pain is avoided, what capability unlocks, what user experience changes.
- Use short sentences, concrete nouns, active voice.
- Close decisions with user impact: what the user sees, waits for, loses, or gains.
- User-turn override wins: if the current message asks for terse / no explanations / just the answer, skip this section.
- Terse mode (EXPLAIN_LEVEL: terse): no glosses, no outcome-framing layer, shorter responses.

讨论

基于 GitHub Discussions。登录 GitHub 即可参与讨论、点赞、订阅更新。