# 质量门禁统一视图

> 活动开发流程的 4 个强制质量门禁。每个门禁必须在对应 Step 完成**之前**通过，失败项必须修复后再继续。主 SKILL.md 与各 step 文件均引用本表。

## 门禁总览

| # | 触发时机 | 门禁名 | 检查项 | 失败处理 | 权威文件 |
|---|---|---|---|---|---|
| **G1** | Step 1 摘要输出后、进入 Step 2 前 | **需求完整性 + 歧义阻塞** | §F 缺失项清单为空；§G 歧义点全部经用户确认 | 逐项追问用户补充 / 确认；**阻塞下一步**，禁止推断 | `steps/step1-analyze.md` §F/§G + `checklists/step1-*.md` |
| **G2** | Step 5 activity_info.json 每次生成 / 修改后 | **配置校验** | `validate_activity_info.py` 全通过：禁止 key / reward_type 合法性 / TBD 检查 / lottery 结构 / exchange_store 必填 / collect_chip 完整性 / big_pack 注册等 9 大类 | 修复违规项后重跑，直到 0 错误才能 weconfig-cli save | `examples/validate_activity_info.py` |
| **G3** | Step 7 **每个 service 接口填充完立即**（骨架阶段以 `go build` 通过为阶段门禁）| **编码规范自查** | Phase 1（`check.sh` 一键扫描）+ Phase 2（逐文件手动审核）**全部执行** | 有发现项立即修复；不得只跑 Phase 1；不得等整个文件 / 模块写完再统一跑 | `bash .claude/skills/coding-style/check.sh <活动模块路径>` + `coding-style/SKILL.md` 末尾 Phase 2 表格 |
| **G4** | Step 11 测试完成后 | **覆盖率门禁** | 单元测试覆盖率 ≥ 90%；mockey + goconvey 双重 | 补测试到达标；覆盖率 90%-100% 之间可接受，<90% 必须加测 | `skills/testing-style/SKILL.md` |

## 快速指令速查

**G1 通过判定**：摘要 §F 和 §G 为空或用户逐项回复"确认"。

**G2 调用**：
```bash
python3 .claude/skills/activity-design/examples/validate_activity_info.py {module}/activity_info.json
```

**G3 调用**（两步，缺一不可）：
```bash
# Phase 1 一键扫描（权威脚本定义在 coding-style/SKILL.md）
bash .claude/skills/coding-style/check.sh <活动模块路径>
```
随后按 `coding-style/SKILL.md` 末尾 Phase 2 表格逐文件手动核查。**不得**用本技能内任何脚本替代。

**G4 调用**：
```bash
cd {module} && go test ./... -cover
```

## 通用规则

1. **门禁不可跳过**：即使用户指示"一次性做完"，仍必须按门禁停顿确认。
2. **失败项优先修复**：G1-G4 任一失败都不得进入下一步。
3. **门禁外还有 Step 强制停顿**：每个 step 结束的 `⚠️ 强制停顿` 是流程级停顿（等用户确认），与门禁的内容级检查并行存在，两者都要执行。
