| name | opsx-aone-propose |
| description | 创建变更提案 - 一次性生成所有必要的变更文档。当用户想要快速描述他们想要构建的内容并获得完整的提案(包含设计、规格和任务)时使用。 |
| license | MIT |
| compatibility | Requires openspec CLI. |
| metadata | {"author":"openspec","version":"1.0","generatedBy":"0.6.7"} |
创建变更提案 - 创建变更并一次性生成所有文档。
重要:所有生成的文档,必须使用中文。
重要:如果被开启了 subagent 能力,要尽量使用多个 subagent 并行分析和生成不同 artifact,以提高效率。例如可以并行分析项目结构、研究类似实现、起草不同部分的文档。
我将创建一个包含以下文档的变更:
- proposal.md(做什么和为什么)
- design.md(怎么做)
- tasks.md(实施步骤)
准备好实施后,运行 /opsx-aone-apply
输入:用户的请求应包含变更名称(短横线连接)或他们想要构建的内容的描述。
步骤
-
如果没有提供明确的输入,询问他们想要构建什么
使用 AskUserQuestion tool(开放式,无预设选项)询问:
"您想要进行什么变更?请描述您想要构建或修复的内容。"
从他们的描述中,派生一个短横线连接的名称(例如,"添加用户认证" → add-user-auth)。
重要:在了解用户想要构建什么之前,不要继续。
-
创建变更目录
openspec-aone new change "<名称>"
这将创建一个位于 .aone_copilot/openspec/changes/<名称>/ 的脚手架变更,包含 .openspec.yaml。
-
获取 artifact 构建顺序
openspec-aone status --change "<名称>" --json
解析 JSON 以获取:
applyRequires: 实施前需要的 artifact ID 数组(例如 ["tasks"])
artifacts: 所有 artifact 列表及其状态和依赖关系
-
按顺序创建 artifact 直到可以应用
使用 TodoWrite tool 跟踪 artifact 的进度。
按依赖顺序循环处理 artifact(先处理无待处理依赖的 artifact):
a. 对于每个状态为 ready 的 artifact(依赖已满足):
b. 继续直到所有 applyRequires artifact 完成
- 创建每个 artifact 后,重新运行
openspec-aone status --change "<名称>" --json
- 检查
applyRequires 中的每个 artifact ID 是否在 artifacts 数组中状态为 done
- 当所有
applyRequires artifact 完成时停止
c. 如果 artifact 需要用户输入(上下文不明确):
- 使用 AskUserQuestion tool 澄清
- 基于回答创建 artifact
- 显示:"基于您的输入已创建 "
-
显示最终状态
openspec-aone status --change "<名称>"
输出
完成所有 artifact 后,总结:
- 变更名称和位置
- 创建的 artifact 列表及简要描述
- 就绪提示:"所有文档已创建!准备实施。"
- 提示:"运行
/opsx-aone-apply 或让我开始实施任务。"
示例输出:
✅ 已创建变更 'add-user-auth'
位置:.aone_copilot/openspec/changes/add-user-auth/
已生成文档:
- proposal.md - 变更概述和动机
- design.md - 技术设计方案
- tasks.md - 实施步骤清单
所有文档已创建!准备实施。
运行 /opsx-aone-apply 或让我开始实施任务。
Artifact 创建指南
- 遵循
openspec-aone instructions 返回的 instruction 字段
- schema 定义了每个 artifact 应包含的内容 - 遵循它
- 在创建新的 artifact 之前阅读依赖 artifact
- 使用
template 作为输出文件的结构 - 填充其章节
- 重要:
context 和 `rules** 是给你的约束,不是文件内容
- 不要将
<context>、<rules>、<project_context> 块复制到 artifact 中
- 这些指导你写什么,但绝不应出现在输出中
Guardrails
- 创建实施所需的所有 artifact(由 schema 的
apply.requires 定义)
- 始终在创建新 artifact 之前阅读依赖 artifact
- 如果上下文非常关键地不明确,询问用户 - 但优先做出合理决策以保持动力
- 如果该名称的变更已存在,询问用户是想继续还是创建新变更
- 在继续下一个之前验证每个 artifact 文件存在