Files
openspec-shcema/code-drive/prompts/blocker-revise.md
lanyuanxiaoyao fe55c532b8 feat: 添加 code-drive 自定义 schema 与参考资料重组
- 新增 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
2026-06-07 13:35:26 +08:00

5.5 KiB
Raw Blame History

blocker-revise

当 OpenSpec code-drive 的 apply 阶段生成 blocker.md 并暂停时,按照本提示词修订规划 artifacts。目标是修正不成立的部分而不是强行继续实现。

输入

  • 当前 OpenSpec change 目录
  • blocker.md
  • requirements.md
  • design.md
  • plan.md
  • tasks.md
  • openspec/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

  1. 读取 schema.yaml 中该 artifact 的 instruction
  2. 读取该 artifact 的 template
  3. 按 instruction 的工作规则和必需章节进行修订
  4. 确保修订后的 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 继续实现。