编辑与迭代变更
变更中的每一个产物都只是一个可以随时编辑的 Markdown 文件。 不存在锁定的「规划阶段」,没有审批门禁,也不需要进入任何特殊编辑模式。开始构建后想修改提案?打开 proposal.md 改就行。实现中途发现设计有问题?修复 design.md 然后继续就好。这就是全部答案,而且是刻意设计的。
本页适用于你冒出「等等,我能回去改那个吗?」念头的时刻。答案是肯定的。以下是各类常见场景的操作方法。
两种编辑任意内容的方式
你始终可以选用以下两种方式:
- 直接编辑文件。 产物是存放在
openspec/changes/<name>/下的纯 Markdown 文件。在编辑器中打开proposal.md、design.md、tasks.md或specs/下的增量规格说明文件,修改即可,无需其他操作。 - 让 AI 帮你修订。 在对话中直接说出你的需求即可,比如「更新提案,删除缓存方案,新增速率限制章节」,或者「设计应该用队列,不要用轮询」。AI 会以变更中的其余内容为上下文,帮你编辑对应的产物。
根据场景选择合适的方式即可。只是微调措辞?直接编辑文件。需要重新思考核心内容?让 AI 带着完整上下文帮你修订。
「开始构建后如何更新提案(或规格说明)?」
直接更新就好,属于同一项变更的优化调整。
如果你使用的是扩展命令,自然流程是:编辑产物后,运行 /opsx:continue 从新状态继续,或运行 /opsx:apply 按照更新后的计划继续实现。如果你使用的是默认的核心命令,编辑产物后运行 /opsx:apply 即可;该命令会读取当前文件,因此会基于产物当前的内容开展工作。
核心认知:产物是实时生效的计划,而非签署后不可更改的合同。AI 始终基于产物的当前内容开展工作,因此编辑产物就是在引导工作方向。
text
你:我想调整这项变更的方案。
你:[编辑 design.md,或告知 AI:]
将 design.md 更新为使用后台任务,而非同步调用。
AI:已更新 design.md。任务列表仍然适用,需要我继续应用吗?
你:/opsx:apply这解答了一个非常常见的问题:不存在独立的「更新提案」命令,因为你根本不需要它。文件就是唯一可信来源,无论是手动编辑还是通过 AI 编辑文件,就是更新操作本身。
「实现后如何回到审查环节?」
你根本不需要「回去」,因为你从未离开过。整个工作流是灵活的:审查、编辑和实现并非你被困其中的顺序阶段。
具体来说,在完成若干 /opsx:apply 工作后:
- 想重新查看计划?打开产物阅读即可,或在终端运行
openspec show <change>获取整合视图。 - 发现需要修改的内容?编辑产物(或让 AI 帮你编辑),然后继续即可。
- 想对代码和计划的一致性做结构化检查?运行
/opsx:verify(扩展命令)。它会输出完整性、正确性和一致性报告,且不会阻塞任何操作。详见工作流:验证。
不存在需要返回的「审查阶段」,因为审查是你可以随时开展的操作,包括实现完成后。
「我手动修改了代码,如何与 OpenSpec 保持一致?」
这种情况非常常见,完全没问题。你在编辑器中调整了某些内容,现在代码和产物出现了不一致。你可以根据实际情况,按任意方向让两者重新同步:
- 代码现在是正确的,规格说明已过时。 更新增量规格说明(以及相关的任务,如果有的话),描述你实际交付的行为。归档前需要让规格说明和实际情况一致,因为归档操作会将规格说明合并到你的可信来源中。
- 规格说明是正确的,代码出现了偏差。 继续构建或修复,直到代码和规格说明一致。
快速定位不一致的简便方式是运行 /opsx:verify:它会读取你的产物和代码,告诉你两者存在差异的位置。你可以把它的输出当作一致性调整的待办清单,等两者一致后再执行归档。
核心原则:归档时,你的规格说明会成为官方记录的事实依据。因此在归档前,请确保规格说明如实反映代码的实际行为。手动编辑是被允许的,只是不要让手动编辑悄悄导致规格说明和代码不同步。
优化你不满意的提案
如果生成的提案不符合预期,你可以选择以下三种有效操作:
- 原地迭代优化。 告诉 AI 哪里有问题(比如「范围太宽泛,删掉管理功能相关的内容」),让它帮你修订。这是成本最低的方式,也通常是最有效的。
- 先探索,再重新提案。 如果问题出在想法本身不够清晰,可以先退回运行
/opsx:explore,梳理清楚思路,再生成更精准的提案。详见先探索。 - 重新开始。 如果需求目标已经发生了根本性变化,新建一项变更会比修补旧变更更清晰。
最后一种操作有对应的决策指南,见下一节。
何时更新变更、何时新建变更
简而言之:如果是同一项工作的优化调整就更新变更;如果需求目标发生了根本性变化,或范围扩大成了完全不同的工作,就新建变更。
- 目标一致,只是方案更优?更新变更。
- 范围缩小(现在先交付最小可行产品,后续再加功能)?更新变更,归档后为第二阶段新建一项变更。
- 问题本身发生了变化(比如「添加深色模式」变成了「搭建完整的主题系统」)?新建变更。
完整的决策流程图和实操案例见工作流:何时更新 vs 重新开始,更深入的解读见OPSX:何时更新 vs 重新开始。
关于任务的说明
tasks.md 是动态更新的待办清单,而非固定不变的方案。实现过程中,你可以添加新发现的任务,删除确认不必要的任务,也可以调整任务顺序。AI 会在执行 /opsx:apply 的过程中自动勾选已完成的任务,如果你之后回来继续,它会从第一个未勾选的任务开始恢复。在任务进行中编辑列表是预期内的正常操作。