SuperAPI AI 工具集

doc-ctr

编程与开发

查看项目

更新于 10-16 02:06

技能介绍

用途

doc-ctr 用于在 SDD(规范驱动开发)工作流中创建数据契约(Data Contracts,CTR),这是可选的第 8 层产物,用于定义 API 契约、数据模式和接口规范。

上游依赖:BRD(第 1 层)、PRD(第 2 层)、EARS(第 3 层)、BDD(第 4 层)、ADR(第 5 层)、SYS(第 6 层)、REQ(第 7 层)。

下游产物:SPEC(第 9 层)、TSPEC(第 10 层)、TASKS(第 11 层)、代码(第 12 层)。

何时使用

  • 已完成 BRD 至 REQ(第 1-7 层)
  • 需要定义 API 契约或数据模式
  • 多个团队/服务需要共享契约
  • 构建微服务或分布式系统
  • REQ 第 3 节(接口规范)需要正式契约
  • 该层为可选(第 8 层),若契约简单可跳过

主要能力

强制双文件格式

每个契约需要两个文件:

  • Markdown 文件(.md):文档控制、契约概览、业务上下文、使用示例、可追溯性
  • YAML 文件(.yaml):OpenAPI 3.0 或 JSON Schema、正式契约定义、验证规则、示例载荷

示例:

ai_dev_ssd_flow/08_CTR/CTR-01_data_validation.md
ai_dev_ssd_flow/08_CTR/CTR-01_data_validation.yaml

文档控制字段(9 个必填)

CTR ID、标题、状态(Draft/In Review/Active/Deprecated)、版本(语义化版本 Major.Minor.Patch)、创建日期、作者、负责人、最后更新日期、SPEC-Ready 评分(目标 ≥90%)。

必需章节(12 节 MVP 结构)

  1. 文档控制
  2. 上下文
  3. 契约定义
  4. 满足的需求
  5. 接口定义
  6. 错误处理
  7. 质量属性
  8. 版本策略
  9. 示例
  10. 验证
  11. 可追溯性
  12. 参考

可选附录:附录 A 备选方案、附录 B 实现说明。

元素 ID 格式

模式:CTR.{DOC_NUM}.{HASH}(3 段,点分隔)

  • 接口:CTR.02.1601
  • 数据模型:CTR.02.1701
  • 契约条款:CTR.02.2001

已移除的旧格式:INT-XXX、MODEL-XXX、CLAUSE-XXX、IF-XXX、DM-XXX、CC-XXX。

YAML 契约格式

支持 OpenAPI 3.0(用于 API)和 JSON Schema(用于数据模型)。

契约版本管理

语义化版本 Major.Minor.Patch:

  • Major:破坏性变更(不兼容)
  • Minor:新功能(向后兼容)
  • Patch:缺陷修复(向后兼容)

SPEC-Ready 评分系统

用于衡量 CTR 成熟度和进入 SPEC 阶段的准备度。

评分与状态映射:

  • ≥90%:Active
  • 70-89%:In Review
  • <70%:Draft

评分标准:模式完整性(35%)、错误处理(25%)、质量属性(20%)、可追溯性(10%)、文档(10%)。

质量门:评分 <90% 会阻止 SPEC 产物创建。

按服务类型的目录组织

适用于大型项目(30+ 契约):

CTR/
├── agents/              # 智能体间通信
├── mcp/                 # MCP 服务器契约
├── infra/               # 基础设施服务
└── shared/              # 横切契约

使用时机:<10 契约用扁平目录;10-30 可选子目录;30+ 强制子目录。

使用方式

前置条件

创建前必须列出已有上游产物:

ls docs/01_BRD/ docs/02_PRD/ docs/03_EARS/ docs/04_BDD/ docs/05_ADR/ docs/06_SYS/ docs/07_REQ/ 2>/dev/null

仅引用存在的文档,上游产物类型确实不存在时使用 null,禁止使用 BRD-XXX 或 TBD 等占位符,不要创建缺失的上游产物。

创建前需阅读:共享标准、上游 REQ(尤其第 3 节接口规范、第 4 节数据模式)、模板、创建规则、验证规则、验证脚本。

保留 ID 豁免(CTR-00_*)

保留 ID 000 的文档完全豁免验证,包括索引文档、可追溯性矩阵模板、词汇表、注册表、检查清单。

创建流程

  1. 阅读上游产物,聚焦 REQ 第 3 节和第 4 节
  2. 保留 ID 编号(从 2 位数字开始,如 CTR-01、CTR-99、CTR-102)
  3. 创建双格式 CTR 文件

嵌套文件夹规则(强制):所有 CTR 文档必须使用嵌套文件夹。

位置:

  • 标准:docs/08_CTR/CTR-NN_{slug}/CTR-NN_{slug}.md + .yaml
  • 基于服务:docs/08_CTR/{service_type}/CTR-NN_{slug}/CTR-NN_{slug}.md + .yaml

创建目录:

mkdir -p docs/08_CTR/CTR-NN_{slug}/

可追溯性标签

第 8 层(CTR)必须包含第 1-7 层的标签,共 7 个标签:

@brd: BRD.01.0103
@prd: PRD.01.0702
@ears: EARS.01.2501
@bdd: BDD.01.1401
@adr: ADR-033, ADR-045
@sys: SYS.01.2601
@req: REQ.01.2703

验证检查

Tier 1 错误(阻断):9 个必填文档控制字段、双文件格式、SPEC-Ready 评分格式、YAML 模式验证、累积标签(7-8 个)、元素 ID 格式。

Tier 2 警告(建议):使用示例、错误处理、版本策略、验证规则。

Tier 3 信息:目录组织、消费者/提供者识别。

Pre-Commit 钩子

CTR 验证通过 pre-commit 钩子自动执行,包括核心验证器、质量门、SPEC-Ready 评分钩子。

适用场景

  • 多团队/多服务共享 API 契约
  • 微服务或分布式系统开发
  • 需要正式化 REQ 第 3 节接口规范
  • 大型项目(30+ 契约)需要按服务类型组织

限制

  • 该层为可选,契约简单时可跳过
  • 评分 <90% 会阻止 SPEC 产物创建
  • 必须使用双文件格式(.md + .yaml)
  • 必须使用嵌套文件夹
  • 禁止使用旧版元素 ID 格式
  • 禁止创建缺失的上游产物
  • 保留 ID 000 的文档豁免验证