All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 4m27s
Docker Build & Deploy / Deploy to Production (push) Successful in 7s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 1s
4.7 KiB
4.7 KiB
name, description, license, compatibility, metadata
| name | description | license | compatibility | metadata | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| openspec-continue-change | Continue working on an OpenSpec change by creating the next artifact. Use when the user wants to progress their change, create the next artifact, or continue their workflow. | MIT | Requires openspec CLI. |
|
通过创建下一个 artifact 来继续处理变更。
输入:可选地指定变更名称。如果省略,则检查是否可以从对话上下文推断。如果模糊或不明确,您必须提示用户选择可用的变更。
步骤
-
如果未提供变更名称,提示选择
运行
openspec list --json获取按最近修改时间排序的可用变更。然后使用 AskUserQuestion 工具让用户选择要处理的变更。将最近修改的前 3-4 个变更作为选项呈现,显示:
- 变更名称
- Schema(如果存在
schema字段则显示,否则为 "spec-driven") - 状态(例如 "0/5 个任务"、"完成"、"无任务")
- 最近修改时间(来自
lastModified字段)
将最近修改的变更标记为 "(推荐)",因为这可能是用户想要继续的内容。
重要: 不要猜测或自动选择变更。始终让用户选择。
-
检查当前状态
openspec status --change "<name>" --json解析 JSON 以了解当前状态。响应包括:
schemaName: 正在使用的工作流 schema(例如 "spec-driven")artifacts: 包含状态的 artifacts 数组("done"、"ready"、"blocked")isComplete: 指示所有 artifacts 是否完成的布尔值
-
根据状态采取行动:
如果所有 artifacts 都已完成(
isComplete: true):- 祝贺用户
- 显示最终状态,包括使用的 schema
- 建议: "所有 artifacts 已创建! 现在可以实施此变更或归档它。"
- 停止
如果 artifacts 准备创建(状态显示
status: "ready"的 artifacts):- 从状态输出中选择第一个
status: "ready"的 artifact - 获取其说明:
openspec instructions <artifact-id> --change "<name>" --json - 解析 JSON。关键字段是:
context: 项目背景(对您的约束 - 不要包含在输出中)rules: Artifact 特定规则(对您的约束 - 不要包含在输出中)template: 用于输出文件的结构instruction: Schema 特定指导outputPath: artifact 的写入位置dependencies: 已完成的 artifacts,读取以获取上下文
- 创建 artifact 文件:
- 读取任何已完成的依赖文件以获取上下文
- 使用
template作为结构 - 填充其各个部分 - 在写入时应用
context和rules作为约束 - 但不要将它们复制到文件中 - 写入说明中指定的输出路径
- 显示创建的内容以及现在解锁的内容
- 创建一个 artifact 后停止
如果没有 artifacts 准备好(全部被阻塞):
- 使用有效的 schema 不应该发生这种情况
- 显示状态并建议检查问题
-
创建 artifact 后,显示进度
openspec status --change "<name>"
输出
每次调用后,显示:
- 创建了哪个 artifact
- 正在使用的 Schema 工作流
- 当前进度(已完成 N/M)
- 现在解锁了哪些 artifacts
- 提示: "想要继续吗? 只需让我继续或告诉我下一步该做什么。"
Artifact 创建指南
artifact 类型及其用途取决于 schema。使用说明输出中的 instruction 字段来了解要创建什么。
常见 artifact 模式:
spec-driven schema(proposal → specs → design → tasks):
- proposal.md: 如果不清楚,询问用户关于变更的信息。填写为什么、什么变更、能力、影响。
- Capabilities 部分至关重要 - 列出的每个能力都需要一个 spec 文件。
- specs//spec.md: 为 proposal 的 Capabilities 部分列出的每个能力创建一个 spec(使用能力名称,而不是变更名称)。
- design.md: 记录技术决策、架构和实施方法。
- tasks.md: 将实施分解为带复选框的任务。
对于其他 schemas,遵循 CLI 输出中的 instruction 字段。
护栏
- 每次调用创建一个 artifact
- 在创建新 artifact 之前始终读取依赖 artifacts
- 永远不要跳过 artifacts 或无序创建
- 如果上下文不清楚,在创建前询问用户
- 写入后验证 artifact 文件存在,然后再标记进度
- 使用 schema 的 artifact 序列,不要假设特定的 artifact 名称
- 重要:
context和rules是对您的约束,不是文件内容- 不要将
<context>、<rules>、<project_context>块复制到 artifact 中 - 这些指导您写什么,但永远不应出现在输出中
- 不要将