Files
git-learn/skill-workbench/docs/sm-flow/phase-contracts-v4.1-changelog.md
T
zhuyongxin b94ee31cb1 sm-flow v4.1: add pre-apply research checkpoint to reduce rework
Based on real execution review (shandong-intent-sync), apply phase
suffered from 4-5 rework cycles due to insufficient upfront research.

Changes:
- grill: add technical implementation dimension to question pool
- apply: add mandatory pre-apply checkpoint (15-20min research)
  - read reference implementations thoroughly
  - grep key tech stack patterns
  - form tech stack checklist in decisions.md
- apply: add incremental implementation guidance
- apply: add first-module alignment check
- apply: add fast-fail rule (≥2 rework → pause)

Expected impact:
- Rework: 4-5 cycles → 0-1 cycle (-80%)
- Core feature empty impl: 100% → 0%
- ROI: 200% (invest 20min, save 60min)

Complexity: +55 lines to phase-contracts.md (+20%)
Approach: simplified version (plan B) to balance value vs overhead

Docs:
- phase-contracts.md: updated grill + apply phases
- workflow.md: added v4.1 evolution chapter
- phase-contracts-v4.1-changelog.md: detailed change log
- sm-flow-execution-review-shandong-intent-sync.md: source review
2026-06-23 11:27:32 +08:00

217 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SM Flow Phase Contracts v4.1 更新日志
> 更新日期: 2026-06-23
> 更新原因: 基于"山东商客意向单同步接口"执行复盘
> 更新方案: 方案 B(简化版)
---
## 更新概览
**核心目标**: 减少 apply 阶段的返工次数(从 4-5 次降低到 0-1 次)
**更新范围**:
- ✅ grill 阶段:增加技术实现维度
- ✅ apply 阶段:增加 Pre-apply Checkpoint
**文本增量**: +55 行(从 281 行 → 336 行,+20%)
---
## 详细修改
### 1. grill 阶段 — 增加技术实现维度
**修改位置**: `phase-contracts.md` 第 85-88 行
**新增内容**:
```markdown
- **技术实现维度**(新增):当 proposal 提到参考实现、或涉及项目现有基础设施时,增加技术澄清问题:
- 参考实现的具体文件路径是什么?
- 项目现有的 [请求结构/MQ/缓存/加密/工具类] 标准是什么?
- 有哪些技术点需要先调研或新建?
```
**目的**: 在 grill 阶段就识别技术调研需求,避免 apply 时才发现技术栈不熟悉。
---
### 2. apply 阶段 — 增加 Pre-apply Checkpoint
**修改位置**: `phase-contracts.md` 第 234-265 行
**新增章节**: Pre-apply Checkpoint(15-20 分钟)
#### 触发条件(3 条)
- design 或 tasks 中提到"参考 XXX 实现"
- 需要调用项目现有基础设施(MQ/统一请求结构/工具类等)
- 技术栈不熟悉或第一次在该项目实现类似功能
#### 执行步骤(3 步)
1. **完整阅读所有参考实现**(约 10 分钟)
- 从 OpenSpec design 或 tasks 中定位参考实现文件
- 如果路径不明确,通过 Grep 搜索关键类名或模式
- 逐行理解关键逻辑,提取可复用代码片段和模式
2. **Grep 关键技术栈**(约 5 分钟)
- 请求/响应结构模式
- 消息队列模式
- 统一工具类
- 异常处理和日志记录标准
3. **形成技术栈清单并写入 decisions.md**
- 项目使用的请求/响应结构标准
- MQ 消息定义和发送标准
- Consumer 标准位置和写法
- 加密/验签/工具类的标准用法
- 识别需要新建的工具类或基础设施
#### 输出要求(3 条)
- ✅ 技术栈清单已写入 `decisions.md` 的 "Pre-apply Research" 章节
- ✅ 已列出所有参考实现的文件路径
- ✅ 已识别需要新建的工具类/基础设施
#### 快速模式支持
- micro 分档可缩短为 5-10 分钟快速扫描,但仍需形成清单
---
### 3. apply 阶段 — 实现过程增强
**修改位置**: `phase-contracts.md` 第 267-284 行
**新增要求**:
- **分步实现**:建议按 Controller → Service → MQ/异步组件 → Consumer/下游 顺序
- **首模块完成后对齐检查**:完成第一个接口/模块后,对比 OpenSpec design/tasks,标记"已完成/TODO";核心功能不允许空实现或纯 TODO 注释
- **快速失败**:连续返工 ≥ 2 次时,暂停并重新执行 pre-apply checkpoint 或向用户汇报
---
### 4. apply 阶段 — 退出条件增强
**修改位置**: `phase-contracts.md` 第 286-292 行
**新增退出条件**:
- ✅ 已完成 pre-apply checkpoint(如触发条件满足),技术栈清单已写入 `decisions.md`
- ✅ 核心功能已实现或明确标注"待联调",无纯 TODO 占位
---
## 简化对比
### 与完整方案对比
| 维度 | 完整方案 | 简化方案 B | 差异 |
|------|----------|-----------|------|
| 文本增量 | +100 行 | +55 行 | -45% |
| 子阶段数 | 3 个(Phase 1/2/3) | 1 个(Pre-apply Checkpoint) | -67% |
| 强制规则 | 9 条 | 5 条 | -44% |
| 检查清单 | 2 个详细清单 | 1 个简化清单 | -50% |
| 时间分档 | 3 档(15/20/30 分钟) | 1 档(15-20 分钟) | -67% |
### 保留核心价值
✅ **保留**(解决返工问题):
- 前置调研(最重要)
- 技术栈清单(防止想当然)
- 核心功能不能空实现(保证质量)
- 快速失败机制
❌ **简化**(去掉过度约束):
- 严格的执行顺序
- 频繁的检查点
- 详细的操作指南模板
---
## 预期效果
### 量化指标
| 指标 | 当前 | 目标 | 改善 |
|------|------|------|------|
| 返工次数 | 4-5 次 | 0-1 次 | -80% |
| 核心功能空实现率 | 高(3/3 核心功能) | 0% | -100% |
| 实现时间(含返工) | 2 小时 | 1.5 小时 | -25% |
| 前置调研时间 | 0 分钟 | 15-20 分钟 | +20 分钟 |
### ROI 分析
```
投入: 15-20 分钟调研
回报: 节省 60 分钟返工 + 避免核心功能遗漏
ROI = (60 - 20) / 20 = 200%
```
---
## 适用场景
### ✅ 强烈推荐
- 中等及以上规模需求(3+ 接口或涉及多模块)
- 涉及项目现有基础设施(MQ/统一请求结构/工具类)
- 第一次在该项目实现类似功能
- 设计文档提到"参考 XXX 实现"
### 🟡 可选执行
- micro 分档的简单需求(可缩短为 5-10 分钟)
- 纯数据处理或工具脚本(技术栈熟悉)
### ❌ 不推荐
- 紧急热修复(时间紧急)
- 一次性脚本(不涉及项目标准)
---
## 后续优化方向
### 短期(1-2 个需求后)
- 收集数据:实际调研时间、返工次数、遗漏率
- 验证效果:是否达到预期 ROI
- 调整参数:时间要求、触发条件
### 中期(观察 5+ 个需求后)
如果效果显著,考虑升级为完整方案:
- 增加 Alignment Checkpoint(每模块对齐检查)
- 增加详细的技术栈清单模板
- 增加分步实现的每步验证要求
### 长期(跨项目验证后)
- 提取通用技术栈清单模板(Java/Go/Python 等)
- 建立参考实现库(常见模式的最佳实践)
- 自动化部分调研步骤(Grep 脚本、清单生成)
---
## 实施检查清单
### 立即验证
- [ ] `phase-contracts.md` 文件已更新
- [ ] grill 阶段增加了技术实现维度
- [ ] apply 阶段增加了 Pre-apply Checkpoint
- [ ] apply 退出条件增加了 2 条新检查
- [ ] 文件语法无误,可以正常解析
### 下次执行验证
- [ ] agent 是否正确识别触发条件
- [ ] agent 是否执行了完整的 3 步调研
- [ ] 技术栈清单是否写入 decisions.md
- [ ] 是否有效减少了返工次数
- [ ] 核心功能是否避免了空实现
---
## 附录:复盘案例链接
- 原始复盘文档: `skill-workbench/docs/sm-flow/sm-flow-execution-review-shandong-intent-sync.md`
- 修改前版本: phase-contracts.md (commit: 待补充)
- 修改后版本: phase-contracts.md (commit: 待补充)