devlab-web-deep-acceptancelisted
Install: claude install-skill seed-forge/harness-ai-kit
# devlab-web-deep-acceptance — 存量系统深度功能验收
## Purpose
对一个**已经存在、功能繁多、质量未知**的 Web 系统做"每个页面、每个按钮、每个接口贯通"的深度验收,
并沉淀**可重放的回归资产**(功能点 registry + 用例文件 + 报告 + 全局 dashboard)。
与 `devlab-web-test-e2e` 的分工:绿field 新项目用例从零生成走前者;存量系统"先盘点登记再分级深测"
走本技能。两者可先后衔接(先用本技能验收存量,新增功能走前者增量生成)。
**实证规模**:本方法论在某 30+ 模块微前端系统落地,登记 689 功能点(pass 64%/blocked 28%),
实战陷阱 72 条全量收录于 `references/REFERENCE-PITFALLS.md`(执行遇阻先查它)。
## 适用条件
- 被测系统有浏览器 UI + 后端 HTTP API(SPA / 微前端 / 传统 MPA 均可);
- 可拿到前端源码(盘点要逐按钮读视图代码)与后端数据访问通道(直连 DB 或只读查询代理);
- 执行环境可跑 Node ≥ 18 + Playwright(Chromium);
- 允许在测试库造数(写操作前缀隔离,如 `AUTOTEST_`)。
## 核心设计(为什么是这套结构)
1. **registry 是唯一事实源**:功能点状态(todo/pass/fail/blocked)+ 根因 reason + 执行注注释全部登记在
`registry/<module>.yaml`,执行器回写、报告生成、dashboard 聚合都从它出发。权威信息绝不写在
会被覆盖的生成物(SUMMARY)里。
2. **唯一入口七模式**:`node run.js <module> [--dry-run|--precheck|--seed|--case|--all|--audit|--cleanup]`,
新增模块零改执行器——只加 registry + cases。
3. **HTTP 200 ≠ 业务成功**:后端代理吞异常返 200+空/null 是存量系统最常见假成功,框架内置
响应体六态分诊与假成功嗅探(只观测不改判定,由用例结合语义判读)。
4. **探索一次即固化**:每个 pass/fail 功能点必须有 `.case.js` 可重放,收尾 `--audit` 三对齐审计
(status × 用例文件 × 报告)防"探索后漏固化"静默混过。
5. **blocked 是一等公民**:不可修问题不判 fail,走五分类根因 + pending-issues 闭环,registry 标
blocked 写清解锁条件,释放执行流继续推进。
## 目录结构规范
```
test/e2e/
├── run.js # 唯一入口执行器(scripts/ 拷贝)
├── e2e.config.js # 环境配置(baseUrl/凭据/API 前缀/DB 通道/豁免表)
├── registry/
│ ├── modules.yaml # 模块总账(多会话认领制)
│ └── <module>.yaml # 功能点唯一事实源
├── cases/<module>/<feature-id>.case.js