Skip to content

Latest commit

 

History

History
421 lines (286 loc) · 12 KB

File metadata and controls

421 lines (286 loc) · 12 KB

工作流

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

哲学:行动而非阶段

传统工作流迫使你通过阶段:规划、然后实施、然后完成。但实际工作并不完全适合这种框框。

OPSX 采用不同的方法:

传统(阶段锁定):

  规划 ────────► 实施 ────────► 完成
      │                       │
      │   "不能回退"           │
      └───────────────────────┘

OPSX(流畅行动):

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

关键原则:

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

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

工作流模式

快速功能

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

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

示例对话:

你:/opsx:new add-logout-button

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

你:/opsx:ff

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

你:/opsx:apply

AI:正在处理任务...
     ✓ 在页眉添加了登出按钮
     ✓ 实现了会话清除
     ✓ 添加了确认对话框
     所有任务完成!

你:/opsx:archive

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

最适合: 中小型功能、错误修复、直接变更。

探索性

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

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

示例对话:

你:/opsx:explore

AI:你想探索什么?

你:我想改进页面加载性能,但不确定瓶颈在哪里。

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

     我发现了三个主要瓶颈:
     1. 大尺寸未优化的图片
     2. ProductList 中的同步数据获取
     3. 上下文变化导致的重新渲染

     你想先解决哪个?

你:让我们处理数据获取问题。

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

AI:已创建变更。准备创建:proposal

你:/opsx:continue

AI:基于我们的探索创建提案...
     [撰写包含调查见解的提案]

     准备创建:specs, design
     你希望接下来做什么?

你:/opsx:continue

AI:正在创建规范...

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

并行变更

同时处理多个变更:

变更 A:/opsx:new ──► /opsx:ff ──► /opsx:apply(进行中)
                                         │
                                    上下文切换
                                         │
变更 B:/opsx:new ──► /opsx:ff ──────► /opsx:apply

示例对话:

你:我正在处理 add-dark-mode,但被拉去修复一个错误

你:/opsx:new fix-login-redirect

AI:已创建 openspec/changes/fix-login-redirect/

你:/opsx:ff

AI:✓ 已创建规划制品

你:/opsx:apply

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

你:/opsx:archive

AI:✓ 已归档 fix-login-redirect

你:让我们回到深色模式

你:/opsx:apply add-dark-mode

AI:恢复 add-dark-mode...
     从任务 2.3 继续:更新页眉...

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

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

你:/opsx:bulk-archive

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

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

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

     归档所有 3 个变更?

你:是

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

批量归档检测多个变更是否涉及相同规范,并通过检查实际实现来解决冲突。

完成变更

推荐的完成流程:

/opsx:apply ──► /opsx:verify ──► /opsx:archive
                    │                 │
              验证实施         如果需要会提示
              是否匹配         同步规范

验证:检查你的工作

/opsx:verify 从三个维度验证实施是否与你的制品匹配:

你:/opsx:verify

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

     完整性
     ✓ tasks.md 中所有 12 个任务已勾选
     ✓ 规范中所有需求都有对应的代码
     ⚠ 场景"不活动后会话超时"未测试

     正确性
     ✓ 实施符合规范意图
     ✓ 处理了场景中的边缘情况
     ✓ 错误状态匹配规范定义

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

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

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

验证检查内容:

维度 验证内容
完整性 所有任务完成、所有需求已实施、场景已覆盖
正确性 实施符合规范意图、处理了边缘情况
一致性 设计决策反映在代码中、模式一致

验证不会阻止归档,但会暴露你可能想先解决的问题。

归档:最终确定变更

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

你:/opsx:archive

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

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

     增量规范:尚未同步到主规范
     → 现在同步吗?

你:是

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

     变更已成功归档。

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

/opsx:ff vs /opsx:continue

何时使用什么

/opsx:ff vs /opsx:continue

情况 使用
需求明确,准备构建 /opsx:ff
探索中,想审查每个步骤 /opsx:continue
想在规范前迭代提案 /opsx:continue
时间紧迫,需要快速推进 /opsx:ff
复杂变更,需要控制 /opsx:continue

经验法则: 如果你能提前描述完整范围,使用 /opsx:ff。如果你在过程中逐步理解,使用 /opsx:continue

何时更新 vs 重新开始

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

更新现有变更的情况:

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

开始新变更的情况:

  • 意图根本性改变
  • 范围爆炸到完全不同的工作
  • 原始变更可以独立标记为"完成"
  • 补丁会混淆而非澄清
                     ┌─────────────────────────────────────┐
                     │     这是相同的工作吗?                 │
                     └──────────────┬──────────────────────┘
                                    │
                 ┌──────────────────┼──────────────────┐
                 │                  │                  │
                 ▼                  ▼                  ▼
          相同意图?              >50% 重叠?        原始变更能否
          相同问题?              相同范围?         在没有这些更改
                 │                  │         的情况下"完成"?
                 │                  │                  │
       ┌────────┴────────┐  ┌──────┴──────┐   ┌───────┴───────┐
       │                 │  │             │   │               │
      是                否  是            否   否              是
       │                 │  │             │   │               │
       ▼                 ▼  ▼             ▼   ▼               ▼
     更新              新建 更新         新建   更新            新建

示例:"添加深色模式"

  • "还需要支持自定义主题" → 新变更(范围爆炸)
  • "系统偏好检测比预期困难" → 更新(相同意图)
  • "先发布切换器,稍后添加偏好设置" → 更新然后归档,然后新变更

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

为什么重要:

  • 更易于审查和理解
  • 更清晰的归档历史
  • 可以独立发布
  • 需要时回滚更简单

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

在提交变更之前,先探索问题空间:

你:/opsx:explore

AI:你想探索什么?

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

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

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

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

探索在创建制品之前澄清思路。

归档前验证

使用 /opsx:verify 检查实施是否与制品匹配:

你:/opsx:verify

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

     ✓ tasks.md 中所有任务已勾选
     ✓ 规范中的需求有对应的代码
     ✓ 设计决策反映在实施中

     准备归档!

在关闭变更前发现不匹配。

清晰命名变更

好命名会让 openspec-cn list 更好用:

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

命令快速参考

有关完整命令详情和选项,请参阅命令

命令 目的 何时使用
/opsx:explore 思考想法 需求不明确、调查
/opsx:new 开始变更 开始任何新工作
/opsx:continue 创建下一个制品 逐步创建制品
/opsx:ff 创建所有规划制品 范围明确,准备构建
/opsx:apply 实施任务 准备编写代码
/opsx:verify 验证实施 归档前,发现不匹配
/opsx:sync 合并增量规范 可选—归档时会提示
/opsx:archive 完成变更 所有工作完成
/opsx:bulk-archive 归档多个变更 并行工作,批量完成

下一步

  • 命令 - 带选项的完整命令参考
  • 概念 - 深入探讨规范、制品和模式
  • 自定义 - 创建自定义工作流