工作流程

本指南涵盖 OpenSpec 的常见工作流程模式以及何时使用它们。有关基本设置,请参阅入门指南。有关命令参考,请参阅命令

哲学:行动,而非阶段

传统的工作流强迫你经历阶段:先规划,然后实施,然后完成。但现实工作并不完全符合这些框框。

OPSX 采用了不同的方法:

1
2
3
4
5
6
7
8
9
10
传统(阶段锁定):

PLANNING ────────► IMPLEMENTING ────────► DONE
│ │
│ "不能回去" │
└────────────────────┘

OPSX(流式行动):

proposal ──► specs ──► design ──► tasks ──► implement

关键原则:

  • 行动,而非阶段 - 命令是你可以做的事情,而不是你被困的阶段
  • 依赖关系是赋能者 - 它们显示什么是可能的,而不是下一步必须做什么

自定义: OPSX 工作流由定义工件序列的模式驱动。有关创建自定义模式的详细信息,请参阅自定义

两种模式

默认快速路径(core 配置)

新安装默认为 core,它提供:

  • /opsx:propose
  • /opsx:explore
  • /opsx:apply
  • /opsx:archive

典型流程:

1
/opsx:propose ──► /opsx:apply ──► /opsx:archive

扩展/完整工作流(自定义选择)

如果你想要明确的脚手架和构建命令(/opsx:new/opsx:continue/opsx:ff/opsx:verify/opsx:sync/opsx:bulk-archive/opsx:onboard),可以通过以下方式启用:

1
2
openspec config profile
openspec update

工作流程模式(扩展模式)

快速功能

当你知道要构建什么,只需要执行时:

1
/opsx:new ──► /opsx:ff ──► /opsx:apply ──► /opsx:verify ──► /opsx:archive

示例对话:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
You: /opsx:new add-logout-button

AI: Created openspec/changes/add-logout-button/
准备创建:proposal

You: /opsx:ff

AI: 正在创建所有规划工件...
✓ proposal.md
✓ specs/
✓ design.md
✓ tasks.md
准备实施!

You: /opsx:apply

AI: 正在完成任务...
✓ 将注销按钮添加到 header
✓ 实现了会话清除
✓ 添加了确认对话框
所有任务完成!

You: /opsx:archive

AI: ✓ 已合并规范
✓ 已归档变更

最适合: 中小型功能、错误修复、简单的变更。

探索式

当需求不明确或需要先调查时:

1
/opsx:explore ──► /opsx:new ──► /opsx:continue ──► ... ──► /opsx:apply

示例对话:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
You: /opsx:explore

AI: 你想探索什么?

You: 我想提高页面加载性能,但不确定瓶颈在哪里。

AI: 让我帮你调查...
[分析包大小,识别慢查询,审查组件渲染模式]

我发现了三个主要瓶颈:
1. 大的未优化图像
2. ProductList 中的同步数据获取
3. 来自上下文更改的重新渲染

你想先解决哪个?

You: 让我们先解决数据获取问题。

You: /opsx:new optimize-product-list-fetching

AI: Created change. 准备创建:proposal

You: /opsx:continue

AI: 根据我们的探索创建提案...
[编写提案,整合调查见解]

准备创建:specs, design
你接下来想要哪个?

You: /opsx:continue

AI: 正在创建规范...

最适合: 性能优化、调试、架构决策、不明确的需求。

并行变更

同时处理多个变更:

1
2
3
4
5
变更 A: /opsx:new ──► /opsx:ff ──► /opsx:apply (进行中)

上下文切换

变更 B: /opsx:new ──► /opsx:ff ──────► /opsx:apply

示例对话:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
You: 我正在处理 add-dark-mode 但被拉去修复错误

You: /opsx:new fix-login-redirect

AI: Created openspec/changes/fix-login-redirect/

You: /opsx:ff

AI: ✓ 已创建规划工件

You: /opsx:apply

AI: 正在处理 fix-login-redirect...
[实施修复]
所有任务完成!

You: /opsx:archive

AI: ✓ 已归档 fix-login-redirect

You: 让我们回到暗模式

You: /opsx:apply add-dark-mode

AI: 正在恢复 add-dark-mode...
从任务 2.3 继续:更新 Header...

最适合: 并行工作流、紧急中断、团队协作。

当有多个完成的变更时,使用 /opsx:bulk-archive

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
You: /opsx:bulk-archive

AI: 发现 3 个完成的变更:
- add-dark-mode (所有任务完成)
- fix-login-redirect (所有任务完成)
- update-footer (所有任务完成)

检查规范冲突...
⚠ add-dark-mode 和 update-footer 都触及 specs/ui/

检查代码库以解决...
两个变更都已实现。将按时间顺序应用。

归档所有 3 个变更?

You: 是

AI: ✓ 已归档 add-dark-mode
✓ 已归档 fix-login-redirect
✓ 已归档 update-footer
规范合并顺序:add-dark-mode → update-footer

批量归档检测多个变更何时触及相同的规范,并通过检查实际实施的内容来解决冲突。

完成变更

推荐的完成流程:

1
2
3
4
/opsx:apply ──► /opsx:verify ──► /opsx:archive
│ │
验证 提示同步
实现 如需要

Verify: 检查你的工作

/opsx:verify 在三个维度上验证实现与工件的一致性:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
You: /opsx:verify

AI: 正在验证 add-auth...

COMPLETENESS
✓ tasks.md 中的所有 12 个任务都已检查
✓ 规范中的所有需求都有相应的代码
⚠ 场景"不活动后会话超时"未测试

CORRECTNESS
✓ 实现与规范意图匹配
✓ 场景中的边缘情况已处理
✓ 错误状态与规范定义匹配

COHERENCE
✓ 设计决策反映在代码结构中
✓ 命名约定与 design.md 一致
⚠ 设计提到"事件驱动"但实现使用轮询

SUMMARY
─────────────────────────────
关键问题:0
警告:2
准备归档:是(有警告)

建议:
1. 为会话超时场景添加测试
2. 考虑重构为事件驱动(如设计所述),或更新 design.md

verify 检查的内容:

维度 验证内容
Completeness 所有任务完成,所有需求已实施,场景已覆盖
Correctness 实现与规范意图匹配,边缘情况已处理
Coherence 设计决策反映在代码中,模式一致

Verify 不会阻止归档,但会显示你可能想要先解决的问题。

Archive: 完成变更

/opsx:archive 完成变更并将其移动到归档:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
You: /opsx:archive

AI: 正在归档 add-auth...

工件状态:
✓ proposal.md 存在
✓ specs/ 存在
✓ design.md 存在
✓ tasks.md 存在(12/12 任务完成)

Delta 规范:尚未同步到主规范
→ 现在要同步吗?

You: 是

AI: ✓ 已将规范同步到 openspec/specs/auth/spec.md
✓ 移动到 openspec/changes/archive/2025-01-24-add-auth/

变更归档成功。

如果规范未同步,归档会提示。它不会因未完成的任务而阻止,但会警告。

何时使用什么

/opsx:ff vs /opsx:continue

情况 使用
需求明确,准备构建 /opsx:ff
探索中,想要审查每一步 /opsx:continue
在规范之前想要迭代提案 /opsx:continue
时间压力,需要快速移动 /opsx:ff
复杂变更,想要控制 /opsx:continue

经验法则: 如果你能够预先描述完整范围,使用 /opsx:ff。如果你在过程中弄清楚,使用 /opsx:continue

何时更新 vs 开始新变更

一个常见问题:何时更新现有变更是可以的,何时应该开始新的变更?

更新现有变更时:

  • 相同意图,执行优化
  • 范围缩小(MVP 优先,其余稍后)
  • 学习驱动的更正(代码库不是你预期的)
  • 基于实现发现的设计调整

开始新变更时:

  • 意图根本改变
  • 范围爆发到完全不同的工作
  • 原始变更可以独立标记为"完成"
  • 补丁会比阐明更混乱
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
                 ┌─────────────────────────────────────┐
│ 这是相同的工作吗? │
└──────────────┬──────────────────────┘

┌──────────────────┼──────────────────┐
│ │ │
▼ ▼ ▼
相同意图? >50% 重叠? 原始可以
相同问题? 相同范围? 在没有这些
│ │ 变更的情况下
│ │ "完成"?
┌────────┴────────┐ ┌──────┴──────┐ ┌───────┴───────┐
│ │ │ │ │ │
YES NO YES NO NO YES
│ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼
UPDATE NEW UPDATE NEW UPDATE NEW

示例:“添加暗模式”

  • “还需要支持自定义主题” → 新变更(范围爆发)
  • “系统首选项检测比预期更难” → 更新(相同意图)
  • “让我们先发布切换,稍后添加首选项” → 更新然后归档,然后新变更

最佳实践

保持变更聚焦

每个更改一个逻辑工作单元。如果你正在"添加功能 X 并且还重构 Y",考虑两个单独的变更。

为什么重要:

  • 更容易审查和理解
  • 更清晰的归档历史
  • 可以独立发布
  • 更简单的回滚(如果需要)

为不明确的需求使用 /opsx:explore

在承诺变更之前,探索问题空间:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
You: /opsx:explore

AI: 你想探索什么?

You: 我们应该如何处理 API 的速率限制?

AI: 让我调查你当前的设置和选项...
[研究代码库,考虑模式]

我看到我们可以采用三种方法:
1. 基于中间件(简单,每端点)
2. Redis 后端(可扩展,共享状态)
3. 每用户令牌桶(公平,复杂)

你当前的堆栈建议 #1 或 #2。你的规模如何?

探索在创建工件之前澄清思维。

在归档前验证

使用 /opsx:verify 检查实现是否与工件匹配:

1
2
3
4
5
6
7
8
9
You: /opsx:verify

AI: 正在验证 add-dark-mode...

✓ tasks.md 中的所有任务都已检查
✓ 规范中的需求有相应的代码
✓ 设计决策反映在实现中

准备归档!

在关闭变更之前捕获不匹配。

清楚地命名变更

好的名称让 openspec list 有用:

1
2
3
4
5
好的:                          避免:
add-dark-mode feature-1
fix-login-redirect update
optimize-product-query changes
implement-2fa wip

命令快速参考

有关命令详细信息和选项,请参阅命令

命令 目的 何时使用
/opsx:propose 创建变更 + 规划工件 快速默认路径(core 配置)
/opsx:explore 思考想法 不明确的需求、调查
/opsx:new 开始变更脚手架 扩展模式,明确的工件控制
/opsx:continue 创建下一个工件 扩展模式,逐步工件创建
/opsx:ff 创建所有规划工件 扩展模式,清晰范围
/opsx:apply 实现任务 准备编写代码
/opsx:verify 验证实现 扩展模式,归档前
/opsx:sync 合并 delta 规范 扩展模式,可选
/opsx:archive 完成变更 所有工作完成
/opsx:bulk-archive 归档多个变更 扩展模式,并行工作

下一步

  • 命令 - 完整命令参考和选项
  • 概念 - 深入了解规范、工件和模式
  • 自定义 - 创建自定义工作流