sync: d8d-iterate 新增 completion 类型 — 自动检测并补跑上次迭代跳过的步骤

Phase 0 增加 3.7 上次迭代残留状态检查,Phase 1 新增 completion 最高优先级路由,
workflow 状态机和路由表增加 completion 分支。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
yourname
2026-04-12 07:35:29 +00:00
parent ddbe180ccf
commit 8c000e39ba
4 changed files with 83 additions and 2 deletions

View File

@@ -13,11 +13,12 @@ description: '需求迭代自动化编排技能。智能检测项目状态,分
| 类型 | 触发条件 | 执行路径 |
|------|----------|----------|
| **completion** | 上次迭代有跳过的步骤 | 仅补跑跳过的 Phase/Step最高优先级 |
| **feature** | 已有完整文档,需增加新 Epic | edit-prd → update docs → new epic → dev |
| **greenfield** | 无现有文档 | d8d-requirements → d8d-prototype → d8d-dev |
| **bugfix** | 代码已实现但有问题 | dev single-story 或直接修复 |
| **refactor** | 需调整架构但功能不变 | correct-course → update arch → dev |
| **regression** | 验证已有功能 | dev regression |
| **regression** | 验证已有功能 | dev regression → journey |
| **design** | 只改 UI 不改逻辑 | prototype → dev 相关 story |
## 使用方式

View File

@@ -225,3 +225,55 @@ schema_changed: true/false
```
**无 git 仓库时**:跳过此步骤,`code_changed: unknown`
### 3.7 上次迭代残留状态检查(⭐ 新增)
检测上次 d8d-iterate 迭代是否有未完成的步骤需要补跑。
**检测流程**
```
1. 读取 {planning_artifacts}/.iterate-checkpoint.md
→ 获取 status、change_type、completed_phases
2. 读取 {planning_artifacts}/.iterate-progress.md
→ 获取每个 Phase/Step 的详细执行状态
3. 检查规则:
IF checkpoint 不存在:
→ has_previous_iteration: false, 跳过
IF checkpoint.status == "in_progress":
→ has_incomplete_steps: true上次中断了需要恢复
→ 记录 current_phase 作为恢复点
IF checkpoint.status == "completed":
→ 扫描 progress 中所有 Phase/Step
→ IF 任何 Step 状态为 "skipped":
→ has_incomplete_steps: true
→ 记录所有 skipped 的 Phase + Step + 原因
→ ELSE:
→ has_incomplete_steps: false上次迭代完全成功
IF checkpoint.status == "failed":
→ has_incomplete_steps: true需要从失败点恢复
→ 记录失败的 Phase/Step
```
**输出写入 iterate-context.md**
```markdown
### 上次迭代残留状态
has_previous_iteration: true
previous_iteration_type: regression
previous_status: completed
has_incomplete_steps: true
incomplete_steps:
- phase: phase-05-verify
step: journey
reason: "skipped (d8d-iterate 回归模式)"
step_completed: regression (3/3 PASS)
```
```markdown
### 上次迭代残留状态
has_previous_iteration: false
has_incomplete_steps: false
```

View File

@@ -42,7 +42,25 @@
- 极短描述(<10字符"验证"、"看看"、"跑一下"
- 描述不含任何上表分类关键词
推断优先级用户描述关键词 > 代码变更状态推断
推断优先级上次迭代残留检查 > 用户描述关键词 > 代码变更状态推断
**⭐⭐ 最高优先级:上次迭代残留检查**
在所有其他推断之前,先检查 iterate-context.md 的「上次迭代残留状态」:
```
IF has_incomplete_steps == true:
→ 变更类型: completion补完上次迭代跳过的步骤
→ 跳过后续所有推断逻辑
→ 执行路径:根据 incomplete_steps 精确路由
例:上次 journey 被跳过且 regression 已 PASS
→ 直接执行 Phase 5 Step 5.2 (journey),跳过 Step 5.1 (regression)
→ 写入 iterate-context.md 并说明补完理由
→ 更新 iterate-checkpoint.md: status=in_progress, change_type=completion
```
IF has_incomplete_steps == false 或 has_previous_iteration == false:
→ 继续下面的推断逻辑
推断逻辑(读取 iterate-context.md 的代码变更状态):
@@ -122,6 +140,14 @@ IF code_changed == unknown非 git 仓库):
根据变更类型和影响评估,确定执行路径:
```
completion⭐⭐ 最高优先级,补完上次迭代跳过的步骤):
→ 根据 incomplete_steps 精确路由到对应的 Phase/Step
→ 跳过已完成的步骤(检查 iterate-progress.md 中已 PASS/completed 的步骤)
→ 例:上次 regression PASS 但 journey skipped
→ 只执行 Phase 5 Step 5.2 (journey),跳过 Step 5.1 (regression)
→ 执行前更新 iterate-checkpoint.md: status=in_progress
→ 执行完成后更新 iterate-progress.md 并标记 status: completed
greenfield:
→ 调用 d8d-requirements (全量)
→ 完成后自动触发 d8d-prototype

View File

@@ -41,6 +41,7 @@
┌──────────────────────┐
│ 决策路由 │
│ completion? ─→ 仅执行上次跳过的 Phase/Step⭐⭐ 最高优先级)
│ greenfield? ───→ 全量流程 (d8d-requirements → prototype → dev)
│ feature? ───→ Phase 2 → (has UI? → Phase 3 ⛔) → Phase 4 → 5
│ bugfix? ───→ Phase 4 (single-story)
@@ -158,6 +159,7 @@ phase-05-verify:
| 变更类型 | 执行路径 | 跳过 |
|----------|----------|------|
| **completion** | 仅执行上次跳过的 Phase/Step(⭐ 最高优先级 | 所有已完成的 Phase/Step |
| **greenfield** | Phase 0 调用 d8d-requirements d8d-prototype d8d-dev内置回归+旅程 | Phase 1-5 全跳过 |
| **feature** | Phase 2 (Phase 3: 有新UI则MANDATORY) Phase 4 Phase 5 | 按需 |
| **bugfix** | Phase 4 (single-story) Phase 5 | Phase 2, 3 |