<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>需求管理 on KnightLi的博客</title>
        <link>https://knightli.com/tags/%E9%9C%80%E6%B1%82%E7%AE%A1%E7%90%86/</link>
        <description>Recent content in 需求管理 on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Sun, 14 Jun 2026 23:11:10 +0800</lastBuildDate><atom:link href="https://knightli.com/tags/%E9%9C%80%E6%B1%82%E7%AE%A1%E7%90%86/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Vibe Coding 最大的坑：需求漂移</title>
        <link>https://knightli.com/2026/06/14/vibe-coding-requirement-drift/</link>
        <pubDate>Sun, 14 Jun 2026 23:11:10 +0800</pubDate>
        
        <guid>https://knightli.com/2026/06/14/vibe-coding-requirement-drift/</guid>
        <description>&lt;p&gt;很多人讨论 Vibe Coding 的风险，第一反应是代码质量差、安全漏洞多、后期难维护。这些问题都真实存在，但对一个人长期做项目来说，更致命的往往是另一件事：需求漂移。&lt;/p&gt;
&lt;p&gt;需求漂移不是某个 bug，也不是一次明显的错误提交。它更像项目里的方向感慢慢变钝：功能还在增加，代码还在运行，文档也没有完全丢失，但你已经说不清当初为什么这样拆模块、为什么保留这个约束、下一步到底该接在哪个位置上。&lt;/p&gt;
&lt;p&gt;等到你想加一个看似简单的新功能时，问题就会集中爆发。改这里，那里坏；修那里，这里又变形。你开始让 AI 一轮轮补丁式修复，最后发现真正缺的不是代码，而是你对项目的完整地图。&lt;/p&gt;
&lt;h2 id=&#34;为什么长项目特别容易漂&#34;&gt;为什么长项目特别容易漂
&lt;/h2&gt;&lt;p&gt;Vibe Coding 的爽感来自速度。你说一句模糊需求，AI 很快就能生成一屏代码；你再补一句，它继续往前接。短任务里这很高效，但长项目里会带来两个叠加问题。&lt;/p&gt;
&lt;p&gt;第一，模型会忘。这里的“忘”不一定是完全看不见上下文，而是长上下文里的关键信息权重下降。早期的产品目标、架构取舍、命名约定和边界条件，随着对话变长，会被大量调试细节、临时修复和中间状态淹没。上下文窗口越吵，模型越容易抓错重点。&lt;/p&gt;
&lt;p&gt;第二，人也会忘。AI 把写代码的阻力降得太低，原本会逼你停下来想清楚的过程被跳过了。以前需求不清楚，你写不下去；现在需求不清楚，AI 也能先写出一版。模糊的意图被快速固化进代码，后面再回头解释，就越来越困难。&lt;/p&gt;
&lt;p&gt;这也是个人项目最容易撞墙的地方。你同时是产品经理、开发者、测试和运维。写代码时你希望快速推进，做产品判断时又必须慢下来想清楚“到底要什么”。AI 加速的是前者，却不能替你完成后者。&lt;/p&gt;
&lt;h2 id=&#34;最大的问题不是-ai-写错而是意图丢了&#34;&gt;最大的问题不是 AI 写错，而是意图丢了
&lt;/h2&gt;&lt;p&gt;代码能描述系统做了什么，却很难说明当初为什么这么做。&lt;/p&gt;
&lt;p&gt;一个项目失控，常常不是因为某一段代码写得特别糟，而是因为决策背后的意图散落在长对话、临时提示、脑内记忆和零碎提交里。等你再次打开项目，只能看到结果，看不到理由。&lt;/p&gt;
&lt;p&gt;这时 AI 也帮不上太多。它可以读代码、找调用链、补测试，但它无法可靠还原当初的取舍。它甚至可能基于当前局部代码继续“合理化”错误方向，让漂移越修越深。&lt;/p&gt;
&lt;p&gt;所以 Vibe Coding 里的关键问题不是“如何让 AI 永远不忘”，而是“不要把项目记忆只放在对话里”。&lt;/p&gt;
&lt;h2 id=&#34;把项目记忆搬进文件&#34;&gt;把项目记忆搬进文件
&lt;/h2&gt;&lt;p&gt;对抗需求漂移，最有效的做法是把意图、约束和状态落到仓库里，让每次新会话都能重新读取。&lt;/p&gt;
&lt;p&gt;最轻量的是写一份 &lt;code&gt;CLAUDE.md&lt;/code&gt;、&lt;code&gt;AGENTS.md&lt;/code&gt; 或类似规则文件。它不需要很长，但要清楚写明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;这个项目解决什么问题。&lt;/li&gt;
&lt;li&gt;当前最重要的产品目标是什么。&lt;/li&gt;
&lt;li&gt;哪些架构边界不能随便改。&lt;/li&gt;
&lt;li&gt;常用命名、目录、测试和发布规则是什么。&lt;/li&gt;
&lt;li&gt;哪些做法是明确禁止的。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这份文件的价值不是“提示词更高级”，而是把最容易漂走的约束固定在每次会话的开头。它应该短、稳定、可读，避免塞满临时细节。&lt;/p&gt;
&lt;p&gt;再往上一步，是写规格文档。不要直接让 AI “做一个功能”，而是先把需求拆成可检查的规格：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户场景是什么。&lt;/li&gt;
&lt;li&gt;输入和输出是什么。&lt;/li&gt;
&lt;li&gt;成功条件是什么。&lt;/li&gt;
&lt;li&gt;不做什么。&lt;/li&gt;
&lt;li&gt;会影响哪些已有模块。&lt;/li&gt;
&lt;li&gt;需要补哪些测试或验证。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;规格文档的作用，是让 AI 围着明确意图工作，而不是围着你随口的一段提示工作。对个人项目来说，这一步尤其重要，因为没有产品经理替你把模糊想法压成清晰需求。&lt;/p&gt;
&lt;h2 id=&#34;每次会话结束前做交接&#34;&gt;每次会话结束前做交接
&lt;/h2&gt;&lt;p&gt;长项目不要指望一个会话从头打到尾。会话越长，调试噪声越多，越容易出现判断质量下降。&lt;/p&gt;
&lt;p&gt;更稳的做法是把每次工作结束前的状态写进文件，例如 &lt;code&gt;PROGRESS.md&lt;/code&gt;、&lt;code&gt;TODO.md&lt;/code&gt; 或某个任务日志：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本次完成了什么。&lt;/li&gt;
&lt;li&gt;改了哪些关键文件。&lt;/li&gt;
&lt;li&gt;哪些问题尚未解决。&lt;/li&gt;
&lt;li&gt;下一次应该从哪里开始。&lt;/li&gt;
&lt;li&gt;当前不能破坏的约束是什么。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;然后再提交代码。这样下一次开启新会话时，AI 不需要从漫长聊天记录里猜项目状态，而是直接读取仓库里的交接材料。&lt;/p&gt;
&lt;p&gt;这件事看起来笨，但很管用。它把记忆从易漂移的对话，转移到了可版本管理的文件系统里。&lt;/p&gt;
&lt;h2 id=&#34;什么时候该停下来重整&#34;&gt;什么时候该停下来重整
&lt;/h2&gt;&lt;p&gt;如果你已经遇到这些现象，就该暂停生成新功能，先整理项目：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;同一个问题反复修，修完又在别处复发。&lt;/li&gt;
&lt;li&gt;AI 经常改动和任务无关的模块。&lt;/li&gt;
&lt;li&gt;你解释不清某个目录、接口或状态字段为什么存在。&lt;/li&gt;
&lt;li&gt;新功能越来越依赖补丁，而不是清晰设计。&lt;/li&gt;
&lt;li&gt;文档、代码和实际行为开始互相对不上。&lt;/li&gt;
&lt;li&gt;你需要花很久才能重新进入项目状态。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这时继续 Vibe Coding 只会把混乱堆得更高。更好的顺序是先补项目地图，再写代码：整理模块说明、补规格、删除废弃路径、补测试、把重要决策写成 ADR 或简短设计记录。&lt;/p&gt;
&lt;h2 id=&#34;个人项目真正要守住什么&#34;&gt;个人项目真正要守住什么
&lt;/h2&gt;&lt;p&gt;AI 可以帮你写代码、查 bug、补测试、重构局部实现，但它不能替你长期持有产品意图。&lt;/p&gt;
&lt;p&gt;一个人做项目，最该守住的不是“每次都让 AI 多写一点”，而是你始终知道这个东西为什么存在、下一步为什么做这件事、哪些边界不能让步。只要这部分还清楚，AI 是加速器；一旦这部分漂掉，AI 只会更快地扩大偏差。&lt;/p&gt;
&lt;p&gt;所以 Vibe Coding 最重要的习惯，不是追求一个完美提示词，而是定期把需求、进度、约束和决策写回仓库。对话可以很快，项目记忆必须很稳。&lt;/p&gt;
&lt;p&gt;原文链接：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;知乎：&lt;a class=&#34;link&#34; href=&#34;https://www.zhihu.com/question/2006474721647157414/answer/2041532900202508861&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.zhihu.com/question/2006474721647157414/answer/2041532900202508861&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
