From 8c000e39bae6fb2cb72ecdaf88f250228add7a5f Mon Sep 17 00:00:00 2001 From: yourname Date: Sun, 12 Apr 2026 07:35:29 +0000 Subject: [PATCH] =?UTF-8?q?sync:=20d8d-iterate=20=E6=96=B0=E5=A2=9E=20comp?= =?UTF-8?q?letion=20=E7=B1=BB=E5=9E=8B=20=E2=80=94=20=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E5=B9=B6=E8=A1=A5=E8=B7=91=E4=B8=8A=E6=AC=A1?= =?UTF-8?q?=E8=BF=AD=E4=BB=A3=E8=B7=B3=E8=BF=87=E7=9A=84=E6=AD=A5=E9=AA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 0 增加 3.7 上次迭代残留状态检查,Phase 1 新增 completion 最高优先级路由, workflow 状态机和路由表增加 completion 分支。 Co-Authored-By: Claude Opus 4.6 --- .claude/skills/d8d-iterate/SKILL.md | 3 +- .claude/skills/d8d-iterate/phase-00-scan.md | 52 +++++++++++++++++++ .../skills/d8d-iterate/phase-01-analyze.md | 28 +++++++++- .claude/skills/d8d-iterate/workflow.md | 2 + 4 files changed, 83 insertions(+), 2 deletions(-) diff --git a/.claude/skills/d8d-iterate/SKILL.md b/.claude/skills/d8d-iterate/SKILL.md index 23ef7c6..b09ae1b 100644 --- a/.claude/skills/d8d-iterate/SKILL.md +++ b/.claude/skills/d8d-iterate/SKILL.md @@ -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 | ## 使用方式 diff --git a/.claude/skills/d8d-iterate/phase-00-scan.md b/.claude/skills/d8d-iterate/phase-00-scan.md index 57b378c..a809d18 100644 --- a/.claude/skills/d8d-iterate/phase-00-scan.md +++ b/.claude/skills/d8d-iterate/phase-00-scan.md @@ -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 +``` diff --git a/.claude/skills/d8d-iterate/phase-01-analyze.md b/.claude/skills/d8d-iterate/phase-01-analyze.md index 00a8c78..11ded61 100644 --- a/.claude/skills/d8d-iterate/phase-01-analyze.md +++ b/.claude/skills/d8d-iterate/phase-01-analyze.md @@ -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 diff --git a/.claude/skills/d8d-iterate/workflow.md b/.claude/skills/d8d-iterate/workflow.md index 7d61b2a..734618e 100644 --- a/.claude/skills/d8d-iterate/workflow.md +++ b/.claude/skills/d8d-iterate/workflow.md @@ -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 | -- 2.49.1