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
This commit is contained in:
132
code-drive/prompts/blocker-revise.md
Normal file
132
code-drive/prompts/blocker-revise.md
Normal file
@@ -0,0 +1,132 @@
|
||||
# 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` 末尾追加“修订记录”:
|
||||
|
||||
```markdown
|
||||
## 修订记录
|
||||
|
||||
- 选择方案:
|
||||
- 选择理由:
|
||||
- 修改的 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 继续实现。
|
||||
Reference in New Issue
Block a user