AI Coding:Vibe Coding 与驱动开发方法论
一句话定位:从「跟 AI 聊着写」到「用工程纪律驾驭 AI 写」——按任务风险选择方法论层级:随手 vibe、规格先行、纪律门禁、全流程工程化。前置:Context 工程——AI 编码的所有方法论,本质都是喂给编码 Agent 的上下文纪律。
生成速度上去了,工程跟上了吗
一句话需求,AI 十分钟生成一个能跑的页面——Vibe Coding 的爽感是真的。2024 年起,「有想法就能做产品」成了现实;2025 年初,这种随手感开发的方式有了自己的名字。
第三天,需求变了一版,AI 改崩了另外两处;第五天,你发现自己已经读不懂自己「写」的代码;第八天,没人说得清系统现在的真实行为是什么。生成的速度是自然语言的速度,工程的消化速度还是人读代码的速度——落差每天都在扩大。
生成速度上去了,工程怎么跟上?这不再是「会不会用 AI」的问题,而是方法论分层的问题:不同风险的任务,配不同强度的纪律。
图:四级阶梯——纪律强度逐级上升;选哪级看任务风险,不看技术潮流(图内工具与术语,正文均有解释)
渐进拆解:从卡丁车到车队
把 AI 编码比作开车——同一台发动机(模型),配不同强度的管理制度:
- L1 随手 vibe:开卡丁车,场地封闭(一次性原型)时怎么爽怎么开。
- L2 规格先行:考驾照学交规,先说清「要去哪、守什么规则」再上路。
- L3 纪律门禁:开出租,计价器(测试)和年检(审查)是营运的法定成本。
- L4 全流程:管物流车队,多车(子代理)、多线路(Worktree 隔离)、调度与验收成体系。
L1 → L2 的转折:角色转变
Vibe Coding 的真名是「角色转变」:人从写代码的,变成说清需求、验收结果的。AI 负责打字,人负责判断——但「说清需求」恰恰是工程里最难的一环。随手聊天说不清楚,就得在动手前把需求写成结构化文档——这份文档业界叫 spec(规格)。写不写它,就是 L1 与 L2 的分界。
L2 规格先行:先写 spec,再生成
2025 年起业界把它叫成规范驱动开发(Spec-Driven Development),并已工具化。GitHub 官方的 spec-kit 把流程串成六级:
- 立宪(项目原则)
- 规格(要什么、为什么)
- 计划(技术方案)
- 任务(拆解)
- 实现
- 收敛(对照规格检查偏差,不符就再来一轮)
另一条常用路线 OpenSpec 更轻:以「变更提案」为单位组织规格,改动留档可追溯,尤其适合在存量项目上做增量。
两家路数不同,定义可以浓缩成同一句话:先写 spec 再写代码,spec 是人和 AI 共同的事实来源。 这套打法直接针对 AI 编码的头号病症——代码漂移(AI 生成的速度超过人审查的速度,行为悄悄偏离意图)。
L3 纪律门禁:不信任「我做完了」
规格解决了「做什么」,门禁解决「做没做成」。Jesse Vincent(GitHub ID:obra)开源、社区广泛采用的 Superpowers 技能集把这一层做成了可安装的纪律包,核心是四样:
- 头脑风暴到硬门禁:动手前先过 brainstorming 把模糊需求磨成设计文档,每一步走硬门禁(HARD-GATE)——不拿到人的明确批准,流程物理上过不去,而不是「提示词里说希望能确认一下」。
- 计划三段:spec 定「做什么」,计划文档管「怎么一步步做」。计划分头部(目标、架构、全局约束)、任务清单(每步 2–5 分钟量级、每步自带验证)与任务边界(独立可测、单独过审查)三段,完整模板见文末 Superpowers 仓库。
- 测试驱动:红灯(写一个失败的测试)→ 绿灯(用最少的代码让它通过)→ 重构(收拾干净)——AI 先写测试再写实现,等于把「做完」的定义前置成了可执行的标准。
- 系统化调试:四阶段流程——根因调查 → 模式分析 → 假设验证(一次只验证一个假设)→ 实施,各阶段的展开见文末 Superpowers 仓库。配套铁律(Iron Law):没完成根因调查,不许提出任何修复方案;同一个坑修三次还失败,停下来质疑架构。
L4 全流程:把一个人干不过来的活拆给编制
子代理驱动开发把编码团队化——像管一支车队:主代理统筹派活与裁决(调度),实现代理逐任务干活(货车),审查代理把关(路检)。审查走两级:每个任务完成即审一次(对照规格与质量),整条分支收尾时再终审一次;审查既可以派审查代理,也可以走工具内置的审查命令——发起与接收都有纪律:给反馈分级(哪些必须改、哪些建议),且禁止表演性同意(审查方不能为了客气放水)。
执行层面,每个计划在独立的 Worktree(Git 工作树副本)里推进,互不踩脚。分支收尾有固定的六步:
- 测试全绿
- 检测工作环境
- 确认要合并的基础分支
- 给出三个选项(本地合并 / 推远端开 PR / 暂时保留)
- 执行选择
- 清理工作区
这一层已经不是「个人用 AI」而是「AI 团队的工程管理」。
大白话:Vibe Coding 让「想到」直通「做到」,方法论阶梯管的是这条直道有多长——原型可以一脚油门,生产代码要按里程上纪律。
技术定义:对「人 + AI 编码代理」协作方式的系统化约定,按纪律强度分层:vibe 随手生成、规格先行(spec 是人机共享的事实来源)、纪律门禁(TDD 与硬门禁前置「完成」定义)、全流程工程化(多代理协作与两级审查);选型看变更频率、生命周期与后果严重度,而非技术水平。
动手:规格先行的最小实践
先看一张全景:从一句话需求到合入主干,规格驱动会把旅程拆成四站,每站人的角色不同——
图:四站旅程——每站的产出是下一站的输入;L3/L4 的门禁与审查就嵌在站 3、站 4 里
不用装任何框架,一个 Markdown 模板就能把 L1 升到 L2:
# spec: 工单导出为 CSV
## 要什么
管理员在后台点击「导出」,得到按状态过滤的 CSV 文件。
## 不做什么
不处理超过 5 万行的导出(提示分批)。
## 验收标准(可执行)
1. 导出文件用 Excel 打开中文不乱码
2. 状态过滤为空时返回空文件而不是报错
3. 10 万字符的特殊字符不破坏列对齐
三段各司其职:要什么让 AI 知道目标,不做什么堵住最常见的过度发挥,验收标准写成可执行断言——它既是给 AI 的完成定义,也是你事后的验收清单。写完 spec 再开对话,把 spec 全文喂进去;每次改需求先改 spec 再让 AI 对齐代码。这一个习惯,就能消掉大半的「改崩别处」。
边界与取舍:不是所有任务都值得上纪律
纪律是有成本的:L2 的 spec 要写和养,L3 的测试要先写,L4 的协作要人管。所以阶梯的用法是下限看后果,上限看变更频率和规模:
- 一次性脚本、探索原型、demo:L1 足够,甚至更好——快就是价值,扔了不心疼。
- 要活过一周的代码:至少 L2。spec 是你三天后读懂这段代码的唯一线索——驾照总要考一次。
- 多人协作、生产环境:L3 起步。没有门禁的 AI 代码进主干,等于没有年检的出租车上路。
- 规模化 AI 开发(代码产出大于人的审查带宽):L4 车队编队上场。
反过来,最常见的错误是倒挂:给一次性 demo 写了完整 spec(浪费),却让生产代码裸奔在 vibe 里(危险)。
最后回到那道自测题的直觉版:Agent 说「我做完了」,什么时候能信?——任务结束时有可执行的证据(测试通过、脚本跑通),且这个证据不是模型自己口头给的,就能信;其余时候,门禁见。
自测
合上文章先自己答,再展开对照:
硬门禁(HARD-GATE)防的是什么?没有它会怎样?
防的是「流程被顺手跳过」。硬门禁把关键节点(设计确认、测试通过)做成物理关卡——不拿到人的明确批准或可执行证据,流程过不去;它与「提示词里礼貌地请求确认」的区别是强制性:后者可以被模型(或人)图省事绕过,前者不能。没有硬门禁的后果:模糊需求直接进入实现(返工)、未验证的「完成」混进主干(假装完成)、AI 生成速度彻底甩开人的审查带宽(代码漂移)——三件事都会发生,而且发生时没有人察觉流程已经被跳过了。
什么时候该信 Agent 的「我做完了」,什么时候必须门禁验证?
判断依据是「完成」有没有可执行的证据,以及失败的代价。可信:任务收尾时附带了可复现的证据——测试通过且测试是真断言、命令真实执行且退出码为零、产物文件真实存在;且这些证据不是模型口头转述的。必须门禁验证:涉及生产环境与数据、影响他人代码、或任务定义里存在模糊地带——这类任务的「完成」声明一律不采信自述,用测试、构建、人工审查把关。一句话:证据在,自述可以信;证据不在,自述只是待验证的假设。
参考与延伸
- 视频版:动画拆解(约 6 分钟)——本篇的交互式演示版,逐节拍推进、可点击回看,支持竖屏模式。
- GitHub Spec Kit(官方规范驱动开发工具包,v1.0.0):立宪→规格→计划→任务→实现→收敛的完整工作流 — github.com/github/spec-kit
- OpenSpec(Fission-AI,轻量规范工具):以变更提案组织规格,纯 Markdown、适合存量项目增量演进 — github.com/Fission-AI/OpenSpec
- Superpowers 仓库(Jesse Vincent/obra):可安装的纪律包——头脑风暴、硬门禁、计划三段、子代理驱动开发的技能化实现 — github.com/obra/superpowers
- 《Understanding Spec-Driven-Development》(Martin Fowler 网站,2025):SDD 的定义梳理与三个实现层级(spec-first / spec-anchored / spec-as-source) — martinfowler.com/articles/exploring-gen-ai/sdd-3-tools.html
下一站:Embedding 与向量化——代码之外的另一半世界:机器怎么理解语义。