# 03-待确认问题清单 结构门禁（doc03-structure）

> 接入点：`gate --expect questions-open`（Step2 提问模式出口）  
> 基准样例：`src/tests/fixtures/doc03-golden-adi-v234.md`（ADI V2.3.4 / runId 20260717-ADI-2.3.4）  
> 跳过：`OPSX_SKIP_DOC03_QUALITY=1`（须说明原因）

## 目的

防止 Step2 产出「Q1–Q10 简表」等浅层 03，确保每次待确认清单达到可闭合矛盾点池的深度（PRD ↔ 代码 ↔ 前端专项）。

## 检查项（机械）

| 检查名 | 规则 | 失败含义 |
|--------|------|----------|
| `questions-open` | `矛盾点池状态：未闭合` | 不应进入交付模式或已误标闭合 |
| `doc03-structure` | 见下表 | 03 深度/结构不达标 |

### doc03-structure 规则清单

#### A. 文档形态

| # | 规则 | 说明 |
|---|------|------|
| A1 | 禁止简表版 | 不得仅用 `\| Q1 \|` / `\| 问题类型 \|` 表；须五章段落结构 |
| A2 | 禁止模板占位 | 不得含 `[分类名称]`、`X 个（断点 N1）` 等 |
| A3 | 提问模式标注 | 须含 `矛盾点池状态：未闭合` |
| A4 | 最低行数 | ≥ **90** 行（基准样例约 297 行；<150 行仅 warning） |

#### B. 必备章节（`##` 一级）

| # | 章节 |
|---|------|
| B1 | 一、断点（Breakpoint） |
| B2 | 二、起点缺失（Missing Starting Point） |
| B3 | 三、推测缺口（Speculative Gap） |
| B4 | 四、前端专项问题 |
| B5 | 五、知识库缺口 |
| B6 | 六、总结 |
| B7 | 七、下一步行动 |

#### C. 前端专项强制子节（`###`）

须齐全：**4.1** 页面结构与路由 · **4.2** 交互流程与状态反馈 · **4.3** 列表页改造 · **4.4** 表单设计与校验 · **4.5** 组件复用 · **4.6** 状态同步与数据标识

#### D. 子节数量

| # | 规则 |
|---|------|
| D1 | 一～五章 `###` 子节合计 ≥ **8** |
| D2 | 一、断点 ≥ **1** 个 `### 1.x` |
| D3 | 二、起点缺失 ≥ **1** 个 `### 2.x` |
| D4 | 三、推测缺口 ≥ **1** 个 `### 3.x` |

#### E. 字段格式（段落四件套）

| 章节 | 每个 `###` 子节必填 |
|------|---------------------|
| 一、断点 | **问题**、**需要确认**；全章至少 1 处 **代码位置** |
| 二、起点缺失 | **问题**、**需要确认** |
| 三、推测缺口 | **假设**、**需要确认** |
| 五、知识库 | **需要** |

#### F. 代码扫描证据

| # | 规则 |
|---|------|
| F1 | 全文 `src/`、`.vue`、`.ts`、`.java`、`layout.config` 等路径引用 ≥ **2** 处 |

#### G. 待确认条目规模

| # | 规则 |
|---|------|
| G1 | 总结章之前的编号列表（`1. …`）≥ **6** 条 |

#### H. 总结章（P0/P1/P2）

| # | 规则 |
|---|------|
| H1 | 含「矛盾点数量」 |
| H2 | 含 **P0（必须闭合才能继续）** 列表 |
| H3 | 含 **P1（影响技术方案设计）** 列表 |
| H4 | 含 **P2（可边做边调整）** 列表 |

## 与 Step2 提示词的关系

`02-sdd-loop-prompt.md` 已要求 AI 按同结构产出；本门禁为 **机械兜底**，不替代 Agent 扫描 PRD/前后端代码。

## 自动修复

`gate --expect questions-open --auto-remediate` 失败时会触发 `doc03-structure` 修复提示（见 `gateAutoRemediate.ts`）。

## 实现

- 核心：`src/core/doc03Quality.ts` → `checkDoc03Structure()`
- 测试：`src/tests/doc03Quality.test.ts` + `src/tests/fixtures/doc03-golden-adi-v234.md`
