whole-qalisted
Install: claude install-skill weiyi88/cc-code
# whole-qa — 全量验收 + 修复闭环编排器
> **与 `qa` agent 的关系**:`qa` 是「单模块测一次」的原子能力;本 skill 是「全模块 × 多轮 + 修复回环」的编排层,**复用 `qa`,不重写测试逻辑**。
> **与 `agent-to-mvp` 的关系**:`agent-to-mvp` 每阶段用 `qa` 做增量验收;本 skill 用于 **MVP 收口前的一次性全量清算**。
## ⛔ 六条硬约束(违反任一即本次验收无效)
### 1. 你是编排器,不是执行者
```
❌ 错:whole-qa 自己测、自己修
→ 测的人知道修的人怎么想,修的人知道测的人怎么测 → 互相糊弄
✅ 对:whole-qa 只做 清点 / 分发 / 汇总 / 循环控制
whole-qa(不碰代码,不碰需求)
├─ Agent(subagent_type=qa) ──► 测(只拿到断言,不知道谁会修)
└─ Agent(subagent_type=dev) ──► 修(只拿到 FAIL 清单,不知道怎么测的)
```
主控**绝不**自己写测试、自己改代码。发现自己在写 `expect(...)` 或改 `src/` 就是越界了。
### 2. 分母先锁定,再开测
INVENTORY 阶段的产物落盘后**本轮分母不可变更**。禁止中途以「这个按钮不用测」「这个接口是内部的」为由缩小分母。要改分母,只能作废本轮重新开始。
### 3. 禁止修需求
```
本 skill 及其派生的 dev subagent 对以下文件【只读,绝对禁写】:
active/prd.md active/ux.md active/api.md
修不动 → 标记 ESCALATE 交人决策
```
> 这是 AI 修 bug 时最常走的偷懒路径:改断言让测试变绿。不用规则堵死,它一定会走。
### 4. 收敛门控
```
第 N 轮 FAIL 数 必须 < 第 N-1 轮 FAIL 数
├─ 不递减 → 停止,报告「未收敛」,交人决策
├─ 出现新增 FAIL → 停止(修 A 坏 B),报告震荡点,建议回滚本轮
└─ 最多 3 轮
```
### 5. 回归门(每轮必跑)
```
每轮修完,重跑范围 = 本轮 FAIL 项 + affected 算出的真实影响面
↑ 缺这半段就会「越修越坏」而毫不知情
⭐0.10.0:影响面从「同模块已 PASS 项」升级为 codegraph affected 算出的
传递闭包 —— 同模块是人凭直觉画的圈,affected 是沿 import 图算出的事实,
跨模块的隐式依赖只有后者抓得到。
codegraph affected <本轮修改的源文件...>
非 .spec/.test 命名的测试补跑 --filter "<project.md §六 登记的 glob>"
返回空 → 报一行「未匹配到测试,本轮用全量」+ 自查三点:
① 测试代码是否被 .gitignore 屏蔽(被 ignore 则不进索引)
② 测试是否 import 被测源码(纯 HTTP 型无 import 边,追不到)
③ 命名是否