Vibe coding能让你很快跑出一个能用的demo。麻烦都在这之后:密钥泄露了,依赖在你脚下悄悄换了版本,测试从来没跑过,服务只在某一台笔记本上活着。下面这10个工具,每个补一个这样的窟窿。顺序大致就是我会往新项目里加的顺序。

1. 带pre-commit的Git钩子

pre-commit框架会在提交落地之前跑检查,坏改动进不了共享分支。关键是钩子要快:格式化、lint、一小撮快速测试放在这里,完整测试套件留给CI。

2. Gitleaks

Gitleaks扫描仓库里的密钥,比如API key和token,新提交和历史记录都扫。Agent有时会把示例值抄进真实代码,扫描器能在推送之前把它拦下来。

3. Linter和格式化工具

Biome和ESLint都能抓常见错误,比如未使用的变量和不安全的写法。格式化工具则把风格争论从代码评审里拿掉。每件事选一个工具,并且让CI在出现警告时就失败,而不只是错误——规则才真正有约束力。

4. 类型检查器

TypeScript的编译器,或者你所用语言的等价物,能在代码运行前抓出类型不匹配。能开严格模式就开。Agent产出的代码经常看着对,但只对它试过的那些情况有效。

5. 单元测试运行器

Vitest或Jest让你快速、隔离地检查函数。为你想要的行为写测试,并确认行为被破坏时测试会失败。一个在坏代码上也能通过的测试,什么信息都给不了你。

6. Playwright

Playwright驱动真实浏览器走用户的实际流程。它能抓到单元测试漏掉的东西:点了没反应的按钮、提交到错误地方的表单、重构之后挂掉的页面。

7. Dependabot或Renovate,外加依赖审计

依赖有新版本或有已知漏洞时,Dependabot和Renovate会开pull request。再在CI里配一个审计,比如npm audit或pip-audit,把新出现的高危发现当作构建失败处理。小步保持依赖更新,比漂了几个月之后来一次大升级轻松得多。

8. Semgrep

Semgrep跑基于模式的静态分析,你可以为Agent反复犯的错误写规则,比如用字符串拼查询。它把你反复写的评审意见变成一条自动检查。

9. 错误追踪

Sentry一类的服务从运行中的应用捕获异常,带上堆栈和引发它的请求。没有它,bug的第一份报告通常来自用户。

10. TDK CLI:本地技术栈

多数vibe coding出来的应用不止一个进程:前端、API、数据库、worker。它们在作者机器上能跑,到同事那就挂,通常是因为服务启动顺序不对或者端口打架。

TDK CLI用一个service.json文件描述每个服务,从它生成Docker、路由和Tilt文件,再用tdk up把整个栈拉起来。三个特性专门对付脆弱性:

  • tdk doctor --json检查这台机器能不能跑起这个栈,包括容器运行时是否可达。
  • tdk up main --dry-run只展示计划、端口和启动顺序,不真的启动任何东西。
  • 漂移检查在启动前把生成的文件和保存的快照做比对,手改过的Dockerfile或Tiltfile会阻断启动,并点名是哪个文件。

它面向本地开发。生产部署仍然交给Helm、Argo CD或Kustomize这类工具。它还支持MCP server,即tdk mcp,如果你想让Agent直接启动技术栈并读取就绪状态。

怎么开始

按上面的顺序加。先上前置钩子和密钥扫描器,它们最早拦住代价最高的错误。然后加类型检查器和测试。应用超过一个服务之后再上TDK CLI,让每个队友用同一种方式把它跑起来。浏览器测试和错误追踪,等应用有真实用户了再跟上。

每个工具检查的都是Agent自己检查不了的东西。合在一起,它们把一个快速demo变成你能跑、能改、能上线的代码。