Sdd Dev Workflow — Sdd Dev 工作流
v1.4.1规范驱动开发工作流(SDD + Speckit + Claude Code)。用于复杂软件开发项目。⚠️ 必需环境变量: ZHIPU_API_KEY。可选: GITHUB_令牌, ANTHROPIC_API_KEY。当用户需要开发复杂应用、进行多迭代开发项目、使用 会话s_spawn 自动化开发时使用此 技能。
运行时依赖
安装命令
点击复制技能文档
SDD 开发工作流 技能
快速开始:见下方 | 安装指南:references/安装ation.md | 问题排查:references/troubleshooting.md
🎯 核心理念
用规范驱动开发(SDD)把需求变成结构化的"规范文档",让 LLM 在准确上下文中输出更符合预期的代码。
三大原则:规范优先 → 规范锚定 → 规范作为源
⚡ 快速开始 # 环境检查 ~/.OpenClaw/技能s/sdd-dev-工作流/scripts/检查-环境.sh
# 创建项目 ~/.OpenClaw/技能s/sdd-dev-工作流/scripts/init-project.sh my-project cd ~/OpenClaw/workspace/projects/my-project
# 启动开发 claude --权限-mode acceptEdits
Speckit 工作流 /speckit.constitution 阅读并使用 ~/.OpenClaw/技能s/sdd-dev-工作流/templates/constitution-enterprise.md /speckit.specify [功能描述] /speckit.clarify # ⚠️ 强制执行至少1次 /speckit.plan [技术栈] /speckit.tasks /speckit.analyze # ⚠️ 强制执行至少1次 /speckit.implement 严格遵循宪法 @.specify/memory/constitution.md
🔄 迭代开发流程
新项目 vs 迭代:流程相同,区别仅在于初始化
流程对比 项目类型 GitHub 初始化 Specify 特性分支 验收后 新项目 ✅ 需要 ✅ 初始化 自动创建 推送 + PR 迭代 ❌ 跳过 ✅ 新迭代 自动创建 推送 + PR 项目初始化(仅新项目)
⚠️ 询问用户:GitHub 仓库如何处理?
选项 1:新建仓库
gh repo 创建 my-project --private --clone cd my-project
选项 2:关联现有仓库
git init git remote 添加 origin https://github.com/user/existing-repo.git
然后执行 Specify init(仅一次):
specify init . --here --AI claude --force --no-git
迭代开发(跳过项目初始化)
已初始化项目,直接创建新迭代:
跳过 GitHub 初始化 跳过 specify init 直接在 Claude Code 执行:/speckit.specify <功能描述>
Specify 序号自动递增:
# 检测下一个序号 next_num=$(~/.OpenClaw/技能s/sdd-dev-工作流/scripts/获取-next-iteration.sh) iteration_name="${next_num}-new-feature"
问题修复:Specify 命令行工具 创建迭代时序号可能重复(001-xxx, 001-yyy),使用 获取-next-iteration.sh 自动检测最大序号 + 1。
🔒 Git 版本控制(强制)
AI 开发不确定性高 → Git 是安全网
初始化检查
触发条件:项目目录不存在 .git 文件夹
# 检查并初始化 if [ ! -d ".git" ]; then # 询问 Git 仓库地址或使用默认 git init git 添加 . git commit -m "chore: 初始化项目结构" fi
提交规范
每个阶段完成后必须提交:
阶段 提交信息 constitution docs: 添加项目宪法 specify docs: 完成规范定义 clarify docs: 完成需求澄清 implement feat: 实现核心功能 acceptance test: 通过验收测试 # 每个阶段完成后执行 git 添加 . && git commit -m ""
验收后自动 PR
触发条件:验收通过 + 特性分支(非 mAIn)
# 检查验收结果 if [ "$ACCEPTANCE_结果" = "PASS" ]; then # 提交最终变更 git 添加 . && git commit -m "chore: 工作流完成"
# 检查是否在特性分支 current_branch=$(git branch --show-current) if [ "$current_branch" != "mAIn" ]; then # 推送特性分支 git push -u origin "$current_branch"
# 创建 PR gh pr 创建 \ --title "feat: $current_branch" \ --body "## 变更说明
- 迭代序号:$current_branch
- 验收状态:✅ PASS
测试结果
- 语法检查:通过
- 单元测试:通过
- 服务启动:验证成功" \
详见:references/git-version-control.md
📦 依赖自动安装(零注意力)
完成开发,不为工具停顿
两层依赖策略 Layer 类型 处理方式 Layer 1 预装依赖 环境检查脚本验证 Layer 2 项目依赖 遇到时自动安装 自动安装逻辑 # 检测到 模块NotFoundError 时自动执行 if error contAIns "模块NotFoundError: No 模块 named 'fastAPI'"; then pip 安装 fastAPI fi
不询问,直接安装。
预装依赖检查 ~/.OpenClaw/技能s/sdd-dev-工作流/scripts/检查-环境.sh
详见:references/dependency-安装ation.md
⚠️ 工具链协作方式(必读) Specify 命令行工具 的角色 Specify 命令行工具 → Claude Code → 完成开发 (仅用于初始化) (执行 /speckit 命令) (代码实现)
Specify 命令行工具 仅用于初始化:
✅ specify init 初始化项目结构(每个项目执行一次) ❌ 不支持 clarify/plan/tasks/analyze/implement
非交互模式:
specify init . --here --AI claude --force --no-git
后续所有 /speckit 命令都在 Claude Code 内执行。
权限模式选择 模式 用途 行为 安全等级 acceptEdits 人工监督开发 文件编辑自动批准,bash脚本需确认 ✅ 推荐 bypass权限s 自动化 代理 所有操作自动批准 ⚠️ 仅限隔离环境
安全建议:
生产环境 → acceptEdits + 人工审核 隔离测试环境 → bypass权限s(VM/容器) 禁止:在生产服务器使用 bypass权限s 最终目标 ❌ 错误理解 ✅ 正确理解 生成 spec.md 完成代码实现 生成 plan.md 通过测试验证 生成 tasks.md 功能可以运行
完成标准:
✅ 代码已实现(不是文档) ✅ 测试已通过 ✅ 功能可运行 🚨 子 代理 强制规则(CRITICAL)
核心原则:子 代理 = 流程驱动器(driver),不是代码实现者(implementer)
绝对禁止 ❌ 禁止使用 write 工具写代码文件(src/*/.py, tests/*/.py) ❌ 禁止跳过 /speckit. 命令* 必须执行 ✅ 必须通过 sdd-driver.sh 脚本操作 ✅ 必须通过 tmux 驱动 Claude Code 意外处理 情况 可恢复 行动 429 rate limit ✅ 等待 5 分钟后重试 timeout ✅ 重启会话或增加超时 stuck ✅ 重启会话 execution_error ✅ 让 Claude Code 修复 template_missing ❌ 通知人工 需要补充上下文 ❌ 通知人工
详见:references/autonomous-代理.md
📋 Speckit 工作流 init → constitution → specify → clarify → plan → tasks → analyze → implement
⚠️ 强制阶段:clarify ≥1 次,analyze ≥1 次
人类介入点 阶段 介入原因 介入方式 clarify 需求歧义 发送问题 → 等待回复 analyze 一致性问题 发送报告 → 等待确认
介入判断:信息不完整/疑义 → 转发用户;信息完整 → 自己决策 补充规范 等待回复 继续执行 收到后继续
自动决策条件(无需介入)
- 信息完整,只是细节缺失
- 常规技术选择(如用 请求s 还是 httpx)
- 宪法已有明确规定
- clarify 连续 2 次无问题
- 简单项目,需求明确
需要介入的条件
- 多个方案各有优劣,需要业务决策
- 需求有明显矛盾或冲突
- 涉及外部依赖或资源
- 超出宪法规定的边界
- analyze 发现严重一致性问题
🏛️ 公共宪法模板
使用方式
```bash # 在 Claude Code 中引用公共宪法 /speckit.constitution 阅读并使用公共宪法模板 ~/.OpenClaw/技能s/sdd-dev-工作流/templates/constitution-enterprise.md
模板位置:
templates/constitution-enterprise.md(推荐) templates/constitution-lite.md(精简)
详见:references/constitution-图形界面de.md
📁 项目路径规范 标准目录结构 ~/OpenClaw/workspace/ ├── projects/ # 正式开发项目(长期维护) ├── tmp/ # 临时项目(验证、测试,可随时清理) ├── docs/ # 文档(可选,按需创建) ├── re搜索/ # 深度研究报告 └── memory/ # 日期日记
路径规则 类型 路径 示例 正式项目 projects// projects/my-应用/ 临时项目 tmp// tmp/test