⚡ News

拒绝代码崩溃:Claude Code 与“规格驱动开发”实战指南

拒绝代码崩溃:Claude Code 与“规格驱动开发”实战指南

在利用 AI 进行软件开发的黄金时代,开发者们常常会遇到一个诡异的“三小时魔咒”:前一两个小时,AI 表现得像一个无所不知的架构大师,帮你快速写出基础代码;然而到了第三个小时,随着代码库的扩大和交互轮数的增加,AI 开始迷失方向。它开始引入无休止的 Bug、遗忘之前的架构约定,甚至陷入“修改 A 破坏 B,修复 B 破坏 A”的恶性循环。这种现象在 Anthropic 最新推出的命令行工具 Claude Code 中同样存在。

为什么 AI 编码会遭遇这种后期崩溃?核心原因在于“上下文漂移”(Context Drift)和“累积误差”(Cumulative Error)。随着会话的拉长,AI 的上下文窗口里充斥着大量的调试日志、中间尝试和冗余代码。AI 无法像人类程序员一样,拥有一个清晰、抽象且持久的“系统全局架构图”。每一次它试图“修复”一个小问题,都有可能在无意中推翻之前的隐式假设。

为了打破这一魔咒,“规格驱动开发”(Spec-Driven Development, 简称 SDD)应运而生。这是一种专为 AI Agent 时代设计的软件工程方法论。其核心思想是:在让 Claude Code 编写任何实际代码之前,必须先由人类和 AI 共同制定一份极其详尽且不可动摇的“系统规格书”(Spec.md)。这份规格书不仅包含功能描述,还必须严格定义:系统架构、数据流向、API 契约、边界条件以及不妥协的约束条件(如‘绝对不能使用外部状态库’)。

在 SDD 流程中,Claude Code 的强大 Agent 能力(如读取文件、执行 Bash 命令、自动跑单测)得到了最大化的释放。开发过程变成了以下循环:首先,编写或更新 Spec 规范;其次,让 Claude Code 根据 Spec 生成测试用例(Test-Driven);接着,让 Claude 执行代码编写,直到所有测试通过;最后,如果发现架构偏离,立即在 Spec 文件中进行修正,而不是直接在会话中口头纠正。通过将 Spec 视为唯一的“真理源”(Source of Truth),AI 的上下文被牢牢锚定,从而避免了长会话中的记忆衰退。

【AgentUpdate 深度解析】随着 Claude Code 等 Agent 级工具的崛起,AI 编程已经从早期的“代码补全(Copilot)”时代,正式跨入“自主代理(Agentic)”时代。然而,制约 Agent 生产力的瓶颈,已不再是 LLM 的单次推理能力,而是复杂系统开发中的状态管理与架构一致性问题。本文提出的“规格驱动开发(SDD)”本质上是在非确定性的 LLM 运行中,引入了一套确定性的“架构编译器”。它将人类的角色从“敲键盘的代码工人”重塑为“系统规格的守门人”。展望未来,随着 Model Context Protocol (MCP) 的普及,这种基于 Spec 的显式约束将成为 AI Agent 之间协同作业的标准协议,从而彻底解决长生命周期 Agent 的幻觉和崩溃难题,真正释放软件开发自动化的终极潜力。

↗ 阅读原文