- 新增 code-drive schema(5 阶段:requirements -> design -> plan -> tasks -> apply) - 每阶段含 instruction、self-review、用户确认门和工具集成指引 - apply 支持阻塞回退机制(blocker.md + blocker-revise.md skill) - apply 支持 subagent 并行执行独立任务 - TodoWrite 职责区分:撰写阶段跟踪文档撰写流程,apply 跟踪执行进度 - 将 OpenSpec 子模块移至 references/,新增 superpowers 和 spec-kit 参考 - 添加项目规范 AGENT.md
5.5 KiB
5.5 KiB
blocker-revise
当 OpenSpec code-drive 的 apply 阶段生成 blocker.md 并暂停时,按照本提示词修订规划 artifacts。目标是修正不成立的部分,而不是强行继续实现。
输入
- 当前 OpenSpec change 目录
blocker.mdrequirements.mddesign.mdplan.mdtasks.mdopenspec/schemas/code-drive/schema.yaml(用于读取各 artifact 的 instruction)
工作流
1. 阅读并理解阻塞
阅读 blocker.md,识别:
- 阻塞点的本质(不是症状)
- 当前位置:任务编号、
plan.md阶段、相关文件 - 已尝试的方案及失败原因(避免重复)
blocker.md建议的修订目标
2. 影响分析
根据 blocker.md 的影响范围,系统分析上下游影响链:
- 如果
requirements.md需要修订:检查design.md的哪些决策依赖它,再检查plan.md的哪些阶段受影响,最后检查tasks.md的哪些 checkbox 需要取消 - 如果
design.md需要修订:检查plan.md的哪些阶段依赖它,再检查tasks.md的哪些 checkbox 需要取消 - 如果
plan.md需要修订:检查tasks.md的哪些 checkbox 依赖它,以及是否有下游阶段依赖被阻塞阶段的输出 - 如果
tasks.md需要修订:只影响当前任务及其直接依赖
记录每个 artifact 的影响程度:必须修订 / 可能受影响 / 无影响。
3. 确定修订入口
根据影响分析,确定需要修订的最上游 artifact:
- 如果需要修订
requirements.md:从 requirements 开始,依次修订 design、plan、tasks - 如果需要修订
design.md:从 design 开始,依次修订 plan、tasks - 如果需要修订
plan.md:从 plan 开始,修订 tasks - 如果只需要修订
tasks.md:只修订 tasks
4. 用户决策
让用户从 blocker.md 中列出的可选方案中选择。如果选项不足,提出 2-3 个方案并说明取舍。工具支持时优先使用 question/choice 工具。
5. 执行修订
从修订入口开始,按正常 code-drive 流程逐层修订下游 artifacts。
每个 artifact 的修订必须遵循该 artifact 的 instruction 和 template:
- 读取
schema.yaml中该 artifact 的instruction - 读取该 artifact 的
template - 按 instruction 的工作规则和必需章节进行修订
- 确保修订后的 artifact 符合 template 结构
修订范围原则:
- 只改错误的部分,不重写整个章节(除非整个章节的基础假设不成立)
- 改了
plan.md阶段的实现步骤时,同步更新tasks.md对应 checkbox 的描述 - 改了
design.md的关键决策时,检查plan.md的代码模式是否需要同步,但不自动重写 - 改了
requirements.md时,逐层向下检查影响,每层只改受影响的部分 - 如果修订导致
tasks.md分组结构变化,重新对齐 plan -> tasks 映射
保留已完成任务:
- 已完成且不受阻塞影响的 tasks:保留 checkbox
- 已完成但被阻塞证明无效的 tasks:取消 checkbox,并在修订记录中说明原因
- 未完成的 tasks:根据修订结果更新描述或删除
- 如果阶段需要拆分:在
plan.md中新增阶段,将已完成部分和待完成部分分开
6. 修订后验证
每个被修订的 artifact 完成后,执行以下一致性检查:
Instruction 合规性:
- 每个被修订的 artifact 是否符合其 instruction 中的工作规则
- 每个被修订的 artifact 是否包含其 instruction 中要求的必需章节
- 每个被修订的 artifact 是否符合其 template 结构
上下游一致性:
- 需求覆盖:
requirements.md的每条需求是否仍有design.md决策覆盖 - 决策落地:
design.md的每个关键决策是否在plan.md中有实现路径 - 阶段覆盖:
plan.md的每个阶段是否在tasks.md中有对应分组 - 任务可追溯:
tasks.md的每个 checkbox 是否能回溯到plan.md的某个阶段 - 验证闭环:
design.md的“验证方向”是否在plan.md的“验证策略”中有体现
7. 处理 blocker.md
在 blocker.md 末尾追加“修订记录”:
## 修订记录
- 选择方案:
- 选择理由:
- 修改的 artifacts:
- `xxx.md`:具体变更描述
- `xxx.md`:具体变更描述
- 被取消勾选的 tasks:
- X.Y:取消原因
按项目约定保留或归档 blocker.md(建议保留作为审计线索)。
8. 完成
告诉用户重新运行 /opsx:apply <change-name>;apply 应跳过已完成 checkbox 并从修订后的待办任务继续。
规则
- 除非用户明确要求,不要在使用本提示词时实现代码;本提示词只负责修订规划 artifacts。
- 不要默认重写全部 artifacts,只修订解决阻塞所需的最小上游点及其下游影响。
- 不要未经用户确认新增需求、依赖、架构方向或范围。
- 不要取消已完成任务的勾选,除非阻塞证明该已完成工作不正确。
- 每个被修订的 artifact 必须遵循其 instruction 和 template,即使只是局部修订。
- 如果工具支持,使用 todo/plan 工具跟踪修订流程,但最终事实必须写回 artifacts。
完成检查
blocker.md已追加修订记录,并被保留或归档。- 选定的修订方向已记录在受影响 artifact 中。
- 每个被修订的 artifact 符合其 instruction 的工作规则和必需章节。
- 下游 artifacts 与修订后的上游内容一致。
- 已完成任务的 checkbox 被保留,除非明确失效。
- 用户知道需要重新运行 apply 继续实现。