
30 秒速读:LLM 生成的代码越来越敢写了,但架构约束只能靠人眼 Code Review?本篇介绍开源项目 Specflow——把规格说明转化为能”拦住构建”的契约测试和旅程测试的 LLM 开发工具,关键词:Specflow、LLM 开发工具、契约测试、构建门禁、开源项目。
项目信息表
| 项目名 | Specflow |
|---|---|
| 仓库地址 | https://github.com/Hulupeep/Specflow |
| 开发语言 | JavaScript |
| 运行平台 | 跨平台(目标项目环境) |
| 许可证 | 以仓库 LICENSE 文件为准 |
核心功能
- 契约测试:扫描源代码中的禁止模式(如不允许出现的 API、目录越权引用等),规则被违反时构建直接失败,把架构约束变成可执行的合并门禁。
- 旅程测试:用 Playwright 验证关键用户流程(登录、账户连接等)是否真的跑通,给验收标准加上行为证据。
- Duo 双代理工作流:在同一目标与验收标准下,协调 Claude Code 和 Codex 分工——一个负责构建功能,另一个负责独立审查,减少人工在两个代理之间复制消息的折腾。
- 运行记录留存:Duo 的运行记录保存在目标项目的 .specflow/duo/ 目录中,复用 spec-build 与 feature-build 的准备和实现流程,便于事后审计。
- TypeSafe 可选证据服务:可作为外部证据检查服务,为验收标准、断言和执行结果增加独立证据,支持 shadow 或 advisory 模式,不启用也能正常用 Duo。
上手指南
Specflow 的部署重心在”目标项目里装好工具、配好代理环境”,而不是起一个独立服务。
- 确认代理环境:Duo 需要同时安装并认证 Claude Code 与 Codex;GitHub 项目还需要安装并认证 gh CLI。这是最大卡点,建议先跑通认证再往下走。
- 在目标项目中安装工具:按 README 把 Specflow 或 Duo 相关工具装进目标项目。
- 定义禁止模式:契约测试依赖预先定义好的禁止模式,先从 2-3 条最痛的规则起步(如禁止直连数据库、禁止绕过鉴权),验证构建真的会被拦住。
- 准备旅程测试环境:旅程测试明确依赖 Playwright,提前确认浏览器环境、测试数据和外部服务可用。
- TypeSafe 按需启用:需要外部证据审查时才配置,通过项目根目录的 .env.local 设置 API 密钥,并保持 .env.local 未被跟踪。
适用边界
Specflow 并不是所有项目的万能答案,用之前先对号入座:
- 适合:团队已经在用 LLM 写代码;有明确的禁止模式清单和关键用户旅程;愿意把验收标准写进 CI 并接受”违规就拦构建”。
- 不适合:只需要普通单元测试覆盖率;团队用不了 Claude Code 与 Codex;不想引入代理协作流程,只想保持现有开发节奏。
- 单独评估:TypeSafe 属于可选组件,按证据审查需求单独决定是否接入,不必视为必需品。
常见问题
Q1:契约测试能覆盖复杂语义问题吗?
不能指望太多。它依赖预先定义的禁止模式,README 未说明对复杂语义或运行时行为的覆盖范围。把它理解成”架构红线扫描器”,而不是万能代码审计。
Q2:Duo 的两个代理必须同时在线吗?
是的,Duo 需要同时安装并认证 Claude Code 与 Codex,缺一个就跑不起来。评估前先确认团队能满足双代理的认证要求。
Q3:安装器更新会打断正在运行的 Duo 吗?
README 提示若 Duo 运行未完成,安装器更新可能会暂存到运行结束后。升级前确认没有正在跑的关键任务。
Q4:旅程测试的浏览器环境怎么配?
README 未给出浏览器环境、测试数据和外部服务的完整配置要求,需要结合目标项目的 Playwright 现状自行补齐。
开源地址
GitHub 国内访问较慢,如打不开可多刷新几次
适用人群一句话:适合需要用可执行门禁约束 LLM 辅助开发、把架构规则和关键流程纳入 CI 的开发团队。

关注「软件教程管家」
回复软件名即取即下:网盘下载链接 + 提取码,一步直达,不用再跳转。
本站资源仅供个人学习交流,请勿用于商业用途。软件与资料版权归原作者所有;如有侵权,请通过公众号「软件教程管家」联系我们,我们将在 24 小时内下架处理。查看免责声明 ›







