打开网易新闻 查看精彩图片

AI编程有个鬼故事:你昨天让Claude写的代码能跑,今天用同样的提示词,它给你另一套实现。不是AI变笨了,是你那个"20分钟来回拉扯"的过程根本没被记录下来。

开发者Harper Reed在博客里算过一笔账:一个中等复杂度的功能,平均要跟AI对话12轮,产生约4000字的上下文。这些信息散落在聊天窗口里,无法diff、无法回滚、无法让队友接手。他管这叫"vibe coding"——靠感觉编程,感觉没了,代码就成了孤儿。

这场景像极了十年前的AWS控制台运维。那时候配负载均衡、安全组、自动扩缩容,全靠鼠标点点点。能跑就行,直到老板问"能原样再搭一套吗",答案永远是"大概可以"。

Terraform的出现终结了这种手工 chaos。Infrastructure as Code(基础设施即代码)把一切都写进.tf文件,plan、apply、可回滚、可评审。控制台还在,但正经团队碰都不碰。

AI辅助开发现在就是那个"点点点"阶段。我们聊天、复制粘贴、人工验证、再聊一轮。奏效吗?奏效。能追溯吗?不能。

Reed想了一个粗暴的解决方案:如果AI工作流也能写成代码呢?

把AI调用变成纯函数

把AI调用变成纯函数

他造了个叫CoDD(Coherence-Driven Development)的Python CLI工具。核心逻辑一句话:用Markdown写需求,用命令行跑流水线,全程零交互

流水线长这样:

打开网易新闻 查看精彩图片

spec.md(需求文档)→ codd init(初始化配置)→ codd plan --init(AI设计文档依赖图)→ codd generate --wave 1..N(分批生成设计文档)→ codd validate(质量门禁,抓AI偷懒)→ codd implement --sprint 1..M(按设计文档生成代码)→ codd assemble(组装成可运行项目)→ 标准构建(npm/cargo/whatever)

关键细节:全程没有聊天窗口。每个AI调用都走claude --print,Claude Code CLI的非交互式STDIO模式。提示词进,文本出,AI变成纯函数。

配置里这一行定义了AI怎么被调用:

ai_command: claude --print --model claude-opus-4-6 --tools ""

把claude换成gpt-4-turbo、换成本地ollama,流水线照样跑。CoDD不关心你用哪个大模型,只关心stdin/stdout。

这和市面上多数AI代码生成器的区别在哪?它们把每个提示词当独立事件处理,CoDD把设计文档链成依赖图。生成第N份文档时,系统知道它依赖第1到N-1份的哪些章节,自动注入上下文。不是"再聊一轮",是"按图施工"。

质量门禁:专治AI偷懒

质量门禁:专治AI偷懒

Reed在博客里坦承了一个痛点:AI会偷懒。你让它生成五个模块的接口定义,它可能只写三个,另外两个用"类似上述方式实现"糊弄过去。

codd validate就是用来抓这种敷衍的。它会检查设计文档的完整性、一致性,标记出"这里AI在划水"。不通过就阻断流水线,打回去重生成。

打开网易新闻 查看精彩图片

这套机制源自Reed的另一个观察:AI生成的代码质量,跟提示词的工程化程度正相关。随口一聊的提示词,产出像抽奖;结构化、带约束、有验证的提示词,产出才稳定。

CoDD把提示词工程藏进了流水线。用户只需要写Markdown需求文档,系统会自动拆解成结构化提示词,按依赖顺序喂给AI。Reed管这叫"Harness as Code"——把驾驭AI的过程也代码化。

从个人玩具到团队工具

从个人玩具到团队工具

Reed目前用CoDD做了三个完整项目:一个内部数据分析工具、一个CLI实用程序、一个实验性的Web服务。他记录的数据是:设计文档生成阶段,AI平均每波次需要人工干预0.3次;代码实现阶段,这个比例降到0.1次。

更意外的是团队协作。以前"你用的什么提示词"是个无法回答的问题,现在全在Git里。同事可以checkout任意历史版本,看到当时的需求文档、设计依赖图、生成的代码,完全复现决策过程。

有个细节很能说明问题:Reed的团队发现,codd validate拦截的"AI偷懒"案例中,73%发生在项目初期——那时候AI还没理解业务领域的术语体系。跑过两轮迭代后,偷懒率骤降到12%。这说明结构化流水线有个副作用:它在训练AI理解你的特定上下文。

当然,限制也很明显。CoDD不适合探索性编程——那种"我不知道要做什么,先跟AI聊聊"的场景。它适合需求相对明确、需要可维护性的工程任务。Reed自己说:这是"用AI写代码"和"用AI造软件"的分水岭。

安装命令很朴素:pip install codd-dev。文档还在快速迭代,YAML配置格式两周内变了三次。但核心概念已经定型:AI调用即代码,流水线即文档,可重复性即质量。

Reed在博客结尾抛了一个问题:当AI编程从"聊天艺术"变成"流水线工程",我们是在降低门槛,还是在制造新的专业壁垒?他的团队现在招工程师,已经开始问"你写过AI流水线配置吗"——这个问题六个月前还不存在。