用途:openspec-propose 用于快速提出一个新变更,并在一步内生成实现所需的全部工件,包括 proposal.md(做什么与为什么)、design.md(怎么做)和 tasks.md(实现步骤)。当用户想快速描述要构建的内容并获得完整提案时使用。
主要能力:根据用户请求创建变更目录并生成工件。输入可以是 kebab-case 变更名称,或对想构建内容的描述;若描述不清晰,会先询问用户想构建或修复什么,再从中推导 kebab-case 名称。
使用方式:先运行 openspec new change "<name>" 创建脚手架,位于 openspec/changes/<name>/ 并含 .openspec.yaml;再运行 openspec status --change "<name>" --json 获取工件构建顺序,解析 applyRequires 与 artifacts;按依赖顺序循环,对就绪工件运行 openspec instructions <artifact-id> --change "<name>" --json 获取 context、rules、template、instruction、outputPath、dependencies,读取已完成依赖文件,按 template 结构创建工件文件,并用 TodoWrite 跟踪进度;每创建一个工件后重新运行 openspec status --change "<name>" --json,直到 applyRequires 中所有工件状态为 done;最后运行 openspec status --change "<name>" 展示最终状态。
输出:汇总变更名称与位置、创建的工件列表及简述,提示“All artifacts created! Ready for implementation.”,并提示运行 /opsx-apply 或要求实现以开始任务。
限制与注意:context 与 rules 是给执行者的约束,不应复制进工件文件;不要将 <context>、<rules>、<project_context> 块写入输出。若上下文严重不清,应询问用户,但优先做合理决策以保持推进;若同名变更已存在,询问是继续还是新建;写入后需验证每个工件文件存在再继续。资料未提供收费、价格、平台或效果信息。