Skip to content

决策日志

在 Vibe Coding 中,决策留痕是防止 AI 在后续会话中做出矛盾决策的关键。决策日志记录"为什么",不只是"做了什么"。

为什么需要决策日志?

你在一个会话中做了架构决策——比如"选择 SQLite 而非 PostgreSQL"。下一个会话的 AI 不知道这个决策,可能建议用 PostgreSQL。你不得不反复纠正 AI,浪费时间和 token。

决策日志解决了这个问题——它是跨会话的"记忆锚点":

没有决策日志有决策日志
每个新会话 AI 不知道之前的决策新会话读取 decision-log.md 即可恢复上下文
你反复纠正 AI 的矛盾建议AI 主动遵守已记录的决策
修改旧决策时不知道当初为什么做这个选择记录了 Why,可以判断是否需要改变
团队成员不知道你的架构思路共享的 decision-log 让所有人理解决策背景

与 CLAUDE.md 的区别

CLAUDE.mddecision-log.md
内容项目约定和规则决策过程和理由
格式简短的规则列表带 Why 的决策记录
何时写项目开始或约定变化时每次做重要选择时
谁来写你或让 AI 跟你确认后写你描述选择,AI 帮你格式化记录
加载方式每次会话自动加载需要主动让 AI 读取

最佳组合: CLAUDE.md 写"项目约定"(规则),decision-log.md 写"为什么这样约定"(理由)。AI 读 CLAUDE.md 知道规则,读 decision-log.md 知道理由。

记录格式

每条决策记录遵循统一格式:

markdown
## DEC-[编号]:[决策标题]

**选择:** [做了什么选择]
**Why:** [为什么做这个选择——最重要的部分]
**How to apply:** [在什么场景下应用]
**被否决的方案:** [考虑过但没选的方案] — 原因:[为什么不选]
**日期:** [记录日期]
**状态:** [已采纳 / 已修改 / 已废弃]

Why 是关键

Why 是决策日志最重要的部分。只有知道"为什么",才能判断:

  • 这个决策在当前情况下是否仍然有效?
  • 如果环境变了,是否需要修改决策?
  • AI 在后续操作中是否能理解这个约束的精神而非机械执行?

差的 Why: "选择了 SQLite" — 只记录了事实 好的 Why: "选择了 SQLite 因为本项目是单用户本地部署工具,不需要数据库服务器的运维成本。如果未来需要多用户并发访问,应考虑迁移到 PostgreSQL" — 记录了理由、适用场景和变更触发条件

让 AI 记录决策

在做完重要决策后,让 Claude 记录:

在 decision-log.md 中记录以下决策:

选择:[你的选择]
Why:[你给出的理由]
被否决的方案:[你考虑过但没选的方案]

使用项目决策日志格式。如果 decision-log.md 不存在,先创建。

或者更简单:

记录决策:我选择用 SQLite 而不是 PostgreSQL,因为这是单用户本地工具,不需要数据库服务器的运维成本。如果未来需要多用户并发,可以迁移到 PostgreSQL。

Claude 会自动格式化为标准决策日志格式。

定期回顾

决策日志不是写完就忘了——需要定期回顾:

回顾频率做什么
每周扫一眼近期决策,确认没有矛盾
重大变更前读取 decision-log.md,确认变更不违背已有决策
新项目成员加入时让新成员读 decision-log.md 理解项目历史

让 Claude 辅助回顾:

读取 decision-log.md,检查是否有以下问题:
1. 状态为"已采纳"但可能已过时的决策
2. 互相矛盾的决策
3. 之前否决的方案现在可能需要重新考虑的

列出需要讨论的决策。

可复用模板

decision-log.md 初始模板

markdown
# 决策日志

本文件记录项目中的重要架构和技术决策。每个决策包含选择、理由和被否决的方案。

## DEC-001:[首个决策标题]

**选择:** [选择]
**Why:** [理由]
**How to apply:** [适用场景]
**被否决的方案:** [否决方案] — 原因:[否决原因]
**日期:** [日期]
**状态:** 已采纳

让 AI 记录决策的 prompt

在 decision-log.md 中追加以下决策记录。

选择:[你的选择]
Why:[你的理由]

使用格式:
## DEC-[自动编号]:[标题]
**选择:** ...
**Why:** ...
**How to apply:** ...
**被否决的方案:** ...
**日期:** [今天日期]
**状态:** 已采纳

如果 decision-log.md 不存在,先创建含初始模板的文件。

与其他工具的关系

工具内容何时使用
CLAUDE.md项目约定(规则)项目开始时 + 约定变化时
decision-log.md决策理由(Why)每次做重要选择时
MEMORY.mdAI 学到的偏好(自动)自动维护
spec.md项目需求(做什么)项目开始时
plan.md实施方案(怎么做)spec 写完后

最佳实践: CLAUDE.md 写规则,decision-log.md 写 Why。AI 自动维护 MEMORY.md。三个文件覆盖"规则→理由→偏好"三层记忆。

下一步

  • 高级技巧 — 多 agent 协作、TDD 融合、大仓库策略

基于 MIT 协议发布