---
name: dwy-dev-qa
description: "功能开发完成后的通用质量保障流程。触发条件：完成新功能、修复 bug、重构代码后，准备提交前。"
---

# 开发完成后质量保障流程

功能开发完成后，按以下 9 步流程逐步执行。**不可跳步，不可调换顺序。**

## 流程总览

```
功能完成 → 构建验证 → 写测试 → 跑测试 → Code Review → 修复问题 → 性能优化 → 文档同步 → 集成测试 → 输出报告
```

## 第 1 步：构建验证

确认代码能编译通过，没有语法错误或类型错误。

执行项目的构建命令（查看 `package.json` scripts 或 `Makefile` 确定具体命令）。

**不通过 → 修复编译错误，不进入下一步。**

## 第 2 步：编写测试用例

为本次新增/修改的代码编写测试：

- 新组件/模块：至少覆盖核心功能、关键输入输出
- 新函数：覆盖正常输入、边界条件、异常输入
- Bug 修复：先写复现 bug 的测试用例，确认失败，再确认修复后通过
- 只测新增/修改的部分，不给未改动的代码补测试

## 第 3 步：运行测试

执行项目的测试命令，确认所有测试通过。

**有失败 → 修复代码或测试，不进入下一步。**

## 第 4 步：Code Review

审查本次所有变更（代码 + 测试），检查：

- [ ] 逻辑正确性：边界条件、竞态风险、空值处理
- [ ] 安全性：XSS、注入、硬编码凭证、敏感数据泄露
- [ ] 向后兼容：已有 API 是否被破坏（参数重命名/删除、返回值结构变更）
- [ ] 代码风格：是否符合项目规范
- [ ] 测试质量：测试是否真正验证了功能

输出 Review 问题清单。

## 第 5 步：修复 Review 问题

逐条修复第 4 步发现的问题。每修一条，跑相关测试确认无回归。

**有未修复的问题 → 不进入下一步。**

## 第 6 步：性能优化

审查本次变更的性能影响：

- [ ] 是否有不必要的重复计算或重复请求
- [ ] 是否有大数据集缺少分页、虚拟滚动或懒加载
- [ ] 是否有 N+1 查询或缺少索引
- [ ] 是否有不必要的深拷贝或大对象序列化
- [ ] 前端：是否有不必要的重渲染或未做 memo/computed 优化

发现优化点：
1. 实施优化
2. 跑测试确认无回归
3. 如果发现了通用的性能规范不在项目文档中，更新 CLAUDE.md 或 rules

## 第 7 步：文档同步

检查以下文档是否需要更新：

- [ ] **API 文档 / Skills** — 新增或修改了对外接口？更新对应文档
- [ ] **示例 / Demo** — 新增了用户可感知的功能？补充示例
- [ ] **项目 CLAUDE.md** — 模块结构、命令、架构发生变化？更新
- [ ] **导航 / 索引** — 新增了页面或模块？注册到路由和导航

如果项目有专门的文档检查 skill（如 `dwy-docs-check`），调用它自动执行。

## 第 8 步：集成测试

运行全量测试套件 + 构建验证，确认无回归。

**任何失败 → 回到第 5 步修复。**

## 第 9 步：输出报告

向用户输出以下报告，等待审查确认后才能 commit：

```
## 质量保障报告

### 变更概要
- 涉及文件：X 个
- 新增/修改行数：+X / -X

### 测试结果
- 单元测试：X 通过 / X 失败
- 集成测试：全量 X 用例通过

### Code Review
- 发现问题：X 条
- 已修复：X 条
- 遗留：0 条

### 性能优化
- 优化项：（具体优化点，或"无需优化"）

### 文档同步
- 更新了：（文件列表，或"无需更新"）

### 待用户确认
- [ ] 确认可以提交
```
