构建 SpecSync:我如何使用自定义 MCP 工具扩展 Kiro

发布: (2025年12月6日 GMT+8 01:00)
4 min read
原文: Dev.to

Source: Dev.to

问题:代码、测试、文档和规范之间的漂移

想象一下:凌晨 2 点,生产环境宕机。你的前端在调用 GET /users/{id}/posts,而后端在三周前已经删除了这个接口。测试?全部通过。文档?仍然显示该接口存在。

有人更新了代码,却忘记更新测试,文档更是彻底忘记了。规范?几个月都没人去看。这种 漂移——代码、测试、文档和规范逐渐变得互不相干——会严重拖慢开发速度。

什么是 SpecSync?

SpecSync 是一个 超级 级别的 pre‑commit hook,在提交发生之前就验证一切保持同步。你的 Git 提交会直接拒绝不一致的情况。

SpecSync 工作原理

添加新接口

git add backend/handlers/user.py
git commit -m "Add user posts endpoint."

SpecSync 会阻止提交:

❌ 等等。你添加了一个接口,但:
   - 没有对应的规范
   - 没有对应的测试
   - 没有对应的文档

先补全这些再试。

在补齐缺失的规范、测试和文档后,提交即可成功。Git 历史中不再有谎言。

微服务问题

当后端团队发布破坏性变更时,前端可能仍在调用旧接口。SpecSync Bridge 能提前捕获这种情况。

后端:

specsync-bridge extract   # 提取 API 合约
git push                  # 推送共享

前端(每小时自动同步):

specsync-bridge validate

当前端版本落后时的输出:

❌ 你正在调用 GET /users/{id}/posts
   后端在上周已经删除该接口。

你可以在开发阶段发现不匹配,而不是等到生产环境。

关键特性

1. 一键式设置

specsync-bridge setup

该命令会自动检测你的环境,询问几个问题,然后完成——无需手写 YAML。

2. 自动同步

specsync-bridge auto-sync --enable

合约每小时在后台静默同步。只有在出现问题时才会通知你。

3. 基于 Git,无需额外基础设施

specsync-bridge add-dependency backend \
  --git-url https://github.com/org/backend.git

不需要 Kafka、服务网格或数据库——只要 Git。

实际效果

我在一个包含五个服务的微服务项目中测试了 SpecSync:

  • 第 1 周: 检测到 23 条我们之前未发现的漂移问题。
  • 第 2 周: 在三个破坏性变更进入预发布前拦截。
  • 第 3 周: 新加入的开发者相信文档——因为文档真的正确。
  • 第 4 周: 由于 API 不匹配导致的生产事故为零。

团队的反应?“为什么以前没有这个工具?”

快速入门(约 2 分钟)

pip install specsync-bridge
specsync-bridge setup

回答几个问题即可完成。

项目已开源。

SpecSync 的座右铭

你的代码会说谎。你的文档会说谎。你的测试会说谎。它们并非有意,而是随着时间逐渐漂离。SpecSync 强制它们在提交时说实话——自动、永远。Git 中没有漂移 = 生产环境也没有漂移。

Back to Blog

相关文章

阅读更多 »