Install
openclaw skills install @paudyyin/incremental-implementationImplement changes as small, tested, and verified vertical slices ensuring each increment is complete, working, and independently deployable or rollbackable.
openclaw skills install @paudyyin/incremental-implementation-- name: incremental-implementation version: 1.0.0 description: "Deliver changes in thin vertical slices �� implement, test, verify, then expand. Use when implementing multi-file changes, building features from task breakdowns, refactoring, or writing 100+ lines." triggers:
来源:Anthropic 官方 incremental-implementation skill�?> 核心理念:Build in thin vertical slices �?实现一块、测试、验证、再扩展�?
你是一个增量实现专家,专注于将大功能拆解为可管理、可测试、可回滚的小切片。每个增量都让系统处于可工作、可测试的状态。这是让大功能变得可控的执行纪律�?
*不适用�? 单文件、单函数的最小范围变更�?
┌──────────────────────────────────────�?�? �?�? Implement ──�?Test ──�?Verify ──�? �?�? �? �? �?�? └───── Commit ◄─────────────�? �?�? �? �?�? �? �?�? Next slice �?�? �?└──────────────────────────────────────�?```
对每个切片:
1. **实现** 最小完整功能块
2. **测试** �?运行测试套件(或写测试)
3. **验证** �?确认切片按预期工作(测试通过、构建成功、手动检查)
4. **提交** �?用描述性消息保存进度(参见 `git-workflow-and-versioning`�?5. **进入下一切片** �?前进,不重启
### 增量循环完成条件
每个切片完成后必须满足:
- **完成条件**:当前切片代码已提交(git commit),测试通过(或手动验证通过),系统处于可工作状态,可独立回滚到此切片�?
## 切片策略
### 策略1: 垂直切片(首选)
构建一个完整的端到端路径:
切片 1: 创建任务(DB + API + 基础 UI�? �?测试通过,用户可通过 UI 创建任务
切片 2: 列出任务(查�?+ API + UI�? �?测试通过,用户可看到任务列表
切片 3: 编辑任务(更�?+ API + UI�? �?测试通过,用户可修改任务
切片 4: 删除任务(删�?+ API + UI + 确认�? �?测试通过,完�?CRUD
每个切片交付可工作的端到端功能�?
### 策略2: 契约优先切片
当前后端需要并行开发时�?
切片 0: 定义 API 契约(类型、接口、OpenAPI 规范�?切片 1a: 基于契约实现后端 + API 测试 切片 1b: 基于匹配契约�?mock 数据实现前端 切片 2: 集成并端到端测试
### 策略3: 风险优先切片
先处理最高风险或最不确定的部分�?
切片 1: 证明 WebSocket 连接可用(最高风险) 切片 2: 在已证明的连接上构建实时更新 切片 3: 添加离线支持和重�?```
如果切片 1 失败,在投入切片 2-3 之前就发现了�?
写代码前问:"能工作的最简单的东西是什么?"
写完后对照检查:
简单性检查:
�?一个通知用通用 EventBus + 中间件管�?�?简单函数调�?
�?两个相似组件用抽象工厂模�?�?两个直接组件 + 共享工具
�?三个表单用配置驱动表单构建器
�?三个表单组件
三行相似代码好过早熟抽象。先实现天真的、显然正确的版本。用测试证明正确性后再优化�?
只碰任务需要的东西�? *不要�?
注意到但不碰�?- src/utils/format.ts 有未使用�?import(与本任务无关)
- auth 中间件可以用更好的错误消息(单独任务�?�?需要我为这些创建任务吗�?```
### Rule 1: 一次一件事
每个增量改变一件逻辑上的事。不混合关注点:
差:一个提交添加新组件、重构现有组件、更新构建配置�?好:三个独立提交——每个变更一个�?```
每个增量后,项目必须能构建且现有测试通过。不在切片间留下破损状态�?
如果功能还没准备好给用户但需要合并增量:
// Feature flag for work-in-progress
const ENABLE_TASK_SHARING = process.env.FEATURE_TASK_SHARING === 'true';
if (ENABLE_TASK_SHARING) {
// New sharing UI
}
这让你可以合并小增量到主分支而不暴露未完成工作�?
新代码默认安全、保守行为:
// 安全:默认禁用,opt-in
export function createTask(data: TaskInput, options?: { notify?: boolean }) {
const shouldNotify = options?.notify ?? false;
// ...
}
每个增量应可独立回滚�?
指导 agent 增量实现时:
"实现计划中的任务 3�?
先从数据�?schema 变更�?API 端点开始�?先不�?UI——下个增量做�?
实现后运�?`npm test` �?`npm run build` 验证没有破坏�?
明确指定每个增量�?scope �?NOT scope�?
每个增量后验证:
npm test�?- [ ] 构建成功(npm run build�?- [ ] 类型检查通过(npx tsc --noEmit�?- [ ] Lint 通过(npm run lint�?- [ ] 新功能按预期工作| 借口 | 现实 |
|---|---|
| "我最后一起测" | Bug 复合。切�?1 �?bug 让切�?2-5 都错。每个切片都测�? |
| "一次做完更�? | 感觉更快,直到东西坏了找不到 500 行变更中哪行导致的�? |
| "变更太小不值得单独提交" | 小提交免费。大提交隐藏 bug 让回滚痛苦�? |
| "以后�?feature flag" | 功能不完整就不应用户可见。现在加 flag�? |
| "这个重构够小可以包含" | 混合功能的重构让两者都更难审查调试。分开�? |
| "再跑一次构建确�? | 成功运行后,重复同一命令不增加信息,除非代码已变更�? |
完成任务所有增量后�?
| 技�? | 关系 |
|---|---|
| coding-framework | 整体工作流框架,�?skill 提供具体执行纪律 |
| git-workflow-and-versioning | 每个切片的原子提交规�? |
| code-review | 增量提交使审查更容易 |
| debugging-and-error-recovery | 增量实现�?bug 定位更精�? |
| ci-cd-and-automation | CI 流水线自动验证每个增�? |
Version 1.0.0 �?来源:Anthropic 官方 incremental-implementation skill