规范对齐 specalign

规范对齐是一种用于检测和解决软件规范文档与实现代码之间不一致性的工作流程。它通过系统化地识别类型漂移、行为差异、缺失实现等问题,帮助开发团队保持文档与代码同步,提升软件质量与可维护性。关键词:规范对齐,代码漂移检测,文档一致性,软件开发流程,代码质量,技术文档管理。

DevOps 0 次安装 0 次浏览 更新于 2/23/2026

名称: 规范对齐 描述: 将规范文件与实现对齐。检测规范与代码之间的漂移,呈现差异,由用户决定更新规范还是代码。当规范文件及其实现都在上下文中时使用。

规范对齐

原则(始终有效)

当规范文件及其对应的实现都在上下文中时,这些原则适用:

规范与代码必须一致

  • 规范描述预期行为;代码实现它。当它们不一致时,必有一方是错误的。
  • 绝不默默容忍漂移——一旦发现立即呈现。
  • 用户决定每个差异的真相来源。不要假设。

漂移类别

  • 类型漂移:规范定义的字段/类型与实现不匹配
  • 行为漂移:规范描述的逻辑代码未遵循
  • 缺失实现:规范定义了某些内容但没有对应的代码
  • 缺失规范:代码实现了未在规范中描述的行为
  • 约束漂移:规范声明的约束代码未强制执行
  • 错误处理漂移:规范定义的错误情况代码未处理(或反之)

修改策略

  • 除非用户明确为某个差异选择“更新规范”,否则不要编辑规范文件。
  • 除非用户明确为某个差异选择“更新代码”,否则不要更改实现逻辑。
  • 更新代码后,运行代码检查/类型检查。
  • 更新规范时,保留无关部分的格式和结构。

双向感知

阅读代码时,检查是否存在规范并注意分歧。 阅读规范时,检查实现是否匹配并注意分歧。 这种感知应该是被动的——在您的响应中标记漂移,不要打断用户的主要任务,除非漂移直接相关。

工作流程(当显式对齐时)

步骤 1:定位规范

需要规范文件。搜索:

  • *.spec.md*-spec.mdSPEC.md
  • spec/*.mddocs/*.spec.md

如果存在多个规范,询问对齐哪一个。如果不存在,停止——此工作流程需要现有规范。

完整阅读规范文件。

步骤 2:将规范映射到代码

对于每个规范部分,识别对应的实现:

规范部分 源文件 状态
## 类型 src/types.ts:10-40 已对齐 / 已漂移 / 缺失实现 / 缺失规范

在评估之前阅读每个映射的源文件。

步骤 3:呈现差异

对于每个差异:

### DRIFT-01: <简短描述>

**规范说明** (spec-file.md:L42):
> <引用的规范文本>

**代码行为** (src/module.ts:L87):
> <总结的代码行为>

**影响**: <什么会破坏或不一致>

使用稳定的 ID 编号 (DRIFT-NN)。将共享根本原因的相关差异分组。

步骤 4:用户决策

对于每个差异,询问:

  • 更新规范 - 代码是正确的,更新规范以匹配
  • 更新代码 - 规范是正确的,更新代码以匹配
  • 跳过 - 推迟处理此差异

步骤 5:应用更改

规范更新:

  • 使用更正后的文本编辑规范文件
  • 保留无关部分的格式和结构

代码更新:

  • 修复实现以匹配规范
  • 更改后运行代码检查/类型检查
  • 如果更改不简单,在编辑前概述更改并确认
  • 如果受影响代码存在单元测试,运行它们
  • 如果不存在单元测试且规范定义了可测试行为,标记它

步骤 6:总结

## 规范对齐: <文件>

**发现的差异**: N
**已解决**: X (规范: A, 代码: B, 跳过: C)

### 剩余
- DRIFT-04: <描述> (已跳过)