sync: 新增 d8d-iterate 需求迭代自动化编排技能 #7

Merged
d8dfun merged 1 commits from sync/d8d-skills-20260408-072830 into master 2026-04-08 15:30:52 +08:00
8 changed files with 1003 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
---
name: d8d-iterate
description: '需求迭代自动化编排技能。智能检测项目状态,分析变更类型,自动编排 d8d-requirements / d8d-prototype / d8d-dev 技能的增量执行路径。支持新功能、Bug修复、重构、设计更新等多种迭代场景包含回归验证+旅程验证,全程零人工干预。'
---
# D8D Iterate — 需求迭代自动化编排
**智能路由器**:检测项目状态 → 分析变更意图 → 选择最优路径 → 自动编排子技能。
**立即加载 [workflow.md](workflow.md) 开始执行工作流。**
## 支持的变更类型
| 类型 | 触发条件 | 执行路径 |
|------|----------|----------|
| **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 |
| **design** | 只改 UI 不改逻辑 | prototype → dev 相关 story |
## 使用方式
```
/d8d-iterate <变更描述>
示例:
/d8d-iterate 增加多城市批量任务调度功能
/d8d-iterate 修复搜索结果为空的问题
/d8d-iterate 重构数据模型为多城市支持
/d8d-iterate 回归验证所有功能
```

View File

@@ -0,0 +1,119 @@
# Phase 0: 项目状态扫描
**目标**:全面扫描项目当前状态,建立基线用于后续变更分析。
## 扫描清单
### 1. 规划文档检测
扫描 `{planning_artifacts}/` 目录(默认:`_bmad-output/planning-artifacts/`
```
检测文件:
├── *brief*.md → 产品简报
├── *prd*.md → PRD
├── *architecture*.md → 技术架构
├── *ux*.md / *ui*.md → UX 设计
├── *epic*.md → 史诗与故事
└── *readiness*.md → 就绪检查报告
```
对每个存在的文档,记录:
- 文件路径
- 文件大小(行数)
- 最后修改时间
- 关键章节概要(前 20 行 + 标题结构)
### 2. 实施状态检测
扫描 `{implementation_artifacts}/` 目录(默认:`_bmad-output/implementation-artifacts/`
```
检测文件:
├── pipeline-state.yaml → 开发流水线状态
├── sprint-status.yaml → Sprint 状态
└── story-specs/ → Story 规格文件
```
`pipeline-state.yaml` 提取:
- 已完成 Epic 数量和 ID 列表
- 已完成 Story 数量和 ID 列表
- 失败/未验证的 Story 列表
- 当前流水线状态 (completed/in_progress/failed)
### 3. 代码库扫描
扫描项目根目录:
```
检测:
├── package.json → 技术栈、依赖
├── prisma/schema.prisma → 数据模型定义
├── src/ → 源代码结构
│ ├── app/api/ → API 路由列表
│ ├── components/ → 组件列表
│ └── lib/ → 工具库
├── prototype/ → 原型文件(如果存在)
└── next.config.* → Next.js 配置
```
`prisma/schema.prisma` 提取:
- 所有模型名称
- 关键字段
- 模型间关系
### 4. 技术栈识别
`package.json` 提取:
- 框架 (Next.js 版本)
- UI 库 (shadcn/ui, Tailwind)
- 数据库 (Prisma, PostgreSQL)
- 其他关键依赖
## 输出
将扫描结果写入 `iterate-context.md` 的「项目状态快照」部分:
```markdown
## 项目状态快照
### 文档状态
| 文档 | 路径 | 状态 |
|------|------|------|
| PRD | _bmad-output/planning-artifacts/prd.md | ✅ 存在 (234 行) |
| 架构 | _bmad-output/planning-artifacts/architecture.md | ✅ 存在 (189 行) |
| ... | ... | ... |
### 开发状态
- 已完成 Epic: 6 (epic-1 到 epic-6)
- 已完成 Story: 26/26
- 流水线状态: completed
### 数据模型
- Store: 门店信息
- SearchTask: 搜索任务
- (无 BatchTask)
### 技术栈
- Next.js 16 + App Router
- PostgreSQL 17 + Prisma
- shadcn/ui + Tailwind CSS
```
## 判断规则
```
IF 无任何规划文档:
→ 项目类型: greenfield
IF 有完整规划文档 + pipeline-state 显示 completed:
→ 项目类型: mature (成熟项目,支持迭代)
IF 有部分规划文档 + pipeline-state 显示 in_progress:
→ 项目类型: in-progress (进行中项目,需续跑)
IF 有规划文档但无 pipeline-state:
→ 项目类型: planned (已规划未开发)
```
将项目类型写入 `iterate-checkpoint.md`

View File

@@ -0,0 +1,155 @@
# Phase 1: 变更分析与分类
**目标**:理解用户变更意图,分类变更类型,评估影响范围,确定执行路径。
## 输入
1. **用户需求描述**:来自 `/d8d-iterate <描述>` 的参数
2. **项目状态快照**:来自 Phase 0 的扫描结果iterate-context.md
## 分析步骤
### Step 1.1: 需求理解
解析用户描述,提取:
```
- 核心意图:用户想要做什么?
- 涉及领域:哪些功能模块受影响?
- 变更规模:是小改动还是大功能?
- 紧急程度:是否需要立即处理?
```
### Step 1.2: 变更类型分类
根据需求描述和项目状态,分类变更类型:
| 类型 | 判定关键词 | 典型描述 |
|------|-----------|----------|
| **feature** | 增加、新增、添加、支持、扩展 | "增加多城市批量任务"、"支持导出 PDF" |
| **bugfix** | 修复、解决、bug、问题、异常、报错 | "修复搜索结果为空"、"解决导出失败" |
| **refactor** | 重构、优化、调整架构、迁移 | "重构数据模型"、"优化性能" |
| **greenfield** | 新建、从零开始、新项目 | 在无文档的项目上执行 |
| **regression** | 验证、测试、回归、检查 | "回归验证所有功能" |
| **design** | 界面、UI、样式、布局、交互 | "调整搜索面板布局" |
**混合类型处理**:如果包含多种意图,按优先级 feature > refactor > bugfix > design 取主要类型,次要类型记录为附加任务。
### Step 1.3: 影响范围评估
根据变更类型,评估影响范围:
#### Feature 类型影响评估
```
1. 读取现有 PRD
→ 是否需要修改已有功能需求?
→ 是否只是新增章节?
2. 读取现有架构文档
→ 是否需要新数据模型?
→ 是否需要新 API 路由?
→ 是否影响现有模型(加字段/改关系)?
3. 读取现有 UX 设计
→ 是否需要新页面/组件?
→ 是否修改现有页面布局?
4. 读取现有 Epic 列表
→ 需要创建多少新 Story
→ 是否影响已有 Epic 的 Story
```
#### Bugfix 类型影响评估
```
1. 定位问题文件
→ 读取相关代码文件
→ 确认 bug 根因
2. 评估修复范围
→ 是否只涉及单个文件?
→ 是否需要改数据模型?
→ 是否影响多个 Epic
```
### Step 1.4: 风险等级
| 等级 | 条件 | 示例 |
|------|------|------|
| **low** | 纯增量,不影响现有代码 | 新增 BatchTask 表 + 新页面 |
| **medium** | 需修改现有模型或 API | SearchTask 加字段、修改搜索路由 |
| **high** | 重构核心架构或数据模型 | 更换数据库、重写认证系统 |
### Step 1.5: 执行路径确定
根据变更类型和影响评估,确定执行路径:
```
greenfield:
→ 调用 d8d-requirements (全量)
→ 完成后自动触发 d8d-prototype
→ 完成后自动触发 d8d-dev
feature (low risk):
→ Phase 2: edit-prd + update arch/ux + new epic
→ Phase 4: d8d-dev --epic {new-epic}
→ Phase 5: d8d-dev --regression
feature (medium/high risk):
→ Phase 2: edit-prd + correct-course + update docs + new epic
→ Phase 3: d8d-prototype --incremental (如果新 UI)
→ Phase 4: d8d-dev --epic {new-epic}
→ Phase 5: d8d-dev --regression
bugfix (single file):
→ Phase 4: 直接修复 + d8d-dev --story {story-id}
→ Phase 5: d8d-dev --regression (可选)
bugfix (multi file):
→ Phase 2: 如果需要更新文档
→ Phase 4: d8d-dev --story {story-id}
→ Phase 5: d8d-dev --regression
refactor:
→ Phase 2: correct-course + update docs
→ Phase 4: d8d-dev --epic {affected-epic}
→ Phase 5: d8d-dev --regression
regression:
→ Phase 5 only: d8d-dev --regression
design:
→ Phase 3: d8d-prototype --incremental
→ Phase 4: d8d-dev --story {affected-stories}
→ Phase 5: d8d-dev --regression (可选)
```
## 输出
将分析结果写入 `iterate-context.md`
```markdown
## 变更分析
### 需求理解
- 核心意图: 支持多城市批量任务调度
- 涉及领域: 任务管理、数据采集、UI 交互
- 变更规模: 大功能(需要新数据模型+新页面+新 API
### 分类结果
- 变更类型: feature
- 风险等级: low (纯增量,不影响现有代码)
### 影响范围
- PRD: 需要添加新功能需求章节
- 架构: 需要添加 BatchTask 模型和批量执行器
- UX: 需要添加批量任务面板和仪表盘
- Epic: 需要创建新 Epic (估计 7 个 Story)
### 执行路径
Phase 2 → Phase 4 → Phase 5
(跳过 Phase 3 原型,因为遵循现有 UI 模式)
```
更新 `iterate-checkpoint.md``change_type``current_phase` 字段。

View File

@@ -0,0 +1,195 @@
# Phase 2: 文档增量更新
**目标**根据变更分析结果增量更新项目文档PRD、架构、UX、Epic保留所有已有内容。
## 铁律
1. **增量更新**:只添加/修改必要部分,绝不删除或覆盖已有内容
2. **向后兼容**:所有文档变更必须保持与已完成 Epic 的兼容性
3. **先读后写**:修改任何文档前必须先完整读取当前内容
## 执行步骤
### Step 2.1: 更新 PRD
**条件**:变更涉及新功能需求或需求变更。
**方法 A使用 bmad-edit-prd推荐**
调用 bmad-edit-prd 技能,传入精确的编辑指令:
```
Skill tool: bmad-edit-prd
Arguments:
PRD 路径: {planning_artifacts}/prd.md
=== 编辑指令 ===
1. 定位排除范围章节(通常是 §9.x移除与新功能相关的排除项
2. 在功能需求章节添加新需求:
- FR-0XX: <需求标题>
- 描述: <详细描述>
- 验收标准: <AC>
3. 在里程碑章节添加新里程碑(如果适用)
=== 约束 ===
- 不要修改任何已有的功能需求
- 不要修改已完成 Epic 相关的内容
- 保持文档整体结构不变
```
**方法 B直接编辑小改动**
对于简单的文档更新(如移除排除项),直接使用 Edit tool 进行精确修改。
### Step 2.2: 更新架构文档
**条件**变更涉及新数据模型、API 路由、或系统组件。
**操作**
1. 读取 `{planning_artifacts}/architecture.md`
2. 确定需要添加的位置(通常是追加新章节)
3. 使用 Edit tool 在合适位置插入新内容:
```markdown
追加内容包括:
- 新数据模型定义(字段、关系、约束)
- 新 API 路由(方法、路径、请求/响应格式)
- 新系统组件(如批量执行器、任务队列)
- 更新目录结构(新增文件)
```
**架构更新模板**(新功能):
```
## X. {新功能名称}
### 数据模型
\`\`\`prisma
model NewModel {
id Int @id @default(autoincrement())
// ... 字段定义
createdAt DateTime @default(now())
}
\`\`\`
### API 路由
| 方法 | 路径 | 描述 |
|------|------|------|
| POST | /api/new | 创建 |
### 新增文件
- src/app/api/new/route.ts
- src/components/features/new-panel.tsx
```
### Step 2.3: 更新 UX 设计文档
**条件**:变更涉及新页面、新组件、或 UI 交互变更。
**操作**
1. 读取 `{planning_artifacts}/ux-design-specification.md`(或 `*ux*.md`
2. 在合适位置追加新的 UX 模式描述:
```markdown
追加内容包括:
- 新页面描述(布局、组件、交互)
- 新组件规格props、状态、行为
- 新交互流程(用户操作序列)
- 线框图描述(文本形式)
```
### Step 2.4: 创建新 Epic 和 Story
**条件**:变更类型为 feature 或 refactor。
**操作**
1. 读取 `{planning_artifacts}/*epic*.md`
2. 确定下一个 Epic 编号(如 Epic 7
3. 追加新 Epic 及其 Story
```markdown
## Epic {N}: {Epic 标题}
**目标**: {一句话描述}
### Story 列表
| Story | 标题 | 复杂度 | 依赖 |
|-------|------|--------|------|
| {N}-1 | ... | Low | - |
| {N}-2 | ... | Medium | {N}-1 |
| ... | ... | ... | ... |
### Story 详情
#### Story {N}-1: {标题}
**描述**: {详细描述}
**验收标准**:
- AC1: ...
- AC2: ...
**技术要点**:
- 改动文件: ...
- 关键实现: ...
```
### Step 2.5: 更新 Pipeline 状态文件
**条件**:创建了新 Epic。
**操作**
1. 读取 `{implementation_artifacts}/pipeline-state.yaml`
2. 更新关键字段:
```yaml
# 修改
total_epics: {原值 + 1}
total_stories: {原值 + 新 Story 数}
# 追加
epics:
# ... 已有 epic 不变
epic-{N}:
title: "{Epic 标题}"
status: pending
stories:
{N}-1:
title: "{Story 标题}"
status: pending
# ... 其他 Story
```
3. 同步更新 `sprint-status.yaml`
## 质量检查
每个文档更新后,验证:
```
✅ 已有内容未被删除或修改
✅ 新内容与已有内容的格式一致
✅ 新 Story 的依赖关系正确
✅ pipeline-state 的计数正确
✅ 所有新增文件路径符合项目约定
```
## 输出
更新 `iterate-progress.md`
```yaml
phase-02-docs:
prd_updated: true | false
architecture_updated: true | false
ux_updated: true | false
epic_created: true | false
pipeline_state_updated: true | false
```

View File

@@ -0,0 +1,56 @@
# Phase 3: 原型更新(可选)
**目标**:当变更涉及新 UI 页面或重大交互变更时,更新原型系统。
## 触发条件
```
IF 变更类型 == design → 执行 Phase 3
IF 变更类型 == feature 且涉及新页面/组件 → 执行 Phase 3
IF 变更类型 == bugfix → 跳过
IF 变更类型 == refactor 且不涉及 UI → 跳过
IF 变更类型 == regression → 跳过
```
## 执行方式
### 方式 A: 调用 d8d-prototype 全量更新
当新增多个页面时:
```
Skill tool: d8d-prototype
Arguments:
项目: {project_name}
PRD: {planning_artifacts}/prd.md
UX设计: {planning_artifacts}/ux-design-specification.md
架构: {planning_artifacts}/architecture.md
输出目录: {planning_artifacts}/prototypes
```
### 方式 B: 只生成新增页面
当只新增少量页面时,直接生成单个 HTML 文件:
1. 读取现有原型页面,了解样式规范
2. 为新增页面创建独立 HTML 文件
3. 更新 admin-index.html将新页面加入 iframe 网格
### 方式 C: 跳过
当变更不涉及新 UI 时,直接跳过此 Phase。
```
在 iterate-progress.md 中记录:
phase-03-prototype: skipped (reason: no UI changes)
```
## 输出
更新 `iterate-progress.md`
```yaml
phase-03-prototype:
status: completed | skipped
new_pages: [page-name-1, page-name-2] # 如果执行了
reason: "..." # 如果跳过了
```

View File

@@ -0,0 +1,98 @@
# Phase 4: 增量开发
**目标**:调用 d8d-dev 技能执行增量开发,只实现新增或变更的部分。
## 执行路径选择
根据变更类型和 Phase 2 的分析结果,选择 d8d-dev 的运行模式:
| 场景 | d8d-dev 模式 | 参数 |
|------|-------------|------|
| 新 Epic | 单 Epic 模式 | `--epic epic-{N}` |
| 新 Story | 单 Story 模式 | `--story {story-id}` |
| Bug 修复 | 单 Story 模式 | `--story {story-id}` |
| 重构 | 单 Epic 模式 | `--epic epic-{N}` |
| 设计变更 | 单 Story 模式 | `--story {affected-story}` |
## 执行方式
### 方式 A: 新 Epic 开发
Phase 2 创建了新 Epic如 Epic 7
```
Skill tool: d8d-dev
Arguments:
--epic epic-7
项目: {project_name}
PRD: {planning_artifacts}/prd.md
架构: {planning_artifacts}/architecture.md
UX设计: {planning_artifacts}/ux-design-specification.md
Epic: {planning_artifacts}/epics.md (Epic 7 部分)
=== 前置产物 ===
已完成 Epic: 1-6 (全部 PASS)
新增 Epic: 7 (7 个 Story, 全部 pending)
=== 上下文 ===
这是一个增量开发,在已有 MVP 基础上添加新功能。
请只实现 Epic 7 的 Story不要修改已有 Epic 的代码。
如果需要修改已有文件(如添加 import、增加字段
确保不破坏已有功能。
=== 指令 ===
使用单 Epic 模式,依次实现 Epic 7 的所有 Story。
每个 Story 执行完整的 CREATE-SPEC → IMPLEMENT → TEST → REVIEW → MARK-DONE 循环。
```
### 方式 B: 单 Story 修复
定位到具体 Story 进行修复:
```
Skill tool: d8d-dev
Arguments:
--story {story-id}
项目: {project_name}
PRD: {planning_artifacts}/prd.md
Epic: {planning_artifacts}/epics.md (相关 Story)
=== Bug 上下文 ===
问题描述: {bug 描述}
根因分析: {分析结果}
修复方案: {方案}
=== 指令 ===
使用单 Story 模式,修复指定 Story 的问题。
不做额外的代码改动。
```
### 方式 C: Bug 直接修复(无 Story
对于简单的 bug无需创建 Story直接修复
1. 读取相关代码文件
2. 定位问题
3. 使用 Edit tool 修复
4. 运行测试验证
## 注意事项
1. **不要调用 `d8d-dev --force`**:这会清除所有已有状态
2. **不要调用 `d8d-dev` 无参数**:可能触发完整模式,重跑所有 Epic
3. **确认 pipeline-state 已更新**Phase 2 必须先更新 pipeline-state.yaml
4. **监控执行结果**:如果 d8d-dev 报错,检查是否因为 pipeline-state 不一致
## 输出
更新 `iterate-progress.md`
```yaml
phase-04-dev:
mode: single-epic | single-story | direct-fix
target: epic-7 | story-7-3 | direct
result: success | partial | failed
stories_completed: 7
stories_failed: 0
```

View File

@@ -0,0 +1,146 @@
# Phase 5: 回归验证 + 旅程验证
**目标**:回归验证已有功能未退化 → 旅程验证跨 Story 用户流程 → 生成最终变更报告。
**验证顺序**(与 d8d-dev 铁律一致):回归验证 → 旅程验证,不得跳过回归直接旅程。
## 执行步骤
### Step 5.1: 回归测试
调用 d8d-dev 的回归验证模式:
```
Skill tool: d8d-dev
Arguments:
--regression
项目: {project_name}
=== 指令 ===
使用回归验证模式,逐 Story 验证已有功能。
跳过本次新增的 Epic/Story已在 Phase 4 验证过)。
只验证 Epic 1-6 的功能点。
```
**条件跳过**
```
IF 变更类型 == bugfix 且只修改了单个文件:
→ 可选执行回归(取决于风险等级)
IF 变更类型 == regression:
→ 这就是主要任务,执行完整回归
IF 变更类型 == feature 且 risk == low:
→ 执行回归(推荐但不强制)
```
### Step 5.2: 旅程验证
回归测试全部通过后,**零暂停**自动执行旅程验证:
```
Skill tool: d8d-dev
Arguments:
--journey
=== 指令 ===
使用旅程验证模式,验证跨 Story 的用户旅程。
包含已有旅程 + 新增功能的旅程。
```
**铁律**:回归验证 PASS 后才能执行旅程验证。功能不存在时测旅程无意义。
### Step 5.3: 生成变更报告
汇总所有 Phase 的执行结果,生成变更报告:
```markdown
# 变更报告
## 概要
- 变更类型: feature
- 用户需求: 增加多城市批量任务调度功能
- 执行路径: Phase 2 → Phase 4 → Phase 5
- 风险等级: low
## Phase 2 — 文档增量更新
| 文档 | 操作 | 状态 |
|------|------|------|
| PRD | 添加 FR-013~018 | ✅ |
| 架构 | 添加 BatchTask 模型 | ✅ |
| UX | 添加批量任务面板 | ✅ |
| Epic | 创建 Epic 7 | ✅ |
| Pipeline State | 更新计数 | ✅ |
## Phase 4 — 增量开发
| Story | 标题 | 状态 |
|-------|------|------|
| 7-1 | BatchTask 数据模型 | ✅ PASS |
| 7-2 | 批量任务 API | ✅ PASS |
| 7-3 | 任务调度引擎 | ✅ PASS |
| 7-4 | 批量任务面板 UI | ✅ PASS |
| 7-5 | 批量任务仪表盘 | ✅ PASS |
| 7-6 | 批量导出 | ✅ PASS |
| 7-7 | 历史记录集成 | ✅ PASS |
## Phase 5 — 回归验证
- Epic 1-6: ✅ 全部 PASS (26/26)
## Phase 5 — 旅程验证
- 10/10 旅程全部 PASS
## 文件变更统计
- 新增文件: {count}
- 修改文件: {count}
- 删除文件: {count}
## 测试结果
- 单元测试: {passed}/{total} passed
- E2E 测试: {passed}/{total} passed
- 回归测试: {passed}/{total} passed
- 旅程验证: {passed}/{total} passed
```
### Step 5.4: 更新最终状态
更新 `iterate-checkpoint.md`
```yaml
pipeline: d8d-iterate
status: completed
completed_phases: [phase-00, phase-01, phase-02, phase-04, phase-05]
user_request: "..."
change_type: feature
target_epic: epic-7
result: success
```
更新 `iterate-progress.md`
```yaml
phase-05-verify:
regression: completed
regression_result: PASS | FAIL
journey: completed # 回归 PASS 后自动执行
journey_result: PASS | FAIL
```
## 错误处理
```
IF 回归测试发现退化:
→ 记录退化的 Story
→ 生成退化报告
→ 不自动修复,建议用户决定处理方式
→ 跳过旅程验证(功能不完整时测旅程无意义)
IF 回归 PASS 但旅程验证 FAIL:
→ 记录失败的旅程
→ 尝试自动修复(最多 3 轮)
→ 仍然 FAIL 则报告给用户
IF Phase 4 开发部分失败:
→ 跳过 Phase 5
→ 在报告中标注失败项
→ 建议用户使用 d8d-dev --story 逐个修复
```

View File

@@ -0,0 +1,201 @@
# D8D Iterate — 需求迭代自动化工作流
**全自动化**迭代编排:检测状态 → 分析变更 → 更新文档 → 增量开发 → 回归验证 → 旅程验证。全程零人工干预。
## 核心理念
```
用户输入: "增加多城市批量任务"
┌──────────────────────────────────────────────────────────┐
│ D8D Iterate 自动化编排器 │
│ │
│ Phase 0: 项目状态扫描 │
│ ↓ │
│ Phase 1: 变更分析 → 分类 + 影响评估 + 路径选择 │
│ ↓ │
│ Phase 2: 文档增量更新 (按需) │
│ ↓ │
│ Phase 3: 原型更新 (可选) │
│ ↓ │
│ Phase 4: 增量开发 │
│ ↓ │
│ Phase 5: 回归验证 + 旅程验证 + 变更报告 │
│ │
│ 全程无暂停、无确认、全自动执行 │
└──────────────────────────────────────────────────────────┘
```
## 状态机
```
┌──────────────┐
│ Phase 0 │ 项目状态扫描
│ SCAN │ 检测文档、代码、pipeline 状态
└──────┬───────┘
┌──────────────┐
│ Phase 1 │ 变更分析
│ ANALYZE │ 分类变更类型、评估影响
└──────┬───────┘
┌──────────────────────┐
│ 决策路由 │
│ greenfield? ───→ 全量流程 (d8d-requirements → prototype → dev)
│ feature? ───→ Phase 2 → 4 → 5
│ bugfix? ───→ Phase 4 (single-story)
│ refactor? ───→ Phase 2 → 4 → 5
│ regression?───→ Phase 5 only
│ design? ───→ Phase 3 → 4
└────────┬─────────┘
┌─────────────────┐
│ Phase 2 │ 文档增量更新 (按需)
│ UPDATE-DOCS │ edit-prd → update arch/ux → new epic
└────────┬────────┘
┌─────────────────┐
│ Phase 3 │ 原型更新 (可选)
│ PROTOTYPE │ d8d-prototype --incremental
└────────┬────────┘
┌─────────────────┐
│ Phase 4 │ 增量开发
│ DEV │ d8d-dev --epic 或 --story
└────────┬────────┘
┌─────────────────┐
│ Phase 5 │ 回归验证 + 旅程验证
│ VERIFY │ d8d-dev --regression → --journey + 变更报告
└─────────────────┘
```
## 三文件状态管理
与 d8d-requirements/d8d-dev 保持一致的 3-file 模式:
```
{planning_artifacts}/.iterate-checkpoint.md — 当前阶段、完成步骤
{planning_artifacts}/.iterate-context.md — 变更类型、影响分析、执行方案
{planning_artifacts}/.iterate-progress.md — 各阶段执行状态
```
### 状态文件格式
**iterate-checkpoint.md**:
```yaml
pipeline: d8d-iterate
status: in_progress | completed | failed
current_phase: phase-XX
completed_phases: [...]
user_request: "用户的原始需求描述"
change_type: feature | bugfix | refactor | greenfield | regression | design
target_epic: epic-N # 如果适用
```
**iterate-context.md**:
```markdown
# 变更上下文
## 项目状态快照
- 已有文档: PRD, 架构, UX, Epic 1-6
- 已完成 Story: 26/26
- 代码状态: MVP 完成
## 变更分析
- 类型: feature
- 影响范围: [PRD, 架构, UX, 新 Epic]
- 风险等级: low | medium | high
- 执行路径: Phase 2 → 4 → 5
## 需要更新的文档
- PRD: 移除排除、添加新功能需求
- 架构: 添加新模型/路由
- UX: 添加新页面模式
- Epic: 创建新 Epic 及 Story
```
**iterate-progress.md**:
```yaml
phase-00-scan: completed | skipped | failed
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
```
## 执行流程
### Step 0: 读取用户输入
**输入**: 用户通过 `/d8d-iterate <描述>` 提供的变更需求。
如果用户未提供描述,询问:请描述您需要的变更。
### Step 1: 执行 Phase 0 — 项目状态扫描
**零暂停**加载 [phase-00-scan.md](phase-00-scan.md) 执行扫描。
扫描完成后,将项目状态写入 `iterate-context.md`
### Step 2: 执行 Phase 1 — 变更分析
**零暂停**加载 [phase-01-analyze.md](phase-01-analyze.md) 执行分析。
分析完成后,将变更类型、影响范围、执行路径写入 `iterate-context.md`
### Step 3: 路由决策
根据 Phase 1 的分析结果,选择执行路径:
| 变更类型 | 执行路径 | 跳过 |
|----------|----------|------|
| **greenfield** | Phase 0 → 调用 d8d-requirements → d8d-prototype → d8d-dev内置回归+旅程) | Phase 1-5 全跳过 |
| **feature** | Phase 2 → (Phase 3 可选) → Phase 4 → Phase 5 | 按需 |
| **bugfix** | Phase 4 (single-story) → Phase 5 | Phase 2, 3 |
| **refactor** | Phase 2 → Phase 4 → Phase 5 | Phase 3 |
| **regression** | Phase 5 only | Phase 2, 3, 4 |
| **design** | Phase 3 → Phase 4 (相关 story) | Phase 2 |
### Step 4: 按 Phase 顺序执行
每个 Phase 加载对应的 phase-XX 文件,**零暂停**依次执行。
### Step 5: 输出变更报告
所有 Phase 完成后,生成变更报告:
```
📋 变更报告
===========
变更类型: feature
执行路径: Phase 2 → 4 → 5
Phase 2 — 文档更新:
✅ PRD: 添加 FR-013~018
✅ 架构: 添加 BatchTask 模型
✅ UX: 添加批量任务面板
✅ Epic: 创建 Epic 7 (7 个 Story)
Phase 4 — 增量开发:
✅ Epic 7: 7/7 Story PASS
Phase 5 — 回归验证:
✅ Epic 1-6: 全部 PASS
Phase 5 — 旅程验证:
✅ 10/10 旅程全部 PASS
新增文件: 8
修改文件: 5
测试通过: 33/33
```
## 铁律
1. **零暂停执行**Phase 完成后立即执行下一个 Phase不等待用户确认
2. **增量优先**:只修改需要变更的部分,保留所有已有工作
3. **状态持久化**:每个 Phase 完成后更新三个状态文件
4. **错误恢复**Phase 失败时记录状态,支持从断点恢复
5. **复用子技能**:通过 Skill tool 调用 d8d-requirements/d8d-prototype/d8d-dev不重新实现