qa-close-verifylisted
Install: claude install-skill pcliangx/AppGenesisForge
# P0/P1 Issue Close Verify SOP
> **版本**: v1.0 — 2026-05-17
> **触发教训**: Issue #37 Premature Close — `dc512fa` 修复代码 commit 后立即 close,但容器未重建,fix 未上线;实际由 #39 hot-fix fe9ab58 + 容器重建 + `curl 实证(cost ¥301.76 → HTTP 422 + 中文 detail)`才完成验收。
> **合规样本**: 合规 close comment 含完整 curl 命令 + response body(样本源自 RolexOps 实战,不随模板分发;§3 模板据此提炼)。
---
## 适用范围
| 严重度 | Close 前必须本 SOP | 备注 |
|---|---|---|
| **P0** | ✅ 必须 | 所有步骤 |
| **P1** | ✅ 必须 | 所有步骤 |
| P2 | ⚠️ 建议 | 至少完成 §2 Evidence 要求 |
| P3 / chore | — | 不适用 |
---
## §1 Close 前 Checklist(Close-Gate)
关闭 P0/P1 issue 前**发起方必须逐条打勾**;code-reviewer review 时可拦截任一未勾项。
### 1.1 修复验证
- [ ] **代码路径确认**:定位引发 bug 的具体文件 + 行号,确认 fix 已覆盖该路径
- [ ] **AC 边界触发**:用 **真实 curl / pytest / Playwright** 命令**实际触发**原 bug 的 AC 边界条件(不接受"读代码逻辑判断已修复")
- [ ] **Response body 可见**:命令输出含完整 HTTP 状态码 + response body(或 DB row / log line),敏感字段可打码但结构必须完整
### 1.2 容器化部署专项(使用 docker compose 时必做)
> **教训 #37**:代码 commit 后未重建容器,旧镜像仍在运行,close 时 fix 实际未上线。
- [ ] **容器重建**:fix commit 后执行 `docker compose up --build -d <service>` 或等价命令(不接受仅 `docker compose restart`,重启不重建镜像)
- [ ] **重建后 curl 实证**:**重建完成后**再次执行边界验证命令,output 中时间戳或 response 差异可证明是新镜像响应
- [ ] **旧容器无遗留**:`docker compose ps` 确认相关 service `Up` 而非 `Restarting` 或 `Exit`
### 1.3 回归验证
- [ ] **同模块邻近 AC 未退化**:至少跑一条同文件 / 同模块的 SIT case,确认 fix 无 side effect
- [ ] **关联 issue 无连带**:检查关联 issue(issue body 里的 Related / Blocked by),确认不受本次 fix 影响
### 1.4 文档同步
- [ ] **Close comment 含 Evidence**:按 §3 模板写 close comment,不允许只写"已修复,见 commit XXXXXX"