---
description: SDD 脚本门禁：必须执行 sdd-flow-kit gate/phase；docModeOnly 时禁止改 src；交付前必须 prd-coverage + ac-signed + deliver 成功
alwaysApply: true
---

# SDD 流程：脚本门禁（非自然语言）

## 文档 SSOT

| 文档 | 职责 |
|------|------|
| `01` | 业务概述（**非**完整验收） |
| `05` | **唯一验收 SSOT**（AC Matrix） |
| `04` | 技术方案（引用 AC-ID） |
| `tasks.md` | `[AC-XX]` 可执行映射 |

## 强制行为

1. 存在活跃 `openspec/PRD/<runId>/` 时，**每步**先读 `NEXT.md` 与 `.session-state.json`。
2. **必须**运行 `npx sdd-flow-kit gate ...` / `phase advance` / `propose` / `deliver`，以 **命令 exit code** 为准（0 才继续）。
3. **禁止**在未执行下列命令前修改业务代码：
   - `npx sdd-flow-kit gate --expect docs-closed`（含 `05-验收清单.md` 已定义）
   - `npx sdd-flow-kit gate --expect ac-ready --change <name>`（P0 已映射到 spec/tasks）
   - `npx sdd-flow-kit phase advance --to impl` + `gate --expect impl-allowed`（阶段 D 前）
4. **禁止**在未执行 `gate prd-coverage`、`gate ac-signed` 与 `npx sdd-flow-kit deliver` 成功前宣称需求开发完成。

## 禁止过早结束（对称于「禁止过早写代码」）

当 `executionMode=full-chain`（默认）且 `autoChainOpsx !== false`：

- **禁止**在 propose/apply/validate/deliver 未完成前结束回合
- **禁止**输出仅含「后续待办」「骨架已完成」的收尾
- 矛盾点闭合后须同一回合继续 C→D→E，直至 `deliver` exit 0
- 唯一允许暂停：gate exit≠0、prd-remediate 需人工裁定、用户说「只提案」

`executionMode=staged-confirm` 时：每阶段完成后可暂停等人确认。

## docModeOnly

当 `openspec/PRD/*/.session-state.json` 中 `docModeOnly: true`：

- **仅允许** 修改 `openspec/PRD/**`、`openspec/changes/**`（提案阶段）
- **禁止** 修改 `src/`、`e2e/`、`frontend/src/` 等
- 用户粘贴确认点后：生成 **05 → 04 → 01/02**，再 `gate docs-closed`；**不得**同回合改 ts/vue

## 自然语言触发（ADI / OMS / BreakX 等）

用户说「开发/进行 ADI 2.3.2 版本」「ADI_2.3.2」等时：

1. **先** 在终端执行：`npx sdd-flow-kit invoke "开发 ADI 2.3.2 需求" -y`
2. 打开 `openspec/PRD/<runId>/NEXT.md`，**禁止**直接改 `src/`

## 用户确认点（无需口令）

1. 更新 `03` → 从 `source/PRD.md` 生成 `05` → `04` → `01`/`02`
2. 执行：
   ```bash
   npx sdd-flow-kit gate --project-root <repo> --run-id <runId> --expect docs-closed
   npx sdd-flow-kit phase advance --project-root <repo> --run-id <runId> --to docs-done
   ```
3. 失败则停止，不得进入 propose/实现

## 提案 / 实现 / 签收 / 交付

```bash
npx sdd-flow-kit propose --project-root <repo> --run-id <runId> --change <name>
# … AI 生成 openspec artifacts；tasks.md 须含 [AC-XX] …
npx sdd-flow-kit propose-remediate --project-root <repo> --run-id <runId> --change <name>
# 演示/原型 1:1 审查 + 自动修复 → 10-提案演示审查报告.md
npx sdd-flow-kit phase advance --project-root <repo> --run-id <runId> --to propose-done --change <name>
npx sdd-flow-kit phase advance --project-root <repo> --run-id <runId> --to impl --change <name>
# Apply 前必读 source/PRD.md + 05-验收清单.md
# … 实现 …
npx sdd-flow-kit prd-review --project-root <repo> --run-id <runId>
# AI 执行 08-PRD一致性复查提示词.md（最细粒度，禁止揣摩）
npx sdd-flow-kit prd-diff --project-root <repo> --run-id <runId>
npx sdd-flow-kit gate --project-root <repo> --run-id <runId> --expect prd-coverage
npx sdd-flow-kit validate --project-root <repo> --run-id <runId> --change <name>
# 05 签收：P0 已验收 + 签收状态已签收
npx sdd-flow-kit gate --project-root <repo> --run-id <runId> --expect ac-signed
npx sdd-flow-kit deliver --project-root <repo> --run-id <runId> --change <name>
npx sdd-flow-kit phase advance --project-root <repo> --run-id <runId> --to shipped --change <name>
# 或机械串联（AI 步骤完成后）：
npx sdd-flow-kit chain --project-root <repo> --run-id <runId> --change <name> --from docs-done
```

## 分层测试（L1–L4）

见 `.cursor/skills/sdd-flow-kit/LAYERED-TESTING.md`（由 sdd-flow-kit 安装）。
