用途 openspec-propose 面向规范驱动开发流程,帮助用户将“想构建什么”的初步想法快速转化为一套完整的变更提案工件。它适合在动手实现之前进行规划,把需求描述、设计思路与实施步骤一次性落盘。
主要能力
- 一步创建变更:根据用户提供的 kebab-case 名称(例如“add user authentication”对应 add-user-auth)创建脚手架变更目录。
- 自动生成工件:按依赖顺序生成提案所需工件,包括 proposal.md(做什么与为什么)、design.md(如何实现)、tasks.md(实施步骤)。
- 依赖与顺序管理:通过 openspec status --change "<name>" --json 解析 applyRequires 与 artifacts,确定实施前必须完成的工件,并按依赖顺序创建。
- 模板与规则遵循:通过 openspec instructions <artifact-id> --change "<name>" --json 获取 context、rules、template、instruction、resolvedOutputPath 和 dependencies,按模板结构写入文件,同时把上下文与规则作为约束而不写入输出。
- 进度跟踪:使用 TodoWrite 跟踪工件创建进度,显示简短的创建提示,并在每个工件后重新检查状态。
使用方式 用户输入应包含变更名称或想构建内容的描述。若输入不清晰,技能会通过 AskUserQuestion 询问“What change do you want to work on? Describe what you want to build or fix.”。随后执行 openspec new change "<name>" 创建变更目录,再通过 status 与 instructions 命令逐个生成工件,最后运行 openspec status --change "<name>" 输出汇总,并提示可运行 /opsx:apply 或要求实现以开始任务。
适用场景 适用于需要在编码前形成结构化提案、设计与任务拆分的开发工作,尤其是团队协作中希望统一变更文档格式与流程的场合。
限制 该技能依赖 openspec 命令行工具及 .openspec.yaml 配置。资料强调不得在未理解用户想构建内容前继续;若同名变更已存在,应询问用户是继续还是新建;context 与 rules 不得复制进工件文件。其他平台、收费或效果信息暂未提供。