Merge pull request 'sync: d8d-iterate Phase 5 旅程验证防跳过修复' (#23) from sync/d8d-skills-20260412-061022 into master

Reviewed-on: http://gitea.d8d.fun/d8dfun/bmad-method-template/pulls/23
This commit is contained in:
2026-04-12 06:12:13 +00:00
3 changed files with 45 additions and 10 deletions

View File

@@ -130,42 +130,43 @@ greenfield:
feature (low risk, 无新 UI 页面):
→ Phase 2: edit-prd + update arch/ux + new epic
→ Phase 4: d8d-dev --epic {new-epic}
→ Phase 5: d8d-dev --regression
→ Phase 5: d8d-dev --regression → d8d-dev --journey
feature (low risk, 有新 UI 页面):
→ Phase 2: edit-prd + update arch/ux + new epic
→ Phase 3: d8d-prototype --incremental [P] 或 [A](⛔ 铁律六 MANDATORY
→ Phase 4: d8d-dev --epic {new-epic}
→ Phase 5: d8d-dev --regression
→ Phase 5: d8d-dev --regression → d8d-dev --journey
feature (medium/high risk):
→ Phase 2: edit-prd + correct-course + update docs + new epic
→ Phase 3: d8d-prototype --incremental⛔ 如有新 UI 则 MANDATORY铁律六
→ Phase 4: d8d-dev --epic {new-epic}
→ Phase 5: d8d-dev --regression
→ Phase 5: d8d-dev --regression → d8d-dev --journey
bugfix (single file):
→ Phase 4: 直接修复 + d8d-dev --story {story-id}
→ Phase 5: d8d-dev --regression (可选)
→ Phase 5: d8d-dev --regression (可选) → d8d-dev --journey (可选,依赖回归执行)
bugfix (multi file):
→ Phase 2: 如果需要更新文档
→ Phase 4: d8d-dev --story {story-id}
→ Phase 5: d8d-dev --regression
→ Phase 5: d8d-dev --regression → d8d-dev --journey
refactor:
→ Phase 2: correct-course + update docs
→ Phase 4: d8d-dev --epic {affected-epic}
→ Phase 5: d8d-dev --regression
→ Phase 5: d8d-dev --regression → d8d-dev --journey
regression:
→ Phase 5 only: d8d-dev --regression
→ Phase 5: d8d-dev --regression → d8d-dev --journey
(Phase 5 包含回归验证和旅程验证两步,回归 PASS 后必须继续旅程验证)
design:
→ Phase 2.5: 设计工具适配层重新提取设计变量(⭐ 如 design_file_changed=true 则必须)
→ Phase 3: d8d-prototype --incremental使用最新设计截图作为基准
→ Phase 4: d8d-dev --story {affected-stories}
→ Phase 5: d8d-dev --regression (可选)
→ Phase 5: d8d-dev --regression (可选) → d8d-dev --journey (可选,依赖回归执行)
```
## 输出

View File

@@ -4,6 +4,15 @@
**验证顺序**(与 d8d-dev 铁律一致):回归验证 → 旅程验证,不得跳过回归直接旅程。
## ⛔ Phase 5 入口检查(每次进入或恢复本文件时执行)
1. 读取 `iterate-progress.md`
2. 根据 Phase 5 Step 状态定位恢复点:
- `step-51-regression` 不存在 → 从 Step 5.0 开始
- `step-51-regression: completed` + `step-51-result: PASS` + `step-52-journey: pending`**直接跳到 Step 5.2**(跳过已完成的构建和回归)
- `step-51-regression: completed` + `step-51-result: FAIL`**跳到 Step 5.3**(跳过旅程)
- `step-52-journey: completed`**跳到 Step 5.3**(生成报告)
## 执行步骤
### Step 5.0: 生产构建与外网验证
@@ -69,7 +78,10 @@ IF 变更类型 == feature 且 risk == low:
**⛔ 结果判定**Skill 调用返回后立即判断):
- 全部 PASS → 零暂停,自动继续 Step 5.2 旅程验证
- 全部 PASS → ⛔ 立即执行以下三步(零暂停,不输出汇总,不询问用户):
1. 更新 `iterate-progress.md`: `step-51-regression: completed, step-51-result: PASS, step-52-journey: pending`
2. 读取 `iterate-progress.md` 确认状态
3. 调用 Skill tool 执行 Step 5.2 旅程验证
- 有 FAIL → **⛔ 自动修复流程**
1. 分析失败原因,定位 bug
2. 使用 Edit tool 修复
@@ -96,6 +108,11 @@ skill: "d8d-dev"
args: "--journey 旅程验证。验证所有用户旅程,包括已有旅程和新增功能的旅程。"
```
**⛔ Step 5.2 返回后三步协议**
1. 写入进度:`step-52-journey: completed, step-52-result: PASS/FAIL`
2. 读取 `iterate-progress.md` 确认状态
3. 零暂停继续 Step 5.3 生成变更报告
**铁律**
- 回归验证 PASS 后才能执行旅程验证
- 功能不存在时测旅程无意义(⛔ 不得跳过回归直接旅程)

View File

@@ -123,7 +123,13 @@ phase-01-analyze: completed | skipped | failed
phase-02-docs: completed | skipped | failed
phase-03-prototype: completed | skipped | failed
phase-04-dev: completed | skipped | failed
phase-05-verify: completed | skipped | failed
phase-05-verify:
step-50-build: completed | skipped | failed
step-51-regression: completed | skipped | failed
step-51-result: PASS | FAIL | SKIPPED
step-52-journey: pending | completed | skipped | failed
step-52-result: PASS | FAIL | SKIPPED
step-53-report: pending | completed
```
## 执行流程
@@ -203,3 +209,14 @@ Phase 5 — 旅程验证:
4. **错误恢复**Phase 失败时记录状态支持从断点恢复
5. **复用子技能**通过 Skill tool 调用 d8d-requirements/d8d-prototype/d8d-dev不重新实现
6. **自动提交推送**每个 Phase 产生代码变更后立即 git commit + git push不询问用户包括 bug 修复文档更新状态文件变更 全部自动提交推送
### ⛔ Phase 内 Step 过渡守卫
Phase 内含多个 Step Step 间有 Skill 调用时Skill 返回后执行**"写-读-继续"三步**
1. **写**立即将当前 Step 结果写入 `iterate-progress.md`
2. **读**读取 `iterate-progress.md` 确认当前进度
3. **继续**找到下一个 pending Step 执行不询问不停顿
进度文件是跨 Skill 调用的"外部记忆"确保上下文丢失或压缩后仍可恢复
任何 Step 完成后必须检查进度文件中是否还有 pending Step而非直接结束 Phase