AI 每一步都对,项目为什么还是歪了?Backlog.md 如何阻止“设计失忆”

不是模型不行,是“当初为什么”没人替它记住。

Backlog.md 官网首页

*图:Backlog.md 官网首页。它把任务、验收标准、实施计划和执行记录写成仓库里的 Markdown 文件。官网:kuwork.github.io/Backlog.md


你有没有见过这种项目?

第一版,AI 按你的描述做完,验收通过。
第二版,基于现有代码改,也没问题。
第十版,功能一个不少,界面甚至更漂亮了。

但你说不上来哪里不对。

直到你想加回最初那个设计,才发现代码里已经找不到它存在过的证据。

这不是 AI 突然变笨,而是它每次都在读“结果”,没有读到“原因”。


一、代码知道“现在是什么”,不知道“当初为什么”

AI 接到任务,第一件事通常是读代码。

这很合理。它要先知道项目现在长什么样,才知道从哪里下手。

但代码只能告诉它:这里有一个函数、那里有一层缓存、某个参数被特殊处理过。

代码不会主动解释:

  • 这个奇怪的判断,是为了兼容哪个老客户?
  • 这层看起来多余的抽象,躲过哪次线上事故?
  • 这个“先这样、以后再改”的临时方案,为什么一直没改?

于是 AI 只能根据现状,反推当初的设计意图。

反推一次,误差很小。
新代码覆盖旧代码,下一轮再基于新代码反推。

每一轮都合理,每一次验收都能过。
误差却顺着任务链,一点点累加。

最后你得到的,是一个“每个功能都对、整体方向却偏了”的项目。

清晰的原始蓝图与越改越乱的系统

二、Backlog.md 做的事,其实很朴素

它没有发明一套复杂方法论。

它只是把 AI 干活前该说清楚的东西,写进仓库里的 Markdown 文件:

  • 为什么做:任务背景与目标;
  • 怎样算完成:可勾选的验收标准;
  • 准备怎么做:AI 调研代码后写下的实施计划;
  • 最后做了什么:实现笔记与最终总结。

AI 写代码,人审任务。
审查发生在三个位置:规格、计划、结果。

这里要说清楚一件事:

Backlog.md 不是权限系统,不会在技术上强行拦住 AI 写代码。

它做的是把审查点变成流程的一部分。Agent 是否先写计划、是否停下来等批准,取决于它有没有读到工作流指令,也取决于你有没有真的去看。

工具给你一张检查表,不能替你签字。


三、它里面到底有些什么

不用记很多名词,先分清这几样:

任务:一个任务一份 Markdown,四块正文外加 frontmatter 元数据。它可以被 diff、被 review、被搜索,也可以归档。

文档:开发策略、技术方案、背景资料。人主导,AI 辅助。

决策记录:为什么选 A 不选 B。过几个月再回看,这类记录比代码更有用。

Memos:随手记。灵感、碎片、待验证的念头先钉住,不必马上变成正式任务。

看板:它不是另一种文件,只是读同一批任务文件的一个视图。拖动卡片,改的还是 Markdown 里的状态。

Wiki:知识沉淀层。它需要安装对应技能并执行摄取,不是“任务一完成就自动长出来”。

把这几样串起来,Backlog.md 的核心就一句话:

任务存 Markdown,进度是 diff,知识可以沉淀成可查的 Wiki。


四、一条想法,怎么走完最小闭环

假设你想给 Web 视图加一个搜索功能。

你可以先把想法记在 Memos,也可以直接交给 Agent。这里按真实协作流程走:人不敲命令,人提需求;任务由 Agent 建。

第一步,把需求说清楚。

你对 Agent 说:

“把‘Web 视图增加全局搜索’拆成 Backlog.md 任务。写清目标、验收标准和范围,先不要写代码。”

Agent 会按项目里的 Backlog.md 工作流说明来做:自己调用 CLI 建任务,把描述和验收标准写进 backlog/tasks/,你不用背命令。

这份说明由 backlog init 写进 Agent 的指令文件。前提是 Agent 会读取项目里的 AGENTS.md、CLAUDE.md 这类文件;之后对话里涉及 backlog,它就会自动查阅当前版本的工作流。

任务建好后,你审第一道:规格。

  • 它有没有理解错目标?
  • 验收标准是不是可验证?
  • 范围有没有被悄悄放大?

第二步,让 Agent 写计划。

任务方向确认后,再让 Agent 研究代码库,把实施计划写进任务,停下来等你批准。

你审第二道:计划。

  • 它准备改哪些地方?
  • 有没有绕开现有架构?
  • 有没有漏掉验收标准?

方向不对,这时候改,成本是一段话。

第三步,执行并核对。

批准计划后,Agent 再动代码。完成后看 diff、跑测试、逐条核对验收标准,这是第三道:结果。

通过后写最终总结,再把状态改成 Done。

本文讲的是 AI 协作的主流程:人负责目标和验收,Agent 负责拆解和执行。

官方建议尽量做到:一个任务,一个会话,一个 PR。

注意,这是建议,不是系统强制。任务拆得太大,diff 照样会失控。

人机协作的六步闭环

五、它真正解决的,不是“记忆”,是“可接续”

很多人把 Backlog.md 说成 AI 的“长期记忆”。

更准确的说法是:它给项目留了一份可以接续的事实源。

新会话不会自动继承上一次的聊天记录。
新 Agent 也不会一进门就懂你的项目。

但它有地方可读:

  • 任务描述里有目标;
  • 验收标准里有边界;
  • 实施计划里有取舍;
  • 实现笔记里有“当时为什么这么干”;
  • 依赖关系里有前后顺序。

换人、换模型、隔一周再回来,不用从“我们上次说到哪了”重新讲一遍。

这带来的最大变化,不是 AI 突然不会犯错,而是:

错误更容易在写代码之前被发现。

以前你要等它写完两千行,才知道方向错了。
现在你看一屏任务和计划,就能说“不对,重来”。

返工从代码层,前移到了纸面层。


六、三个容易误会的地方

误会一:装了它,AI 就会自动守规矩。

不会。

它提供任务结构和工作流指令,但 Agent 仍可能跳过计划、误解验收标准,或者做多余的事。你仍然要审,仍然要跑测试。

误会二:任务拖到 Done,知识就自动进 Wiki。

也不完全对。

Wiki 需要先安装对应技能、初始化,再执行摄取。任务总结是原料,不是自动生成的成品。

误会三:所有事都值得建任务。

不必。

改个错别字、调一个颜色、一次性小脚本,直接做更快。Backlog.md 更适合这些场景:

  • 一个需求要跨多轮迭代;
  • 你要把工作委派给 AI;
  • 同时跑多个 Agent;
  • 一周后还要回来搞清楚“到底改了什么、为什么改”。

[图片上传失败...(image-f4ea3a-1794406842484)]

图:左边每一步都打勾,路线却离目标越来越远;右边每轮回到同一份任务文件校准,路径始终贴着目标。


七、想试的话,先从一个小需求开始

不用先搭一套完美流程。

  1. 安装后,在项目里运行 backlog init;没有 Git 就加 --no-git;
  2. 初始化时选择 CLI 指令,让 Backlog.md 把工作流提示写进 AGENTS.md、CLAUDE.md 等项目指令文件;
  3. 之后对话里涉及 backlog,Agent 会自动查阅工作流;
  4. 拿一个真实的小需求,交给 Agent 建一个任务;
  5. 只要求三件事:为什么做、怎样算完成、准备怎么做;
  6. 让 AI 先交计划,你批准后再动代码;
  7. 完成后核对验收标准,写总结,再改状态。

先跑通一个任务,再决定要不要把它用成长期习惯。


AI 不会因为多了一个工具,就突然变得可靠。

可靠的是另一件事:

当它想不起来“当初为什么”时,仓库里有一份文件,能把它拉回来。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容