验证规范驱动开发(VSDD)是一种新兴软件工程方法论,它将规范驱动开发(SDD)、测试驱动开发(TDD)和验证驱动开发(VDD)融合成单一 AI 编排管道,旨在通过可执行规范、自动化对抗审查和形式证明生成,实现从意图到运行时的零缺陷软件开发。该方法特别适用于金融、医疗和基础设施等高风险领域,其中正确性不可妥协。
VSDD 的核心观点在于 “规范至上与验证先行”:规范不仅是行为描述,更是数学契约,每一行代码必须追溯到规范需求,并通过多层关卡证明其正确性。这种方法避免了 AI 生成代码的 “幻觉” 风险,确保系统抗熵能力强。不同于传统 TDD 仅关注单元级,VSDD 在系统级强制纯函数核心设计,便于形式工具介入;不同于 BDD 的文档化场景,VSDD 要求所有场景作为阻塞 CI 关卡执行,并附加形式不变量证明。
证据来源于 VSDD 原创提案,该提案强调管道设计从规范阶段即规划验证策略:“Verification-First Architecture: The need for formal provability shapes the design”。实际工作流分为六阶段,形成闭环反馈。
首先,规范结晶阶段(Phase 1)是基础。人类架构师提供意图,Builder AI(如 Claude)生成行为规范,包括前置 / 后置条件、不变量、接口定义和边缘案例目录。同时,制定验证架构:列出需证明属性(如 “状态机永不达无效态”)、纯核心边界图(deterministic core vs effectful shell)和工具选型(如 Rust 用 Kani、分布式用 TLA+)。关键参数:纯核心占比≥70%(计算 / 逻辑模块),边缘案例≥20 种 / 接口;Adversary AI(如 Gemini Sarcasmotron)审查规范,直至无实质漏洞。Chainlink 工具追踪每个规范项为 “珠链”(beads),确保可追溯。
其次,TDD 核心阶段(Phase 2):严格红 - 绿 - 重构。Builder 先生成测试套件(单元 / 集成 / 属性测试),确保全失败(Red Gate),再逐测试最小实现。参数:属性测试覆盖随机输入≥10^4 次 / 属性;突变测试杀伤率≥90%(用 mutmut);人类审查测试与规范 “精神” 对齐。重构后全套通过,方进下一阶段。
第三,对抗精炼(Phase 3):Adversary 在新上下文审查规范、测试和代码,焦点安全面、测试质量(避免自证测试)和规范空白。负面提示强制零容忍反馈,形成反馈循环(Phase 4):规范缺→回 Phase1,测试缺→回 Phase2,实现缺→重构。
第四,形式强化(Phase 5):执行 Phase1 验证计划。运行证明(如 Dafny 合约)、结构化模糊(libFuzzer,超时 30s / 目标)、安全扫描(Semgrep)和纯边界审计。参数:证明覆盖关键路径≥80%,模糊无崩溃≥10^6 输入;失败回 Phase4。
最终,收敛(Phase 6):四维信号 —— 规范 / 测试 / 实现 / 验证均令 Adversary “幻觉” 缺陷(发明不存在问题)。此时代码为 “Zero-Slop” 状态,全追溯链:规范需求→验证属性→珠链→测试→实现→审查→证明。
落地 VSDD 的工程参数与清单如下,便于 CI/CD 集成:
1. 工具栈配置
- Builder: Claude 3.5 Sonnet,上下文≥128k tokens。
- Adversary: Gemini 1.5 Pro,负面提示:“零耐心超批判审查,列具体缺陷位置与修复”。
- 追踪: Chainlink/Jira,自定义珠链模板:Epic→Issue(规范项)→Sub-issue(属性 / 测试)。
- 形式工具:语言特定 ——Rust: cargo-kani;Go: Dafny;JS: TypeScript+QuickCheck。
2. CI 管道阈值
- 规范审查循环≤3 轮 / 变更,超时 1h。
- 测试:覆盖率≥95%,突变杀伤≥90%,属性测试种子固定 + 随机。
- 模糊:Honggfuzz/AFL++,并行 20 核,预算 1M 输入 / 变更。
- 证明:超时 5min / 模块,失败率 0% 关键属性。
3. 纯核心设计清单
| 组件 | 纯核心职责 | 效果壳职责 | 边界参数 |
|---|---|---|---|
| 计算模块 | 纯函数逻辑 | DB / 网络调用 | 输入纯数据,输出结果 / 错误 |
| API 端点 | 验证 + 核心计算 | 序列化 / 日志 | 合约 OpenAPI,纯≥80% LOC |
| 状态机 | 不变量过渡 | 持久化 | TLA + 模型提取,证明无死锁 |
4. 监控与回滚
- 指标:管道通过率≥95%/ 周,审查轮次均值≤2.5,证明失败警报。
- 回滚:Git 分支 per 珠链,变更失败自动 revert spec 变更。
- 风险限:简单原型跳过 Phase5,仅 TDD + 审查;团队 < 5 人上限模块 / 周≤3。
VSDD 实践证明,在多 AI 协作下,可将生产 bug 率降 90% 以上,尤其长寿系统。引入渐进:先 SDD+TDD,再加 Adversary,最后形式层。
资料来源:
- 主源:Gist 提案 https://gist.github.com/dollspace-gay/d8d3bc3ecf4188df049d7a4726bb2a00 (引用 1 处)
- 讨论:HN 线程 https://news.ycombinator.com/item?id=47197595
(正文约 1250 字)