—— intent.md、spec.md、plan.md 的设计哲学 + 博客 v0.1 实现

An image to describe post

系列导读:这是《用一份 .md,把想法变成产品》系列的第2篇。在上一篇中,我们理解了文档驱动开发的核心理念。这一篇,我们将真正动手,用三份文档构建博客的第一个版本。


开篇:从混沌到秩序

还记得卡比(我们的卡皮巴拉主角)吗?在上一篇中,它经历了三次失败的尝试,最后发现了文档驱动开发的力量。

现在,卡比站在一个新的起点。它手里拿着一份初步的 intent.md,但问题来了:

  • 只有 intent.md 够吗? 不够。意图很清晰,但具体要做什么功能?用户如何使用?
  • 要不要直接写技术方案? 太早了。还没想清楚"做什么",就开始想"怎么做",容易南辕北辙。
  • 需要写多少文档? 写太少,指导不足;写太多,维护成本高。

这时候,文档驱动开发的经典答案浮现了:三份文档,不多不少,刚刚好。

今天,我们将深入理解这三份文档的设计哲学,并基于它们,让 AI 帮我们生成博客的第一个版本:v0.1 - 一个优雅的 Landing Page


一、为什么是三份,不是一份或五份?

An image to describe post

1. 认知负载理论:分层思考降低复杂度

人类的大脑有个特点:不擅长同时处理多层次的复杂信息

当你试图在一份文档里同时回答"为什么做、做什么、怎么做",你会发现:

  • 写的时候思绪混乱,不知道该聚焦哪个层面
  • 读的时候抓不住重点,从宏观愿景跳到具体代码细节
  • 维护的时候牵一发动全身,改个技术细节可能影响整体意图

三份文档的设计,本质上是一种认知负载的分层管理

文档层次 回答的问题 认知层级 变化频率
intent.md 为什么做?为谁做? 战略层 很少变化
spec.md 做什么?如何使用? 产品层 偶尔变化
plan.md 怎么做?用什么技术? 技术层 经常变化

类比:就像盖房子,你需要三份图纸:

  • 设计理念(为什么要盖这栋房子?给谁住?)→ intent.md
  • 户型图(有几个房间?布局如何?)→ spec.md
  • 施工图(用什么材料?如何施工?)→ plan.md

如果把这三份图纸混在一起,建筑师会疯掉。

2. 职责分离:不同文档服务不同决策点

在产品开发的不同阶段,我们需要做不同的决策:

早期阶段(立项)

  • 决策问题:"这个项目值得做吗?"
  • 参考文档:intent.md
  • 决策者:创始人、产品负责人

需求阶段(设计)

  • 决策问题:"用户需要哪些功能?"
  • 参考文档:spec.md
  • 决策者:产品经理、设计师

开发阶段(实现)

  • 决策问题:"用什么技术方案?"
  • 参考文档:plan.md
  • 决策者:技术负责人、开发者

三份文档,各司其职,不越界、不缺位。

3. 演化灵活性:上层稳定,下层可变

产品开发是一个动态过程,需求会变,技术会变,但核心价值不会轻易变。

三份文档的稳定性递减

intent.md  (最稳定,几乎不变)
spec.md    (中等稳定,小幅调整)
plan.md    (最灵活,经常优化)

举个例子
卡比的博客项目,从 v0.1 到 v1.0:

  • intent.md:几乎没变(核心愿景始终是"简洁、优雅、可演化")
  • spec.md:增加了功能(搜索、多作者、SEO),但核心用户旅程不变
  • plan.md:改了好几次(从纯静态到增量生成,从本地搜索到 Algolia)

这种"上层稳定、下层灵活"的架构,让项目能够应对变化,而不失去方向。