用途:openspec-propose 是 OpenSpec 的规划类技能,用于根据用户描述快速创建一个变更(change),并一次性生成该变更所需的全部规划产物。它只负责规划,不负责实现。
主要能力:按 schema 定义生成产物。默认 spec-driven schema 包含 proposal.md(做什么与为什么)、specs/<capability-path>/spec.md(系统必须做什么,是增量而非主 spec)、design.md(怎么做)、tasks.md(实施步骤)。<capability-path> 是相对 specs/ 的目录路径,如 user-auth 或 identity/user-auth。
使用方式:用户需提供 kebab-case 变更名或需求描述,否则技能会询问要构建或修复什么。随后执行 openspec new change "<name>" 创建变更目录,用 openspec status --change "<name>" --json 获取产物构建顺序,再对每个产物运行 openspec instructions <artifact-id> --change "<name>" --json 获取模板与规则,按依赖顺序写入 resolvedOutputPath。若用户指定了 store,需先运行 openspec store list --json 获取 id,并在支持 --store 的命令上追加 --store "<id>"。
适用场景:需要快速把想法转成结构化变更提案,并生成规格增量、设计与任务清单时。
限制:该工作流仅授权规划,禁止编辑项目代码或启动 apply 工作流;产物完成后应停止并等待用户新请求。status 仅反映文件是否存在,需依据 requires 边判断依赖。已标记 skipped 的产物不得创建。若同名变更已存在,需询问用户是继续还是新建。