Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/weiyi88/cc-code/whole-qanpx skills add weiyi88/cc-code --skill whole-qagit clone --depth 1 https://github.com/weiyi88/cc-codeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/weiyi88/cc-code/whole-qa)<a href="https://agentmods.dev/skills/weiyi88/cc-code/whole-qa"><img src="https://agentmods.dev/badge/skills/weiyi88/cc-code/whole-qa.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00121 | $0.04854 |
| Opus 5 | $0.00060 | $0.02427 |
| Sonnet 5 | $0.00024 | $0.00971 |
| Haiku 4.5 | $0.00012 | $0.00485 |
Grade A, and why
whole-qa scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 291 lines — stays where its author put it; the contents beside it link to each section on GitHub.
whole-qa — 全量验收 + 修复闭环编排器
手动触发:仅由用户显式输入
/cc-code:whole-qa调用。 与qaagent 的关系: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 边,追不到)
③ 命名是否需 --filter
CLI 未装 → 静默退回「同模块已 PASS 项」,不报
6. 禁止静默截断
未测的元素/接口/断言,必须逐条列入 SKIPPED 并给原因。同构重复元素若做了组内抽样,必须写明「同构组 N 个,实测 M 个」—— 报告里出现「全部覆盖」而分母被悄悄缩小,是最严重的失职。
生命周期总览
┌ ⓿ PREFLIGHT 前置检查 ──────────────────────────────────────────┐
│ .cc_code/ 存在 · prd.md 有模块清单与验收断言 · 应用能起来 │
└───────────────────────┬────────────────────────────────────────┘
▼
┌ ❶ INVENTORY 清点(主控,只做一次,落盘即锁死分母)─────────────┐
│ 路由发现 → 页面 P[] │
│ ux.md §2.4 声明 ∪ 逐页 DOM snapshot → 元素 E[] ⭐取并集,差集必报│
│ 接口发现 → 接口 A[] │
│ prd.md §1.5 主表 → 断言 ASSERT[] │
│ ux.md §2.3 U编号矩阵 → 五态判定项 USTATE[] │
│ 按 prd.md 模块清单分组 → 模块 M[] │
│ codegraph 扫冗余 → DEAD/ORPHAN/DUP[] │
│ ↓ 落盘 .cc_code/docs/qa/<日期>-inventory.md │
└───────────────────────┬────────────────────────────────────────┘
▼
┌ ❷ FAN-OUT 分模块并发(每模块 1 个 qa subagent,独立上下文)────┐
│ 模块 M1 ──► 逐元素点击 + 五态断言 + 截图 + console 捕获 │
│ 模块 M2 ──► 同上 (并发,单消息多 Agent) │
│ 接口批 ──► 每接口 5 类断言 │
│ 每个只回 {断言ID, verdict, 证据, 复现步骤} │
└───────────────────────┬────────────────────────────────────────┘
▼
┌ ❸ REDUCE 汇总(主控)────────────────────────────────────────┐
│ 四个分母各算覆盖率:A断言 / U五态 / 元素 / 接口 │
│ SKIPPED 逐条列明原因 │
│ ↓ 落盘 docs/qa/<日期>-round-N.md │
│ ↓ gates.md 就地更新矩阵对应行 ⛔禁新开轮次章节 │
└───────────────────────┬────────────────────────────────────────┘
▼
┌─ 全 PASS ─► ❺ 收口
│
└─ 有 FAIL ─┐
▼
┌ ❹ FIX 轮(dev subagent,独立上下文)──────────────────────────┐
│ 输入:FAIL 清单原文(不含测法细节,防针对性糊弄) │
│ 禁写:prd.md / ux.md / api.md │
│ 修不动 → ESCALATE │
│ ↓ 回归门:重跑 FAIL + 同模块已 PASS │
│ ↓ 收敛检查(约束 4)→ 通过则回 ❸,否则停止交人 │
└────────────────────────────────────────────────────────────────┘
▼
┌ ❺ 收口 ──────────────────────────────────────────────────────┐
│ gates.md 矩阵定稿 · 归档索引+1行 · status.md 记里程碑 │
└────────────────────────────────────────────────────────────────┘
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 291 lines · 121 tokens per session scan A 06f48cf4cb9d
whole-qa is a skill published in the GitHub repository weiyi88/cc-code (5 stars, last pushed 8d ago), licensed MIT. It adds 121 tokens to every session and 4,854 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
state-machine
Task lifecycle state transitions with validation gates. Defines states, triggers, and required proofs.
skill-creator
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
mutation-testing
Mutation testing patterns for verifying test effectiveness. Use when analyzing branch code to find weak or missing tests.
planning
Planning work in small, known-good increments. Use when starting significant work or breaking down complex tasks.
testing
Testing patterns for behavior-driven tests. Use when writing tests or test factories.
davinci-define
Apply the 7 Da Vincian Principles to define problems, set direction, and reflect on life choices. Use for career decisions, goal setting, life planning, or when you need to clarify what the real question is before solving it.