Skip to content

Work 详细指南

概述

Work 是 Spec-First 工作流的第三步,目标是完成开发

输入: 实施计划(来自 Plan) 输出: 可运行的代码 + 测试

通过这个阶段,你将按计划逐步实现功能,保持与计划的一致性。

Work 执行流程


操作步骤

步骤 1: 启动 Work

bash
# 基本用法
/spec:work

# 指定计划文件
/spec:work docs/plans/2026-03-30-001-feat-auth-plan.md

AI 会先完整读取计划文档,然后向你确认理解是否正确。

步骤 1.5: 解析计划文档

Work 会识别计划中的关键结构:

计划结构Work 的处理方式
Implementation Units作为主要执行素材
Execution note记录每个单元的执行姿态(如 test-first)
Deferred to Implementation计划者留给执行阶段的问题,提前关注
Scope Boundaries明确的非目标,实施时回溯参考
Test Scenarios验证依据

步骤 2: 分支管理

如果已在功能分支上,Work 会询问是继续还是新建分支。

如果当前在默认分支(main/master),建议创建功能分支:

bash
# 创建新分支
git checkout -b feat/auth-login

# 推送到远程
git push -u origin feat/auth-login

步骤 3: 按计划执行

按照计划中的任务顺序逐个实现:

  • 先完成高优先级任务
  • 参考计划中的 Execution note 决定执行策略
  • 回溯 Scope Boundaries 防止范围蔓延
  • 保持代码提交的原子性

步骤 4: 持续验证

每完成一个任务后:

  • 运行相关测试
  • 验证功能是否符合预期
  • 记录遇到的问题和调整

步骤 4: 更新文档

实施过程中:

  • 更新代码注释
  • 记录重要决策
  • 更新 README(如需要)

最佳实践

提交策略对比

  • 小步快跑 - 频繁提交,每次提交一个完整功能点
  • 测试先行 - 关键逻辑先写测试
  • 保持专注 - 只实现计划中的内容,不添加额外功能
  • 及时沟通 - 遇到阻塞及时与 AI 讨论
  • 记录变更 - 如果偏离计划,记录原因

常见错误

  • 偏离计划 → ✅ 严格按计划执行,如需调整先更新计划
  • 过度优化 → ✅ 先实现功能,优化留到后续迭代
  • 忽略测试 → ✅ 边写代码边写测试
  • 大批量提交 → ✅ 小步提交,便于回滚
  • 不记录问题 → ✅ 记录所有遇到的问题和解决方案

示例

示例 1: 实施 OAuth 登录

任务 1: 安装依赖

bash
npm install passport passport-google-oauth20 passport-github2

任务 2: 配置 Passport

javascript
// config/passport.js
const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth20').Strategy;

passport.use(new GoogleStrategy({
  clientID: process.env.GOOGLE_CLIENT_ID,
  clientSecret: process.env.GOOGLE_CLIENT_SECRET,
  callbackURL: '/auth/google/callback'
}, (accessToken, refreshToken, profile, done) => {
  // 处理用户信息
}));

记录: 完成 Google OAuth 配置,测试通过


模板

markdown
# 实施记录:[功能名称]

## 已完成任务
- [x] 任务 1: [描述]
  - 提交:[commit hash]
  - 备注:[说明]

## 遇到的问题
### 问题 1: [标题]
- 现象:[描述]
- 原因:[分析]
- 解决:[方案]

## 偏离计划
- [如果有偏离,说明原因和调整]

判定标准

完成 Work 后,检查以下条件:

  • [ ] 所有计划任务已完成
  • [ ] 代码可运行,无明显错误
  • [ ] 关键功能有测试覆盖
  • [ ] 实施记录已更新
  • [ ] 代码已提交

全部满足后,进入 Review 阶段。


下一步

阅读 Review 详细指南 了解如何评审代码质量。