用途:openspec-propose 是 OpenSpec 的规划工作流技能,帮助用户快速描述想构建或修复的内容,并一步生成完整的变更提案与规划产物。它只负责规划,不编辑项目代码;即使用户请求中包含实现意图,该请求也只授权规划。产物完成后应停止,等待用户新的请求再启动 apply 工作流。
主要能力:按 schema 定义创建变更目录与产物。默认 spec-driven schema 包含 proposal.md(做什么与为什么)、specs/<capability-path>/spec.md(系统必须做什么,是增量而非主 spec)、design.md(怎么做)、tasks.md(实现步骤)。支持通过 --schema 指定其他工作流,也可用 openspec schemas --json 查看可用工作流。支持已注册 store:用 openspec store list --json 发现 id,并在读写 spec 与 change 的命令上追加 --store <id>,选定后保持粘性。
使用方式:先理解请求并澄清影响范围、外部行为、兼容性或验收标准的歧义;从描述推导 kebab-case 名称。用 openspec new change "<name>" 创建变更目录,用 openspec status --change "<name>" --json 获取 applyRequires、artifacts 及依赖边,按依赖顺序用 openspec instructions <artifact-id> --change "<name>" --json 获取模板与规则,写入 resolvedOutputPath,并反复重跑 status 直到必需产物齐全。最后用 openspec status --change "<name>" 展示状态并汇总。
适用场景:需要快速把想法转成结构化变更提案、生成规格增量与实现任务清单的规划阶段。
限制:不实现变更、不启动 apply、不编辑项目代码;context 与 rules 是约束而非产物内容,不得写入文件;status 仅反映文件是否存在,需按 requires 边判断依赖;已标记 skipped 的产物不得创建;design.md 等条件性产物仅在指令标注可选时跳过。若同名变更已存在,需询问用户是继续还是新建。具体 schema 细节与命令行为以实际 CLI 输出为准。