sdd-flow-kit
v1.7.29
Published
Cross-agent SDD automated development workflow kit with PRD layered architecture, task splitting, context compression, and pending confirmations.
Maintainers
Readme
sdd-flow-kit
介绍
跨工具(Cursor Claude Code / OpenClaw / Codex 等)的“SDD 需求分析 + 产物编排”自动化工程骨架。
它把你的 5 步流程拆成可复用的“流程引擎 + 产物模板 + Adapter 适配层”,并在目标项目下生成固定结构的产物文件。
注意:不同 AI 工具在“真正执行 LLM/写入报告”的能力不同;因此当前版本会把第 2 步 SDD 提示词、产物模板与调用指引打通,让你在 Cursor/Claude/Codex/OpenClaw 中直接执行提示词完成内容生成。
软件架构
软件架构说明
Node 版本(14.16 / 18 / 20 均可)
| 组件 | 要求 |
|------|------|
| sdd-flow-kit CLI(install / run / doctor / postinstall) | Node >= 14.16.0(engines 已声明;兼容老 CI/内网机) |
| Playwright E2E 自动安装 | Node >= 18 才 add @playwright/test;Node 14 跳过、不报错 |
| openspec CLI、opsx-workflow | 以各自包文档为准;建议 18+ |
| 目标业务仓(如 adInsight frontend) | 按该仓 package.json engines,与 kit 独立 |
安装后建议执行:
node -v # 应 >= v14.16.0
npx sdd-flow-kit doctor --agent cursor若 doctor 报 node-version 失败,请升级到 14.16+,或在该仓使用 .nvmrc 锁定版本。
安装教程
推荐两步(团队标准):
cd <你的项目目录> # cd 到哪,装到哪
pnpm add -D sdd-flow-kit # ① postinstall 自动轻量写入 skill
pnpm add -D sdd-flow-kit@latest 或者 yarn add sdd-flow-kit@latest
npx sdd-flow-kit install --project <类型> -y # ② 全量 OPSX(按需)Monorepo 项目自动检测:
如果你的项目是 monorepo 结构(如 adInsight-web/frontend、operation-web/frontend),工具会自动检测并定位到实际的前端代码目录:
- 根目录无 package.json + 存在 frontend/package.json:自动使用
frontend/目录 - 根目录有 package.json:使用根目录
- 直接在 frontend 目录执行:使用当前目录
支持的子目录名称:frontend、packages/frontend、apps/frontend、client
示例(adInsight-web monorepo):
cd /path/to/adInsight-web # 在仓库根目录
npx sdd-flow-kit guard "开发 ADI V2.3.4 版本" -y
# ✅ 自动检测到 frontend/ 并在其中创建配置,而非在根目录创建<类型> 按项目选择:ADI | OMS | 欢盟 | AD Tools(工具会按目录名自动推断,不对时用 --project 覆盖)。
| 项目示例 | --project | docs skill 目录 |
|----------|-------------|-----------------|
| adInsight-web | ADI | docs/adi-doc-skill/ |
| operation-web | OMS | docs/oms-doc-skill/ |
| 欢盟 | 欢盟 | docs/huan-doc-skill/ |
安装后验证(Cursor 用户看 .cursor,不是 .claude):
ls .cursor/skills/sdd-flow-kit/SKILL.md
ls docs/*-doc-skill/SKILL.md
# Claude Code 用户:
ls .claude/skills/sdd-flow-kit/SKILL.md如果找不到,则执行下面的命令
node ./node_modules/sdd-flow-kit/dist/postinstall.js
当前自动化边界
- 已支持:跨工具统一目录结构、提示词、报告模板、单步 NEXT.md(+ 排障用
FLOW-MAP.md) - 已支持:gate / phase / propose / deliver / chain / session mode / status / resume 命令(exit code 机械门禁)
- 已支持:断点续传 —
status/resume刷新当前步;Agent 每步只读.session-state.json+NEXT.md - 已支持:
ensure-opsx+openspec status校验 apply-ready - 未支持:在 Cursor 内全自动跑完全流程(Cursor adapter 仍为 manual);可选
SDD_FLOW_KIT_ENABLE_CLAUDE_AUTORUN=1给 Claude Code
断点续传(status / resume)
# 查看当前步 + 刷新单步 NEXT(禁止通读全流程说明书)
npx sdd-flow-kit status --project-root . --run-id <runId>
npx sdd-flow-kit status --project-root . --run-id <runId> --json
# 续传:同一 run,禁止 guard 重开
npx sdd-flow-kit resume --project-root . --run-id <runId>
npx sdd-flow-kit resume --project-root . --run-id <runId> --exec # 仅 kind=cli 执行第一条Agent 协议:每步 status/resume → 只读 session + NEXT → 只做本步 → 再 status。mayStop=false 时禁止「后续待办」式收工。
环境变量配置
| 环境变量 | 说明 | 默认值 |
|---------|------|--------|
| SDD_FLOW_KIT_INSTALL_ROOT | 强制指定安装根目录(绝对路径) | process.cwd() |
| SDD_FLOW_KIT_PROJECT | 强制指定项目类型 | 自动推断 |
| SDD_FLOW_KIT_LEGACY_MONOREPO | 使用旧版 monorepo 模式(需手动设置 1) | 自动检测 |
| SDD_FLOW_KIT_ENABLE_CLAUDE_AUTORUN | Claude Code 自动执行修复 | 0 |
| SDD_OPSX_WORKFLOW_PACKAGE | 自定义 opsx-workflow 包路径 | npm 默认版本 |
| CONFLUENCE_DEBUG | 输出 Confluence 搜索调试日志 | 0 |
| OPSX_SKIP_VALIDATE_REVIEW | 跳过 validate 独立 review subagent | 未设置 |
| OPSX_VALIDATE_REVIEW_REQUIRED | 审查不可用/无 RESULT 时硬拦 validate | 未设置(软跳过) |
Monorepo 自动检测说明:
- 新版(v1.3.28+):默认启用智能检测,无需设置环境变量
- 旧版兼容:设置
SDD_FLOW_KIT_LEGACY_MONOREPO=1回退到旧行为
npm 发包流程
- 发布前检查:
npm whoami(确认已登录正确 npm 账号) - 构建产物:
npm run build - 本地打包检查:
npm pack(确认 tar 包内容包含dist/、src/templates/、README.md) - (可选)在目标项目验证安装:
npm i -D ./sdd-flow-kit-<version>.tgz,并执行npx sdd-flow-kit install --dry-run --plan-json - 正式发布:
- 首次发布 scoped 包:
npm publish --access public - 非 scoped 或后续版本:
npm publish
- 首次发布 scoped 包:
- 发布后验证:在任意项目执行
npm i -D sdd-flow-kit,再执行npx sdd-flow-kit install
快速开始(v1.5.0)
# 1. 安装
cd <你的项目目录>
pnpm add -D sdd-flow-kit
npx sdd-flow-kit install --project ADI -y
# 2. 启动需求开发
npx sdd-flow-kit guard "开发 ADI V2.5.0 版本" -y --agent cursor
# 3. 补全 PRD 细节层(⭐ 新增步骤)
npx sdd-flow-kit prd-enrich --run-id <runId>
# → 在 AI 工具中执行生成的提示词,创建 PRD-details/*.md
# 4. 检查细节层完整性
npx sdd-flow-kit gate --run-id <runId> --expect prd-details-complete
# 5. 查看生成的产物
ls openspec/PRD/<runId>/
# 会看到:01-需求分析.md, 02-改动清单.md, 03-待确认.md,
# 04-技术文档.md, 05-验收清单.md, source/PRD-details/
# 6. 文档闭合
npx sdd-flow-kit gate --run-id <runId> --expect docs-closed
npx sdd-flow-kit phase advance --run-id <runId> --to docs-done
# 7. 后续流程不变(propose → apply → validate → deliver)变更记录
1.7.23 — validate 独立 Review Subagent(审查与实现分离)
- ✨
validate在机械门禁前派发validate-review(新进程、只审不修) - ✨ review 专用 prompt:禁止改
src/**/e2e/**;强制RESULT.md/RESULT.json合约 - ✨ 开放 P0/P1 → validate 硬失败;产物
.validate-review.json+.subagents/validate-review/ - 跳过:
OPSX_SKIP_VALIDATE_REVIEW=1;必选硬拦:OPSX_VALIDATE_REVIEW_REQUIRED=1
1.7.6 — 演示保真复查硬循环(实现后 → 交付前)
- ✨ 新命令:
demo-fidelity-review --auto(对照演示源码/16 合约 vs 生产:字段·布局·交互;有开放项则 remediate 再验,默认 ≤5 轮) - ✨ 产物:
17-演示保真复查报告.md、.demo-fidelity-report.json、17-演示保真复查提示词.md - ✨ 新门禁:
gate --expect demo-fidelity-ready;纳入deliver/chain/ delivery-pipeline 硬失败 - ✨ 原则:开放 P0/P1「不一致」未清零不得 deliver(不像 prd-review 强制放行)
- 跳过:
OPSX_SKIP_DEMO_FIDELITY=1或DEMO_REFERENCE_EXEMPT
1.7.5 — 演示布局合约(截图 → 分析 → 实现前硬闸)
- ✨ 新命令:
demo-layout-capture/demo-layout-analyze - ✨ 产物:
16-演示布局合约.md、16-演示布局分析提示词.md、visual-baseline/demo/ - ✨ 新门禁:
gate --expect layout-contract-ready;phase --to impl与impl-allowed强制校验 - ✨ 原则固化:结构跟演示、控件跟仓库 UI 库(组件映射表)
- 跳过:
OPSX_SKIP_DEMO_LAYOUT_CONTRACT=1或DEMO_REFERENCE_EXEMPT
1.7.4 — 提案演示审查报告硬门禁(impl-allowed / delivery)
- ✨
gate --expect impl-allowed新增propose-review-report:缺通过态10-提案演示审查报告.md则 FAIL - ✨ 缺报告时默认自动
propose-remediate续跑修复(不立刻中断);仍失败才硬拦 - ✨ 新命令:
ensure-propose-review(delivery-pipeline / 手工补齐) - ✨
opsx-delivery-pipelinefull 链路新增step_propose_review - 跳过:
OPSX_SKIP_PROPOSE_REVIEW_REPORT=1;仅检查不自动修:OPSX_SKIP_PROPOSE_REVIEW_AUTO=1或ensure-propose-review --no-auto
1.7.2 — 03 待确认问题清单结构门禁(doc03-structure)
- ✨
gate questions-open新增doc03-structure:五章段落版、4.1–4.6、代码路径引用、P0/P1/P2 总结;拦截 Q1–Q10 简表 - 📚 基准样例与规则:
docs/DOC03-QUALITY-GATE.md、src/tests/fixtures/doc03-golden-adi-v234.md - 🔧
gate --auto-remediate支持doc03-structure修复提示 - 跳过:
OPSX_SKIP_DOC03_QUALITY=1
1.7.1 — 提案演示 1:1 自动审查 + 自动修复闭环
- ✨ 新命令:
propose-remediate(gate propose-ready+ac-ready --auto-remediate,通过后才允许 Apply) - ✨
ac-ready/propose-ready支持--auto-remediate(与docs-closed同机制) - ✨ 新门禁:
demo-proposal-consistency(对照演示 App.vue + 结构模式,拦截 ReportPage/ImportHistoryDrawer/缺 Tab 声明等壳层偏差) - 🔧
changeHasUiScenarios识别### Requirement:与 design 演示章节,不再误跳过演示门禁 - 🔧
phase advance --to propose-done默认开启 ac-ready 自动修复(SDD_PROPOSE_AUTO_REMEDIATE=0可关) - 📄 产物:
10-提案演示审查报告.md、gate-remediate-*-第N轮.md
1.6.8 — 质量三板斧落地(PRD 原子覆盖率 + AC 断言绑定 + 争议闭环)
- ✨
docs-closed:自动生成.prd-review-atoms.json并校验prd-ac-coverage(前端原子 ≥95%)+ 五层 AC 门禁 +.ac-source-trace.json - ✨
ac-metrics:汇总 AC Coverage / Fidelity / Source Trace,写入.ac-metrics.json - ✨ 新增
sync-disputes:汇总 03/05/08/12 →13-争议闭环登记册.md - ✨ 新增
gate dispute-closed(已含于ac-signed) - 📚 新增
docs/QUALITY_TRIAD.md全流程指引 - 🧪 单测:
src/tests/disputeClosureGate.test.ts
1.6.1 — 未配置 baseline 时自动推断项目 UI 风格
- ✨
docs-closed:扫描src/components/views/pages等高频表格 import,幂等写入 04§2.4.2与.ui-style-inferred.json - ✨
prd-coverage:无 baseline 且表格组件出现 ≥3 次时,列表类生产文件须引用推断组件(inferred-table-style) - 📚 04 模板补充自动扫描说明
- 跳过:
OPSX_SKIP_UI_STYLE_INFER=1
1.6.0 — 通用 UI/交互门禁(防假绿交付)
- ✨
docs-closed:ui-ac-criteria-quality(UI P0 须写壳层/交互原语,禁止仅接口权限验收) - ✨
docs-closed:visual-ac-priority(有原型图时 visual 须 P0/P1,禁止仅 P2) - ✨
docs-closed/propose/ac-ready:demo-signal-quality、demo-mapping-granularity、design-demo-not-weaker - ✨
prd-coverage:可选openspec/ui-engineering-baseline.json列表组件基线(如 wTable,项目配置、不写死业务) - 🔧
VISUAL_REGRESSION_EXEMPT须可审计原因;有原型图时豁免不能省略 visual AC - 📚 模板:03/04/05、演示迁移 skill、分层测试策略同步
- 🧪 单测:
src/tests/uiInteractionGate.test.ts - 紧急跳过:
OPSX_SKIP_UI_INTERACTION_GATE=1、OPSX_SKIP_UI_BASELINE=1
1.5.0 — PRD 分层架构(方案一实施)
- ✨ 新增:
prd-enrich命令,从完整 PRD 提取结构化细节层 - ✨ 新增:
gate --expect prd-details-complete门禁,检查细节层完整性 - ✨ 新增:
source/PRD-details/目录结构(字段定义、状态机、导出规范、交互规范、边界场景) - 🔧 增强:PRD 原子数从 146 提升至 300+,覆盖度提升 106%
- 🔧 增强:支持字段级、状态机级、导出字段级细节验证
- 📚 新增:完整的 PRD 细节提取提示词模板
- 📚 文档:
CHANGELOG-v1.5.0-prd-layered-architecture.md - ✅ 向后兼容:未使用新功能的项目不受影响
1.4.0 — 大任务拆分 + 上下文压缩 + 待确认项管理
- ✨ 新增:大任务自动拆分与 Subagent 编排(
analyze-task) - ✨ 新增:上下文自动压缩机制(≥75%/150K 触发,汇总压缩至约 30% 保留,AC-ID 全文保留,
compress-context) - ✨ 新增:待确认项系统化管理(
sync-confirmations,list-confirmations) - ✨ 新增:临时标记机制(
allow-gate-pass) - ✨ 新增:最终交付汇总报告(
10-待确认项最终汇总.md) - 🔧 增强:gate 命令集成待确认项检查
- 🔧 增强:session state 扩展(向后兼容旧版)
- 📚 新增:7 个 CLI 命令支持新功能
- 📚 文档:完整使用示例(
docs/COMPLETE_EXAMPLE_v1.4.0.md)
1.3.29 — Monorepo 智能检测(无需环境变量)
- 智能检测 monorepo 结构:自动识别
frontend/、packages/frontend/、apps/frontend/、client/等子目录 - 优先级逻辑:
- 环境变量
SDD_FLOW_KIT_INSTALL_ROOT(强制覆盖) - 当前目录有
package.json→ 使用当前目录 - 检测到 monorepo 子目录(含
package.json+ 前端特征文件)→ 自动使用子目录 - 使用传入的
projectRoot
- 环境变量
- 前端特征检测:
src/、public/、vite.config.ts、webpack.config.js、tsconfig.json - 修复问题:在
adInsight-web/根目录执行时,不再在根创建无用配置,自动定位到frontend/目录 - 向后兼容:保留
SDD_FLOW_KIT_LEGACY_MONOREPO=1环境变量用于旧版行为 - API 变更:
resolveInstallRoot改为异步函数,返回Promise<string>
1.3.13 — 执行模式拆分 + 回合结束约束 + chain 机械串联
- 新增
executionMode:full-chain(默认)与staged-confirm(分阶段确认),正交于strictCommands - 兼容「严格SOP,不可替代」→
staged-confirm+strictCommands - 模板写入回合结束条件,禁止待办清单式提前收尾
- 新增
chain、session modeCLI;invoke自动解析执行模式
1.3.11 — PRD 自动修复改为「每项最多 3 次」
- 每轮只修
prd-diff仍失败的剩余项;8 项已修好则下轮只盯剩下 2 项 - 单项重试时 prompt 附「上次错误代码 + 错误描述」摘要,避免重复同样错误
- 状态持久化:
.prd-remediate-state.json;单项 3 次仍失败 → 写入 08 待人工确认
1.3.10 — PRD 自动修复支持多 Agent
prd-remediate按项目安装环境自动选择 Cursor / Claude Code / Codex / OpenClaw- Claude Code 安装(
.claude/skills)时默认用claude -p执行修复,不限于 Cursor - 可用
--agent claude-code或SDD_FLOW_KIT_ENABLE_*_AUTORUN=0控制
1.3.12 — Confluence 关键字搜索稳定性(dosearchsite 主路径)
confluence-doc.py:每个关键词优先打开dosearchsite.action?queryString=...专用搜索页(不再依赖#all-updates顶栏搜索)- 匹配放宽:标题命中或 URL 路径命中 均可得分(
score_link_match原已支持,增强前缀匹配与 ADI 加权) run_search_dosearch:处理ERR_ABORTED、搜索结果页导航重试;顶栏搜索降为兜底- 新增
CONFLUENCE_DEBUG=1输出选择器解析日志 - 更新
01-adi-doc-skill-指引/doc-skill.SKILL:关键字搜索为主,pageId 直链为可选兜底
1.3.9 — PRD 不一致自动修复循环(最多 3 次)
- 新增
prd-remediate:prd-diff失败 → 按09生成修复指引 → 调 AI 工具/opsx-apply修代码 → 再prd-diff(每项最多 3 次) - 3 次仍失败:自动写入
08「待人工确认汇总」,状态待人工确认(自动修复3次未果) validate内置上述循环;escalated 后needUserConfirm=true
1.3.8 — PRD 脚本语义 diff + 全量测试覆盖门禁
- 新增
prd-diff:机械提取 PRD 字面量,在src//e2e/中搜索,生成09-PRD语义diff报告.md gate prd-coverage增强:校验 08 证据路径真实存在、08 结论与脚本 diff 一致、可验证 PRD 须有自动化测试 + E2E- 解决「08 看起来合规但实际对比不准」:08 标「一致」但代码无 PRD 字面量 → gate 失败
- 解决「E2E 只覆盖主路径」:所有
ui-verifiable/behavior-verifiablePRD 原子须在测试中引用 PRD-ID 或字面量,且须有 E2E - 所有声明
e2e类型的 AC(含 P1/P2 边缘场景)均须有 e2e/ 下测试
1.3.7 — 强制验收与 PRD 一致性复查
validate强制 E2E:Node ≥ 18 且缺 Playwright 时自动安装@playwright/test+ chromium;Node < 18 跳过安装且不报错(E2E 需nvm use 18+后再装)- 新增
gate prd-coverage:最细粒度 PRD 原子全覆盖 + 08 报告合规 + P0 AC 测试映射 - 新增
prd-review命令与08-PRD一致性复查报告.md/ 提示词(禁止揣摩、禁止兜底,不一致按 PRD 修复) deliver前必须通过prd-coverage门禁
1.3.3 — Confluence PRD 拉取修复(ADI 长标题页)
confluence-doc.py:匹配时统一-/_;ADI 增加ADI_V*结算关键词- ADI 需求页无「PRD」面包屑时按
ADI_V*/ 结算开票回款标题识别 - 支持
CONFLUENCE_PAGE_ID直链(如 V2.3.4 →109609740) dosearchsite搜索改用domcontentloaded,降低网络抖动失败率
