[ contents ]
指南

编辑与迭代变更

变更中的每个产物都只是一个 Markdown 文件,你可以随时编辑。 没有锁定的"规划阶段",没有审批门禁,也没有需要进入的特殊编辑模式。想在开始构建之后修改提案?打开 proposal.md 改掉它。在实现到一半时发现设计错了?修好 design.md 继续往下走。这就是全部答案,而且是刻意为之。

本页是为那个你想"等等,我能回去改那个吗?"的时刻准备的。能。以下是针对每种常见情况的做法。

编辑任何东西的两种方式

你始终两者都有:

  1. 直接编辑文件。 产物是 rasen/changes/<name>/ 里的纯 Markdown。在你的编辑器里打开 proposal.mddesign.mdtasks.md,或 specs/ 下的某条增量规格并修改它。不需要别的任何操作。

  2. 让你的 AI 修订它。 在聊天里,直接说出你想要的:"把提案更新成去掉缓存的想法、加一节限流,"或者"设计应该用队列,而不是轮询。"AI 会用变更的其余部分作为上下文,替你编辑产物。

哪种适合当下就用哪种。小的措辞微调?编辑文件。实质性的重新思考?让 AI 在完整上下文下修订。

"我已经开始了,怎么更新提案(或规格)?"

直接更新它就好。同一个变更,被精炼。

如果你使用扩展命令,自然的流程是:编辑产物,然后运行 /rasen:continue 从新状态接续,或者运行 /rasen:apply 继续按更新后的方案实现。如果你用的是默认的 core 命令,编辑产物后运行 /rasen:apply;它读取的是当前文件,所以它针对产物现在所说的内容来构建。

心智模型:产物是活着的方案,而不是一份签署过的合同。AI 总是从它们的当前内容出发工作,所以编辑它们就是在引导工作。

You: I want to change the approach in this change.

You: [edit design.md, or tell the AI:]
     Update design.md to use a background job instead of a synchronous call.

AI:  Updated design.md. The task list still fits; want me to continue applying?

You: /rasen:apply

这回答了一个非常常见的问题:没有单独的"更新提案"命令,因为你不需要一个。文件就是唯一事实来源,而编辑它(亲手或通过 AI)就是更新。

"实现之后我怎么回到审查?"

你不必"回去",因为你从未离开。工作流是流动的:审查、编辑和实现并不是你被困在其中的顺序阶段。

具体来说,在做一些 /rasen:apply 的工作之后:

  • 想重新审视方案?打开产物读它们,或者在终端运行 rasen show <change> 获得一个整合视图。
  • 发现要改的东西?编辑产物(或让 AI 改),然后继续。
  • 想要一个结构化的检查来确认代码匹配方案?运行 /rasen:verify(扩展命令)。它会报告完整性、正确性和一致性,而不阻止任何东西。参见工作流:验证

没有要返回的"审查阶段",因为审查是你随时都能做的事,包括实现之后。

"我亲手改了代码。怎么把它和 rasen 对账?"

这种情况经常发生,完全没问题。你在编辑器里改了点东西,现在代码和产物对不上了。按照哪个方向是真的,把它们重新同步:

  • 代码现在是对的,规格过时了。 更新增量规格(如有相关,也包括任务)来描述你实际交付的行为。在你归档之前规格应当匹配现实,因为归档会把规格合并进你的事实来源。
  • 规格是对的,代码漂移了。 继续构建或修复,直到代码匹配规格。

一种快速暴露不匹配的方法是 /rasen:verify:它读取你的产物和你的代码,并告诉你它们在哪里分叉。把它的输出当作一份对账的待办清单,等它们一致了再归档。

原则是:在归档时,你的规格会成为记录在案的真相。所以在归档之前,让规格对代码所做的事保持诚实。欢迎手动编辑;只是别让它们悄悄地把规格弄成不一致。

打磨一份你不满意的提案

如果一份生成的提案没达标,你有三个不错的做法:

  • 就地迭代。 告诉 AI 哪里不对("范围太宽了,去掉管理功能")让它修订。最便宜,通常也最对。
  • 先探索,再重新提案。 如果问题在于想法本身不清楚,退回到 /rasen:explore,把它想清楚,让一份更锋利的提案从中产生。参见先探索
  • 从头开始。 如果意图发生了根本性变化,一个新的变更可能比修补旧的更清晰。

最后这一招有它自己的决策指南,紧接其后。

何时更新 vs 何时新建变更

简短版本:当它是同一份工作的精炼时就更新;当意图发生了根本性变化、或范围膨胀成了不同的工作时就新建。

  • 同一个目标、更好的方法?更新。
  • 范围收窄(先交付 MVP,更多以后再说)?更新,然后归档,然后为第二阶段新建一个变更。
  • 问题本身变了("添加深色模式"变成了"构建一整套主题系统")?新建变更。

工作流:何时更新 vs 从头开始里有一份完整的流程图和示例,在概念:何时更新 vs 从头开始里有更深入的讨论。

关于任务的一点说明

tasks.md 是一份活着的清单,不是一份冻结的方案。在实现过程中,你可以添加你发现的任务、删掉结果证明没必要的任务、或重新排序。AI 在 /rasen:apply 期间完成它们时会勾选掉,并且如果你晚些时候回来,它会从第一个未勾选的任务恢复。中途编辑这份清单是意料之中的事。

下一步去哪

  • 工作流 —— 模式,以及更新 vs 新建的决策指南
  • 审查变更 —— 在构建之前对方案的两分钟通读
  • 先探索 —— 当一个想法需要重新思考时退回去的地方
  • 命令 —— /rasen:continue/rasen:apply/rasen:verify 的详解
  • 概念:产物 —— 每个产物的用途