# prd-master / design-master / tdd-master 升级说明(维护者版)
> 日期:2026-07-11
> 设计参考:[Kiro Specs](https://kiro.dev/docs/specs/) 的 `requirements.md → design.md → tasks.md` 三阶段结构
> 适用对象:prd-master、design-master、tdd-master 的维护者与下游 Coding Agent 工作流维护者
## 1. 执行摘要
本次升级没有把现有三段链路简单改造成 Kiro 的复制品,而是保留原链路的优势,并补上 Kiro 最强的三件事:机器可解析需求、端到端追溯和可执行任务图。
原链路更接近:
```text
产品决策 → 全套设计 → 证明做对
```
升级后变为:
```text
产品决策
→ 稳定需求契约
→ 可追溯设计
→ 分层测试与验收门禁
→ 开发任务 DAG
→ 按 wave 执行并记录 fresh verification
```
本次共涉及 **23 个文件**:
- 修改既有文件:11 个
- 新增文件:12 个
- prd-master:8 个
- design-master:7 个
- tdd-master:8 个
## 2. 六项改造总览
| # | 改造项 | 落地结果 | 主要归属 |
| :--- | :--- | :--- | :--- |
| 1 | 稳定 ID 与全链路追溯 | `SOURCE → DESIGN → TEST → TASK` 全程使用稳定 ID;发布后不重排复用 | 三个 master |
| 2 | 开发任务 DAG | 新增 `开发任务图.md + task-state.json`,含依赖、wave、required/optional、状态和 fresh evidence | tdd-master |
| 3 | EARS 机器需求契约 | PRD 之外新增 `requirements.md`,使用 `WHEN … THE SYSTEM SHALL …` | prd-master |
| 4 | 跨需求正确性分析 | 新增冲突、歧义、未声明假设、边界、并发和不可验证指标闸门 | prd-master |
| 5 | 三档流程 | 新增 `standard / quick / tech-constrained`,模式只改变交互与研究深度,不降低契约门槛 | 三个 master |
| 6 | Bugfix 专用链路 | 新增 `REPRO/CUR/EXP/UNCH/CON` 行为链,贯通修复设计、回归测试与任务 DAG | 三个 master |
## 3. 升级后的总体契约
### 3.1 Feature 链路
```mermaid
flowchart LR
A["prd-master
PRD详细版.md"] --> B["requirements.md
REQ / AC / NFR + EARS"]
B --> C["requirements-analysis.md
P0/P1 清零"]
C --> D["design-master
页面 / API / 数据 / 时序 / 技术方案"]
D --> E["设计追溯矩阵.md"]
E --> F["tdd-master
分层 TDD + GOAL 契约"]
F --> G["全链路追溯矩阵.md"]
G --> H["开发任务图.md
DAG + wave"]
H --> I["task-state.json
状态 + SHA-256 + evidence"]
```
### 3.2 Bugfix 链路
```mermaid
flowchart LR
A["bugfix.md
REPRO / CUR / EXP / UNCH / CON"] --> B["修复设计.md
根因证据 + 最小修复面 + 回滚"]
B --> C["设计追溯矩阵.md"]
C --> D["复现 / 修复 / 不变行为 / 约束测试"]
D --> E["Bugfix 任务 DAG"]
E --> F["required 完成 + P0/P1 全绿"]
```
## 4. 稳定 ID 规则
### 4.1 需求层
| 对象 | 格式 | 示例 |
| :--- | :--- | :--- |
| 功能 | `Fnn` | `F03` |
| 用户故事 | `US-Fnn-nn` | `US-F03-01` |
| 行为需求 | `REQ-Fnn-nn` | `REQ-F03-02` |
| 验收条件 | `AC-Fnn-nn` | `AC-F03-04` |
| 非功能需求 | `NFR-nnn` | `NFR-006` |
| 假设 | `A-nnn` | `A-014` |
### 4.2 设计层
| 对象 | 格式 | 示例 |
| :--- | :--- | :--- |
| 页面 | `PAGE-Fnn-nn` | `PAGE-F03-01` |
| 组件 | `CMP-Fnn-nn` | `CMP-F03-04` |
| 接口 | `API-Fnn-nn` | `API-F03-02` |
| 数据实体 | `DATA-Fnn-nn` | `DATA-F03-01` |
| 时序/流程 | `SEQ-Fnn-nn` | `SEQ-F03-01` |
| 设计决策 | `DEC-nnn` | `DEC-008` |
| Bugfix 修复点 | `FIX-BUG-nnn` | `FIX-BUG-001` |
### 4.3 测试与任务层
- 测试沿用分层前缀:`U/C/I/E/S/B/A/P`。
- Bugfix 测试增加:`BR` 复现、`BF` 修复、`BG` 回归、`BP` 性质测试。
- Feature 任务:`TASK-Fnn-nn`。
- Bugfix 任务:`TASK-BUG-nnn-nn`。
共同规则:ID 一经发布不得重编号或复用;删除项保留并标 `retired`;语义变化递增 revision;拆分后旧 ID retired,新 ID 写 `supersedes`。
## 5. prd-master 详细变更
### 5.1 核心行为变化
1. 版本说明从 v0.3 升级到 v0.4。
2. 启动时先判断 `work_type=feature|bugfix`。
3. Feature 再选择:
- `standard`:保留完整七阶段和逐阶段确认。
- `quick`:阻塞问题前置,确认总蓝图后连续生成;若发现 P0/P1 自动回 standard。
- `tech-constrained`:先固化硬 NFR、既有架构和禁改面,做可行性证据,再锁需求。
4. PRD 定稿后新增 `requirements.md`:稳定 ID + EARS 行为契约。
5. 新增 `requirements-analysis.md`:检查完整需求集合,而非只逐条审稿。
6. 正确性闸门要求 `P0 unresolved: 0` 且 `P1 unresolved: 0` 才能进入 design-master。
7. 新增 Bugfix 专用流程;不再让复杂缺陷走价值论证、竞品调研、方案辩论和 PPT。
8. `state.json` 新增:`work_type`、`workflow_mode`、`contract_revision`、`source_ids_changed` 和新的 deliverable 字段。
### 5.2 新增 Feature 产物
```text
output/
├── PRD详细版.md
├── requirements.md
├── requirements-analysis.md
├── PRD-summary.md
├── PRD-dev.md
└── ppt/...
```
### 5.3 Bugfix 产物
`output/bugfix.md` 至少包含:
- `BUG`:缺陷摘要
- `REPRO`:最小复现与证据
- `CUR`:当前错误行为
- `EXP`:预期正确行为
- `UNCH`:必须保持不变的行为
- `CON`:接口、数据、兼容性、安全或性能约束
prd-master 在 Bugfix 阶段不声明根因;根因必须由 design-master 基于代码、日志或运行证据分析。
### 5.4 跨需求分析的六类检查
1. 逻辑不一致
2. 含糊量词
3. 功能/NFR/安全/合规约束冲突
4. 未声明角色、实体、状态或外部系统假设
5. 缺失失败、边界、并发、幂等、重试和恢复路径
6. 没有阈值、单位、采样方式或时间窗的不可验证指标
### 5.5 prd-master 文件清单
| 类型 | 文件 | 变化 |
| :--- | :--- | :--- |
| 修改 | `SKILL.md` | 554 → 615 行;加入模式、需求契约、正确性分析和 Bugfix 路由 |
| 修改 | `docs/STATE-MANAGEMENT.md` | 180 → 192 行;加入 work_type/mode/revision/source impact |
| 新增 | `references/需求契约与模式路由.md` | 三档模式、稳定 ID、EARS、分析和增量同步 |
| 新增 | `references/Bugfix专用链路.md` | Bugfix 行为三分法和升级 Feature 条件 |
| 新增 | `templates/requirements.md` | Feature 机器需求模板 |
| 新增 | `templates/requirements-analysis.md` | 正确性分析模板 |
| 新增 | `templates/bugfix.md` | Bugfix 行为契约模板 |
| 新增 | `validators/check_requirements_contract.py` | 校验 REQ/AC Parent、EARS、Bugfix 必备项和分析清零 |
## 6. design-master 详细变更
### 6.1 输入契约变化
Feature 从只读 `PRD详细版.md` 改为读取:
```text
PRD详细版.md + requirements.md + requirements-analysis.md
```
Bugfix 改为读取:
```text
bugfix.md
```
如果 PRD 与 requirements 冲突,必须停止并回上游修订,不能由设计阶段任选一份继续。
### 6.2 新增输出
- `设计追溯矩阵.md`:每个 active source ID 映射到页面、组件、API、数据、时序、设计决策和真实文件。
- `change-impact.md`:上游 revision 变化时列出受影响设计 ID、文件、动作和 stale 状态。
- Bugfix:`修复设计.md`,包含根因证据、最小变更面、UNCH/CON 保护、风险、发布和回滚。
### 6.3 页面清单与页面模板变化
页面清单由 4 列改为 6 列:
```text
页面 ID | Source IDs | 所属阶段 | 功能模块 | 页面名称 | 功能范围描述
```
页面模板的元信息新增:
- `页面 ID`
- `Source IDs`
没有直接需求来源但设计上必要的门禁、异常或合规页面,必须写 `design-derived: DEC-nnn`;不得伪造 REQ/AC。
### 6.4 设计覆盖闸
- 每条 active REQ/AC/NFR 必须有矩阵行。
- `Design IDs / Artifact / Error or Invariant / Verification Surface` 不得为空或 TBD。
- 关键跨组件流程必须有 sequence diagram 或等价时序描述。
- 状态型实体必须定义合法、非法和并发迁移。
- 交付时不得存在 `missing / TBD / stale`。
### 6.5 Bugfix 设计纪律
- fresh reproduction 失败前,不声称根因已确认。
- 区分根因、诱因和表象。
- 只改变恢复 EXP 所需的最小设计面。
- 每个 UNCH/CON 必须有保护设计和验证面。
- 默认不重做 tokens、设计系统展示页或无关页面。
### 6.6 design-master 文件清单
| 类型 | 文件 | 变化 |
| :--- | :--- | :--- |
| 修改 | `SKILL.md` | 262 → 295 行;加入 requirements、追溯、增量和 Bugfix |
| 修改 | `references/页面清单规划师.md` | 页面清单升级为 6 列并加入稳定 ID |
| 修改 | `references/页面文档撰写师.md` | 强制从 Source IDs 定位需求,不再只靠关键词 |
| 修改 | `references/页面模板.md` | 元信息新增页面 ID 和 Source IDs |
| 新增 | `references/追溯与增量同步规范.md` | 设计 ID、矩阵、覆盖闸、revision/stale |
| 新增 | `references/Bugfix设计规范.md` | 根因证据、最小修复、风险和回滚 |
| 新增 | `validators/check_traceability.py` | 校验每个 active source 的设计覆盖 |
## 7. tdd-master 详细变更
### 7.1 职责变化
tdd-master 从“只定义测试终点”扩展为:
```text
测试终点(GOAL) + 执行路径(任务 DAG)
```
仍然不写生产代码;新增的是给 Coding Agent 消费的交付计划契约。
### 7.2 新增输出
```text
output/
├── 全链路追溯矩阵.md
├── 开发任务图.md
├── task-state.json
└── tests/
├── 验收门禁与GOAL契约.md
├── 测试索引.md
└── 各层 TDD 文档
```
### 7.3 开发任务图固定字段
```text
ID | Outcome | Source IDs | Design IDs | Test IDs |
Depends On | Wave | Class | Done When | Status
```
规则:
- 任务必须按可独立验收的纵向行为切片,不能按“全部前端/全部后端/全部测试”水平切层。
- `Class=required|optional`。
- `Status=pending|in_progress|blocked|completed|stale`。
- 无依赖任务进入 Wave 1;后续任务 wave 必须晚于全部依赖。
- required 任务不能依赖 optional 任务。
- P0/P1 测试必须至少映射到一个 required 任务。
- Done When 必须包含 RED、GREEN、回退复红和回归证据。
### 7.4 task-state.json
新增字段:
- `schema_version`
- `work_type`
- `active_contract=requirements.md|bugfix.md`
- `source_hashes`
- 每个任务的状态、wave、required、source/design/test IDs、验证时间和 evidence
允许同一产品目录保留 Feature 与 Bugfix 历史契约,但同一轮只能激活一个 `active_contract`。
### 7.5 完成定义变化
旧定义:
```text
全部 P0/P1 测试转绿 = 交付
```
新定义:
```text
全部 required 任务 completed
+ 全部 P0/P1 测试转绿
+ 覆盖率/变异测试达到门槛
+ 安全层特例满足
= 交付
```
任务标 completed 必须带本次 RED/GREEN/回归命令、退出码和时间;只改 Markdown/JSON 状态不算完成。
### 7.6 Bugfix 测试要求
- `BR`:复现测试,当前实现必须按缺陷原因稳定 RED。
- `BF`:修复行为,修复后 GREEN,回退修复必须复红。
- `BG`:UNCH 和约束回归。
- `BP`:输入空间、解析、状态或并发复杂时可加入性质测试。
Bugfix 不默认全 8 层;先强制覆盖复现、修复、不变行为和约束,再根据真实影响面补相应层。
### 7.7 tdd-master 文件清单
| 类型 | 文件 | 变化 |
| :--- | :--- | :--- |
| 修改 | `SKILL.md` | 250 → 296 行;加入 source/design 输入、任务 DAG、Bugfix |
| 修改 | `references/TDD模板.md` | 每条测试从三件套升级为四件套 |
| 修改 | `references/测试单元设计师.md` | 强制 Source IDs + Design IDs + 真实产物 |
| 修改 | `references/验收门禁与GOAL契约规范.md` | GOAL 加入 required 任务闸 |
| 修改 | `references/执行纪律.md` | completed 也必须有 fresh evidence |
| 新增 | `references/开发任务图规范.md` | 任务切分、DAG、wave、状态、指纹和追溯 |
| 新增 | `references/Bugfix测试与修复规范.md` | 复现/修复/回归/性质测试规则 |
| 新增 | `validators/check_delivery_contract.py` | 校验追溯、任务、依赖、wave、状态和 SHA-256 |
## 8. 增量同步协议
当 source revision 或文件 SHA-256 改变时:
1. 从变更 source ID 出发。
2. 沿设计、测试和任务依赖求影响闭包。
3. 只把受影响项标 `stale`。
4. 未受影响 ID、决策和状态保持不变。
5. stale 项重新生成、评审并通过 fresh regression 后,才能恢复 `covered/completed`。
禁止直接覆盖新 hash 后继续沿用旧 completed 状态。
## 9. 兼容性与迁移说明
### 9.1 旧 Feature 项目
- design-master 对缺少 `requirements.md` 的旧项目允许从 PRD 派生一次。
- 派生后必须通过 prd-master 的需求契约校验,才可继续设计。
- 推荐维护者批量迁移旧项目,而不是长期依赖兼容分支。
### 9.2 页面清单消费者
页面清单从 4 列变为 6 列,是一个需要关注的格式变化。所有消费者应按表头名称读取,不应依赖固定列序号。现有“页面文档撰写师”已同步更新。
### 9.3 TDD 入口
新版 tdd-master 要求 `设计追溯矩阵.md`。旧项目若没有该文件,应先补跑 design-master 的覆盖矩阵步骤。
### 9.4 完成状态
旧的“P0/P1 全绿”不再单独等于交付。下游 Coding Agent 需要同步支持 `开发任务图.md + task-state.json`。
## 10. 主要失败模式与缓解
| 失败模式 | 后果 | 缓解 |
| :--- | :--- | :--- |
| 产物增多后互相失同步 | 设计/测试实现的是旧需求 | 稳定 ID、revision、SHA-256、stale 闭包 |
| quick 被理解为降低质量 | 快速模式漏掉高风险要求 | quick 只减少审批/研究,不取消契约和正确性闸 |
| 任务图按技术层切分 | Coding Agent 无法独立交付价值 | 强制纵向行为切片;测试在任务内先 RED |
| 只修改 completed 状态 | 假完成、无法审计 | fresh verification evidence + Markdown/JSON 一致性 |
| Bugfix 顺手扩成新功能 | 修复范围膨胀、回归不可控 | EXP/UNCH/CON 固定;需新增能力时另开 Feature |
| 全量重生所有产物 | 丢失确认历史、成本失控 | 只重生影响闭包,未受影响项保持不变 |
## 11. 已完成的验证
本地已完成:
- 237 项结构、引用、UTF-8 无 BOM 和能力落点检查通过。
- Feature 样例:`3 source → 3 tests → 2 DAG tasks` 通过。
- Bugfix 样例:`5 source → 4 tests → 2 DAG tasks` 通过。
- 安装后的 23 个目标文件与验证副本 SHA-256 全部一致。
- 安装前版本已完整备份。
## 12. 尚需维护者执行的原生验证
当前执行环境没有可用 Python 解释器,因此以下 Python 文件已完成结构与等价契约验证,但**没有在本机原生执行**:
- `check_requirements_contract.py`
- `check_traceability.py`
- `check_delivery_contract.py`
- skill-creator 的 `quick_validate.py`
维护者应在有 Python 的环境运行:
```bash
python /path/to/skill-creator/scripts/quick_validate.py /path/to/prd-master
python /path/to/skill-creator/scripts/quick_validate.py /path/to/design-master
python /path/to/skill-creator/scripts/quick_validate.py /path/to/tdd-master
python prd-master/validators/check_requirements_contract.py \
project/output/requirements.md \
project/output/requirements-analysis.md
python design-master/validators/check_traceability.py \
project/output/requirements.md \
project/output/设计追溯矩阵.md
python tdd-master/validators/check_delivery_contract.py \
project/output
```
Bugfix 的第一个 validator 参数改为 `project/output/bugfix.md`。
## 13. 维护者建议复核清单
- [ ] 确认三档模式与团队实际成本模型一致。
- [ ] 确认稳定 ID 命名不会与现有项目编号冲突。
- [ ] 确认所有页面清单消费者支持 6 列格式。
- [ ] 确认 Coding Agent 能读取开发任务图并按 wave 执行。
- [ ] 确认 task-state.json 的 evidence 结构满足团队审计要求。
- [ ] 用真实复杂 Feature 做一次 standard forward test。
- [ ] 用成熟小功能做一次 quick forward test。
- [ ] 用严格延迟/合规项目做一次 tech-constrained forward test。
- [ ] 用历史上发生过回归的缺陷做一次 Bugfix forward test。
- [ ] 验证上游 revision 改变后,只把影响闭包标 stale。
- [ ] 在 CI 中加入三个新增 validator。
## 14. 已知技术债
1. `prd-master/SKILL.md` 从 554 行增至 615 行,超过 skill-creator 建议的 500 行。后续建议把阶段 5/6 的详细执行协议继续下沉到 references,主文件只保留路由和硬门禁。
2. 三个 skill 当前没有统一的 JSON Schema 文件;`task-state.json` 由 Markdown 规范和 Python validator 共同约束。维护者如要接 CI/IDE,建议补正式 schema。
3. Python validators 尚未在本地 Python 运行时编译执行,这是合并前必须补做的最后验证。
4. 本次未修改 `agents/openai.yaml`;若维护仓库采用 skill-creator 推荐的 UI metadata,应核对 description 更新后是否需要重新生成。
## 15. 建议的维护者合并策略
建议按以下顺序审查和合并:
1. 先合并 prd-master 的稳定 ID、requirements 和正确性分析。
2. 再合并 design-master 的追溯矩阵及页面 6 列格式。
3. 最后合并 tdd-master 的全链路追溯、任务 DAG 和状态契约。
4. 三个 validator 全绿后,再启用 Bugfix 和 quick 模式。
5. 对一个真实项目跑完整链路,确认下游 Coding Agent 不再自行猜开发顺序。
核心验收标准只有一句:
> 任意一个 active source 行为,都能一路找到它的设计落点、测试用例、开发任务、执行状态和最新验证证据。