SuperAPI AI 工具集

openspec-bootstrap

编程与开发

查看项目

更新于 11-11 18:37

技能介绍

openspec-bootstrap 用于在代码仓库中首次建立 OpenSpec 配置,或修改仓库已有的 openspec/config.yaml 和项目 schema。其核心目标是让配置约束智能体后续产出的变更产物保持在结果层面:规定实现细节的产物会随着实现漂移而失效,智能体还要花精力重新同步。模板的 context 部分陈述了这一原则,契约是唯一例外。

使用方式按步骤组织工作流,每一步先创建一个带完成标准的任务,再执行到完成。若 openspec/ 目录不存在,运行 openspec init --tools <该仓库使用的智能体>;完成标准是 openspec/config.yaml 存在。随后阅读 README、CLAUDE.md/AGENTS.md、构建入口(如 Makefile)以及规划或决策文档,完成标准是能说明项目是什么、硬性约束有哪些、决策记录在哪里。接着把本技能目录下的 assets/schemas/lean/ 复制到项目中的 openspec/schemas/lean/,该 schema 是裁剪到结果层面、每个事实只放在一个产物中的 spec-driven 版本,完成标准是 openspec schema validate lean 通过。再把 assets/config.yaml 复制为项目的 openspec/config.yaml 并填写,保持简短,只写智能体在本项目使用 OpenSpec 时必须考虑的内容;只有仓库文档显示需要时才添加仓库专属规则;若已有含实际内容的配置,应合并进去,保留仓库专属事实,替换规定内部代码的规则;无法填写的占位行删除并在后续步骤中记录。完成标准是 rg -n '<[^>]+>' openspec/config.yaml 找不到内容。然后对照模板 context 和 lean schema 的说明逐条检查规则,删除要求未来智能体规定实现细节、重复 schema 说明或给每个变更增加章节的规则,并确认 YAML 可解析。最后把删除的占位符以问题形式报告给用户,而不是猜测取值。

注意事项包括:规则会追加到 schema 的产物说明之后,而后者已覆盖 spec 范围、用户决策、逐任务验证、逐组测试和大小目标,因此只写仓库额外需要的规则;与 schema 冲突的规则会被半执行,应改为编辑项目的 schema 副本。每条规则往往会给每个变更增加一个章节,优先用“仅当……”的限制而非“包含……”的要求。以行数表示的大小目标不具约束力,因为智能体会写很长的行,应改用字数。lean 是 OpenSpec 1.15.0 的 spec-driven 的分支,升级 OpenSpec 后将它与 openspec schema fork spec-driven 的输出对比并移植上游修复;lean 保留不换行的散文而上游会换行,可用 git diff --no-index --word-diff 对比。context 应指向文件而非复制其命令或事实,以免漂移。operations 仅支持 apply 和 archive,其他键 OpenSpec 只在指令阶段警告,YAML 解析发现不了。Explore 只读取 context 和 rules,单个产物或 apply/archive 之外想要的行为应写入 context。归档会因未勾选的任务框而阻塞,因此模板的 Human checks 规则使用普通项目符号,合并到已有配置时保留该措辞。子智能体不会读取配置,它们必须遵守的规则应放进 apply 指导,由主智能体写入每个任务简报。已在进行中的变更保留现有产物,新规则只适用于新变更。