用途:在 OpenSpec 变更流程中继续推进,每次调用只创建一个工件。
主要能力:若未指定变更名,先运行 openspec list --json 获取按最近修改排序的变更,并用 AskUserQuestion 让用户选择(展示名称、schema、状态、修改时间,最近修改者标为推荐),不猜测、不自动选择。随后运行 openspec status --change "<name>" --json 解析 schemaName、artifacts 状态(done/ready/blocked)、isComplete 及路径上下文。若全部完成则展示最终状态并建议实现或归档后停止;若有 ready 工件,取第一个,运行 openspec instructions <artifact-id> --change "<name>" --json,读取 context、rules、template、instruction、resolvedOutputPath、dependencies,读取已完成依赖文件,按 template 结构写入 resolvedOutputPath(若为 glob 则据 schema 指令与规划上下文选定具体路径)。
常见 spec-driven 流程:proposal → specs → design → tasks。proposal.md 填写 Why、What Changes、Capabilities、Impact;每个 Capability 对应一个 specs/<capability>/spec.md;design.md 记录技术决策;tasks.md 拆分为复选任务。
限制:每次只创建一个工件;必须先读依赖工件;不得跳过或乱序;上下文不清时先询问用户;写入后需确认文件存在;context 与 rules 是约束,不得复制进工件文件;工件类型与顺序以 schema 为准,不假定具体名称。创建后运行 openspec status --change "<name>" 展示进度与已解锁工件。