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.1 KiB
4.1 KiB
name, description, license, compatibility, metadata
| name | description | license | compatibility | metadata | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| openspec-ff-change | Fast-forward through OpenSpec artifact creation. Use when the user wants to quickly create all artifacts needed for implementation without stepping through each one individually. | MIT | Requires openspec CLI. |
|
快速完成 artifact 创建 - 一次性生成开始实现所需的所有内容。
输入: 用户的请求应该包含变更名称 (kebab-case) 或对他们想要构建的内容的描述。
步骤
-
如果未提供明确输入,询问他们想要构建什么
使用 AskUserQuestion 工具 (开放式,无预设选项) 询问:
"你想要处理什么变更?描述你想要构建或修复的内容。"
从他们的描述中,导出 kebab-case 名称 (例如: "add user authentication" →
add-user-auth)。重要: 不要在不了解用户想要构建什么的情况下继续。
-
创建变更目录
openspec new change "<name>"这将在
openspec/changes/<name>/创建一个脚手架变更。 -
获取 artifact 构建顺序
openspec status --change "<name>" --json解析 JSON 以获取:
applyRequires: 实现前需要的 artifact ID 数组 (例如:["tasks"])artifacts: 所有 artifacts 的列表及其状态和依赖关系
-
按顺序创建 artifacts 直到准备好应用
使用 TodoWrite 工具跟踪 artifacts 的进度。
按依赖顺序循环 artifacts (没有待处理依赖关系的 artifacts 优先):
a. 对于每个
ready状态的 artifact (依赖关系已满足):- 获取指令:
openspec instructions <artifact-id> --change "<name>" --json - 指令 JSON 包括:
context: 项目背景 (对你的约束 - 不要包含在输出中)rules: Artifact 特定规则 (对你的约束 - 不要包含在输出中)template: 用于输出文件的结构instruction: 此 artifact 类型的 schema 特定指导outputPath: artifact 写入位置dependencies: 要读取以获取上下文的已完成 artifacts
- 读取任何已完成的依赖文件以获取上下文
- 使用
template作为结构创建 artifact 文件 - 将
context和rules作为约束应用 - 但不要将它们复制到文件中 - 显示简短进度: "✓ 已创建 "
b. 继续直到所有
applyRequiresartifacts 完成- 创建每个 artifact 后,重新运行
openspec status --change "<name>" --json - 检查
applyRequires中的每个 artifact ID 在 artifacts 数组中的status: "done" - 当所有
applyRequiresartifacts 都完成时停止
c. 如果 artifact 需要用户输入 (上下文不清楚):
- 使用 AskUserQuestion 工具澄清
- 然后继续创建
- 获取指令:
-
显示最终状态
openspec status --change "<name>"
输出
完成所有 artifacts 后,总结:
- 变更名称和位置
- 创建的 artifacts 列表及简短描述
- 准备就绪的内容: "所有 artifacts 已创建!准备实现。"
- 提示: "运行
/opsx-apply或要求我实现以开始处理任务。"
Artifact 创建指南
- 遵循每个 artifact 类型的
openspec instructions中的instruction字段 - Schema 定义了每个 artifact 应该包含什么 - 遵循它
- 在创建新 artifacts 之前读取依赖 artifacts 以获取上下文
- 使用
template作为输出文件的结构 - 填充其部分 - 重要:
context和rules是对你的约束,而不是文件的内容- 不要将
<context>,<rules>,<project_context>块复制到 artifact 中 - 这些指导你写什么,但永远不应该出现在输出中
- 不要将
防护机制
- 创建实现所需的所有 artifacts (由 schema 的
apply.requires定义) - 在创建新 artifact 之前始终读取依赖 artifacts
- 如果上下文严重不清楚,询问用户 - 但更倾向于做出合理决策以保持势头
- 如果已存在同名变更,建议继续该变更
- 在继续下一个之前验证每个 artifact 文件是否存在