Install
openclaw skills install @nieen/agent-sdd-bootstrap帮助用户在任意项目中完成 SDD(规范驱动开发)工作流的初始化:安装并校验 OpenSpec CLI、生成项目级 SDD 配置、自动识别项目技术栈并写入上下文,并针对 OpenSpec 原生支持与非原生支持的 Agent CLI 分别完成接入。
openclaw skills install @nieen/agent-sdd-bootstrap帮助用户在任意项目中完成 SDD(规范驱动开发)工作流的初始化:安装并校验 OpenSpec CLI、生成项目级 SDD 配置、自动识别项目技术栈并写入上下文,并针对 OpenSpec 原生支持与非原生支持的 Agent CLI 分别完成接入。
任何项目的首次 SDD 配置 —— 新项目初始化、为 Agent CLI 配置 OpenSpec、或适配到非原生支持的工具。
openspec init —— 生成项目级 SDD 配置openspec/config.yaml 中的项目上下文# 检测,未安装则全局安装
openspec --version &>/dev/null || npm install -g @fission-ai/openspec@latest
# 验证,预期输出 x.y.z 形式的版本号
openspec --version
openspec init --help
查看 --tools 参数列出的支持工具。始终以该命令的实际输出为准——不要依赖任何写死的工具清单(包括本文档中的示例),OpenSpec 的支持列表会随版本变化。
交叉检查本机可用的 Agent CLI:
for tool in opencode codebuddy atomcode zcode; do
if command -v $tool &>/dev/null; then
echo "$tool: ✅ 可用"
else
echo "$tool: ❌ 未安装"
fi
done
cd /path/to/project
openspec init --tools opencode
生成:
openspec/config.yaml —— 项目上下文与规则.opencode/skills/ —— opsx 技能.opencode/commands/ —— opsx 斜杠命令openspec init 生成的默认 openspec/config.yaml 是模板。Agent 应:
read_file 获取模板内容,确认占位字段write_file 整体覆写 openspec/config.yaml,因为 YAML 结构需要整体替换而非局部 patch典型 openspec/config.yaml 更新后的结构示例:
project:
name: "<项目目录名>"
description: "<从 README 或 package.json 提取的一句话描述>"
context: |
项目技术栈:Go 1.22 + Gin + PostgreSQL
目录结构:/<project-name>/cmd/ <project-name>/internal/ <project-name>/pkg/
编码约定:错误处理统一返回 (data, error),不使用 panic
rules:
proposal:
- 数据库变更需附带迁移脚本
- API 新增需保持向后兼容
tasks:
- 按 service / handler / model 分层提交 PR
- 每个功能分支需通过测试后再合并
rules.proposal 与 rules.tasks 字段OpenSpec 原生支持的工具(如 opencode、codebuddy):
opencode run '/opsx:propose "your change idea"'
Agent 读取 openspec/config.yaml 上下文,生成 spec 并实现。
适用于 OpenSpec 未原生支持的工具(atomcode、zcode 等)。
调用 request_user_input 工具向用户确认桥接工具。从 Step 0 的 openspec init --help 输出中选一个原生支持的工具做桥梁,默认推荐 opencode。
# request_user_input 参数示意
mode: "single"
question: "OpenSpec 不支持 <target-tool>,将使用 opencode 作为桥梁生成参考文件,是否同意?"
options:
- label: "opencode(默认)"
- label: "codebuddy"
custom: false # 选项已覆盖所有原生工具
用户选择后,将选中的工具作为桥接工具继续。若用户拒绝,则结束流程并告知用户 SDD 初始化无法完成。
# 默认:opencode
openspec init --tools opencode
# 若用户选择 codebuddy:
# openspec init --tools codebuddy
<bridge-tool-dir>/skills/ 与 <bridge-tool-dir>/commands/ 中:每个 skill 是 SDD 流水线指令(markdown),每个 command 是一个斜杠命令(如 /opsx:propose、/opsx:revise)。
mkdir -p .<target-tool>/skills .<target-tool>/commands
# 示例:从 opencode 桥梁适配到 atomcode
# cp .opencode/skills/opsx-*.md .atomcode/skills/
# cp .opencode/commands/opsx-*.md .atomcode/commands/
将 <bridge-tool-dir>、<target-tool> 替换为实际名称。
| 桥梁(源) | 目标 | 动作 |
|---|---|---|
.opencode/ | .codebuddy/ | 原生支持 —— 跳过 |
.opencode/ | .atomcode/ | 镜像 + 适配(示例) |
.opencode/ | .zcode/ | 镜像 + 适配 |
| 任意 | 任意 | 查阅目标工具的 skill 格式文档后适配 |
表中工具名仅为示例,实际支持情况以
openspec init --help输出为准。
检查文件生成和 TUI 斜杠命令:
# 检查目标工具目录已生成
ls .<target-tool>/skills/
ls .<target-tool>/commands/
# 确认 config.yaml 上下文已更新
cat openspec/config.yaml
接着在目标工具的 TUI 中测试斜杠命令,例如 atomcode 中提交 /opsx:propose "test"。
ls openspec/config.yaml
ls .opencode/skills/
opencode run '/opsx:propose "verify SDD is working"'
openspec init 会覆盖文件 —— 重跑前先 stage/commit.opencode/、.codebuddy/、.atomcode/、.zcode/ 属本地开发配置| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| npm 安装失败 | 网络或权限问题 | 切换 npm 镜像源,或以管理员权限重试 |
openspec --version 找不到命令 | npm 全局 bin 不在 PATH | export PATH="$PATH:$(npm prefix -g)/bin" 临时修复;建议 Agent 检测并自动添加,而非依赖用户重置终端 |
openspec init 覆盖了已有改动 | init 会重新生成文件 | 提前 git commit;已被覆盖时用 git diff 找回 |
--tools 列表中没有目标工具 | OpenSpec 版本过旧 | npm update -g @fission-ai/openspec 后重新查看 |
| 镜像后斜杠命令不生效 | 目标工具 skill/command 格式不同 | 对照目标工具文档调整 frontmatter 与目录结构 |