SDD Spec-Driven Development

记录几个模板

规格文件

不同团队的具体模板会有差异,但核心内容大致包括:

  • 页面/交互结构定义:应用包含哪些页面、每个页面的字段组成、操作按钮及其触发条件,以及页面之间的跳转关系
  • 数据模型定义:数据实体、字段类型与约束、实体间的关联关系
  • 业务规则与权限约束:核心业务逻辑、访问控制边界
  • 验收标准:以验收准则为导向的功能与非功能需求(如延迟、可用性等可量化指标)
  • 技术架构与依赖:数据契约、集成边界、错误行为、并发假设,以及风险与缓解措施

spec.md

  • 明确 Non-Goals/Goals
  • Problem Statement:为什么做?
  • Success Metrics:做到什么程度算完?(必须可量化)
  • User Stories:谁在什么场景下用?
  • Acceptance Criteria:如何验证?
  • Constraints:技术限制是什么?
工具 定位 核心特点 适用场景
Spec Kit (GitHub) Agent-agnostic 框架 三文件体系 + constitution 通用项目(43.7k Star)
OpenSpec (Fission-AI) 轻量迭代工具 Spec 在对话中完善 小型快速项目
Kiro (AWS) SDD-native IDE 完整 IDE 集成 AWS 生态
QoderWork (阿里) Quest 执行引擎 Spec → Quest → PR 自动化 阿里生态

Feature Spec 模板

Goal(一句话目标)

  • ...

Non-goals(明确不做)

  • ...

Acceptance Criteria(验收标准)

  • Given ...
  • When ...
  • Then ...

Edge Cases(边界条件)

  • 空值/缺省:
  • 重复/幂等:
  • 并发/竞态:
  • 权限/可见性:

Output / Deliverables(交付物)

  • API / DB / UI 变更:
  • 测试清单:
  • 回滚说明:

另一种Simple Example

复制代码
## Login Feature

**What it does:** Allows registered users to access the application.

**Requirements:**
- SHALL accept email and password
- SHALL validate email format before submission
- SHALL display error for invalid credentials
- SHALL redirect to dashboard on successful login
- SHALL rate-limit to 5 attempts per 15 minutes

**Scenarios:**
1. Valid credentials → redirect to /dashboard
2. Invalid credentials → show error, do not redirect
3. Empty fields → show validation errors
4. 6th failed attempt → show rate limit message

**Constraints:**
- SHALL NOT store passwords in plain text
- SHALL NOT allow brute force attacks
- SHALL NOT expose whether email exists

docs/specs/checkout-coupon/ proposal.md 为什么现在做、影响谁 spec.md 需求和场景 design.md 决策和取舍 tasks.md 可评审实现切片 test-evidence.md 合并前必须提供的证据

API Spec 模板(OpenAPI 思路)

Endpoint

  • Method: GET/POST/PUT/DELETE
  • Path: /v1/...
  • Owner: ...

Request

  • Headers:
  • Query:
  • Body schema:
    • field: type / required / default / constraints
  • Example request:

Response

  • Success (2xx):
    • schema:
    • example:
  • Error (4xx/5xx):
    • code: string
    • message: string
    • traceId: string
    • example:

Compatibility

  • 向后兼容说明:
  • 废弃策略:

Test Checklist

  • 正常路径
  • 参数校验失败
  • 鉴权/权限
  • 超时/重试/幂等

openspec使用记录

  1. openspec init
  2. /opsx:explore 先梳理需求
  3. /opsx:propose 创建规格和任务
  4. 人工检查 proposal/design/tasks/spec
  5. /opsx:apply 开始编码
  6. openspec validate 校验
  7. /opsx:archive 归档
相关推荐
小豆庄9 小时前
本地视频打码:多模型检测、帧间追踪与18种模糊的选型
opencv·目标检测·ai·自然语言处理·音视频·视频
gugugu.12 小时前
同一个 ReAct,两种手写方式:LangChain 文本协议 vs LangGraph 状态图
ai·langchain
小七-七牛开发者14 小时前
Tool-Use Agent 如何扩训练数据:拆解工具、任务与环境状态的 Scaling Law
ai·agent·工具调用·scalinglaw·synthapi
wflynn17 小时前
Mistral Large 4发布,万亿参数模型的编码与安全实测数据
ai·技术
日日大王学编程17 小时前
AI 时代后端方向新人的未来规划与看法
人工智能·后端·python·ai·golang
土星云SaturnCloud18 小时前
基于边缘计算与AI视觉的智慧街面治理方案:架构设计与场景落地
服务器·人工智能·ai·边缘计算
Elastic 中国社区官方博客18 小时前
基于 Elasticsearch 与 Jina AI 的全模态智能搜索实践:技术全解析
大数据·人工智能·elasticsearch·搜索引擎·ai·信息可视化·jina
Solange__18 小时前
图片转3D导出GLB、FBX还是OBJ?按5类任务比较材质、动画与可编辑性
人工智能·3d·ai·自然语言处理·编辑器·blender·材质
GJGCY19 小时前
金融AI Agent安全如何评估?数据出站、身份映射、参数绑定与审计追踪机制
人工智能·经验分享·安全·ai·金融·自动化·智能体
涵美女程序猿19 小时前
AI 商品素材工作台怎么搭?Lingko AI 追踪便携显示器接口与支架版本
ai