Vibecoding 开发前,要怎么去写一份面向Ai的需求文档

做 Vibecoding 相册清理工具之前,我也做了四五款产品,其中大部分都是:

  • 想到哪做到哪
  • 一路加需求
  • 工期越拖越长

这次我刻意换了一种方式:先把产品文档写清楚,再写一行代码。

回头看,这对项目节奏有个很大的改善,但还是有不少问题(问题主要原因是执行出了点问题),这算是一个经验分享贴和我的复盘贴。

**这篇主要想聊Vibecoding,在正式开干之前,怎么写产品文档。主要就是六个部分,对应下面六个小节。每一个部分你都可以跟ChatGPT仔细讨论,我直接把一个对话聊上限了。

  1. 说明一下产品的定位;
  2. 产品框架;主要菜单,菜单下有什么功能页面建议是代码格式的树状图,md格式不太好识别表格,然后标注一下什么是一期要做的,什么是二期做的
  3. 梳理系统操作流程;针对一期要做的核心功能, 梳理操作流程。
  4. 梳理功能详细需求说明;说明一下这些核心功能的页面结构,功能逻辑,效果。如果可以的话,可以都加上这些功能的核心业务场景。
  5. 跟AI讨论你的UI风格;可以找参考图、或者让ai帮你输出。文字版的即可。主要是定义主题色、页面框架
  6. 讨论技术实现方案;上面的核心功能,挨个问一下ai,讨论出一个大概的技术实现方案

01. 为什么要在开发前写文档?

不讲大道理,只讲我自己踩过的坑和好处。

1)防止"想到哪做到哪"

以前我开发过程是这样的:

今天觉得加个功能很帅 → 明天又想加个入口 → 过几天发现结构乱了 → 一期上线时间一拖再拖。

但当我把文档写出来之后,项目变成这样:

  • 先确定一期要解决的"最小闭环"
  • 把所有可能的功能先挂在"整体框架"里
  • 一期、二期、三期分层标出来

后续所有的"灵感功能",我只问一个问题:
"这个是一期刚需吗?不是就扔到后面。"

2)大项目拆成可以按期上线的小版本

Vibecoding 是一个相册清理工具,如果一上来就想把"清理 + 整理 + 回忆 + 作品 + 会员"全做完,再发布,那我大概率又会烂尾。

文档写好之后,我发现可以这么拆:

  • 一期:只做"核心清理能力 + 基础查看能力",能真实帮用户清掉一批照片以及核心的差异点:相册整理、分组管理、简单回顾
  • 后面:再加更"花"的功能,比如故事作品、拼图、回忆氛围等等

项目从"一个巨石"变成了"几块可以搬动的小石头"。

现在看来其实还是可以拆的再细一点。


02. 先讲清楚产品定位:给谁、在什么场景下解决什么问题?

文档里第一块,我会写得非常朴素,但一定要具体。

🎯 给谁用?

我给 Vibecoding 的用户画像是:

  • 手机里有大量照片,但不太会整理的人
  • 清理相册经常纠结,不知道该删哪张的人
  • 对"批量一键清理"不放心,想自己"看清楚再决定"的人

不需要很花哨的标签,只要你一想到这些人,就能立刻脑补出他们的相册长什么样就够了。

🎯 在什么场景下解决什么问题?

我会列极少数几个非常具体的场景,比如:

  1. 相似照片很多,纠结删谁

    • 拍同一个景色好几张,每一张都差一点点
    • 现在的相册清理工具只给一个"建议保留",但我总觉得哪张更好看
  2. 截图堆积如山,但只能一张张删

    • 截商品、聊天记录、验证码......堆到看不到照片
  3. 只想保留"关键瞬间",但没有好用的对比工具

    • 想精简相册,留下"简历用照片、朋友圈封面、值得回顾的照片",其它删掉

最后我会写一句"自用型"的定位总结:

Vibecoding 是一款"更适合纠结症用户"的相册清理工具,让你可以多选、放大、对比之后,再安心决定删谁留谁。

这句话后面会被我用在:公众号介绍、产品页、自我复盘里。


03. 用"代码树状图"把产品框架画出来

这一步特别关键,也最接近我们之前 PRD 的结构,但这里我会刻意模糊一些内部命名和实现细节,只保留对外可以公开的那一层。

我在文档里是这么画 Vibecoding 的整体结构的:

text 复制代码
Vibecoding
├── 清理区(一期)
│   ├── 相似照片清理
│   ├── 截图清理
│   ├── 连拍照片清理
│   └── 其他可选清理入口
│
├── 整理区(一期核心 + 后续扩展)
│   ├── 按时间线查看与管理
│   ├── 简单标签 / 备注整理(后续)
│   └── 批量调整、批量操作(后续)
│
├── 回顾区(后续)
│   ├── 日常回顾(例如某天的历史照片)
│   ├── 旅行 / 活动回顾
│   └── 故事合集(给加过备注的照片做一个入口)
│
├── 查看器(一期)
│   ├── 单张查看
│   ├── 多选 + 放大对比
│   └── 删除 / 保留 / 移动等操作
│
└── 个人中心(一期基础形态)
    ├── 订阅与配额
    ├── 隐私与基础设置
    └── 后续的会员权益

这里可以看出几个"脱敏处理":

  • 不写内部模块代号、不贴数据库结构
  • 不展开每个小功能下的所有细节,只写到"普通用户读了能理解"的层级
  • 重点是告诉读者:如何通过一张树状图,把一个复杂 App 拆成可控的模块

在文档里,我会用简单标记:

  • [一期必做]
  • [一期候选]
  • [二期及以后]

这样后面规划 roadmap 的时候,所有人一眼就知道哪些是"上线必须有",哪些是"可以先别碰"。


04. 针对"一期核心功能"梳理用户操作流程

这一步,我只会选 一期里最关键的 1--2 条流程 ,写得足够清楚。

比如 Vibecoding 里,我会重点写:

从打开 App 到完成一组相似照片清理的完整链路。

在文档里,我会写成这样:

text 复制代码
启动 App
→ 等待首次扫描(后台进行,可边用边扫)
→ 进入【清理区】
→ 选择「相似照片」分组
→ 查看相似照片小卡片(看到数量、预览)
→ 点进某一组,进入多选 + 放大对比界面
→ 用户在对比中做出保留/删除的选择
→ 操作完成后,界面给出简单反馈(释放了多少空间之类)
→ 自动回到分组列表,方便继续下一组

这里我刻意不写任何"内部实现方式""用的是什么框架""如何做聚类"等细节,

只聚焦在一个问题上:用户的手,是怎么在这个产品上"走完一圈"的。


05. 给核心功能写"简版需求说明":结构 + 逻辑 + 场景

在 PRD 里我会写得很细,但对外分享时,我就只保留三件事:

  1. 页面大致长什么样(结构)
  2. 用户大概怎么操作(逻辑)
  3. 对应解决的是哪类真实场景(场景)

以"相似照片清理"为例,我在分享时会写成这种级别:


5.1 页面结构(简版)

text 复制代码
相似照片清理页
├── 顶部:分组的筛选条件(按时间、相似程度等)
├── 中部:相似照片分组列表(每组显示一张代表图 + 数量)
└── 底部:必要的操作入口(进入多选对比 / 返回等)

5.2 功能逻辑(不涉及内部细节的那种)

  • 系统会自动扫描并归类相似照片
  • 用户看到的是一组一组的"待处理任务"
  • 点进某一组,就进入"挑选和决策"的界面
  • 最终结果是:留下几张最喜欢的,其余删掉或做压缩处理

5.3 典型业务场景(对外可以讲的那一层)

例如:

  • 场景 S1:纠结症用户想"看清楚再决定"

    → 所以需要多选 + 放大对比,而不是只给一个"系统建议"。

  • 场景 S2:想高效一点,不想来回切换

    → 所以清理完成后要自动回到"下一组",形成清理节奏。

在分享中,我只讲"为什么要这么设计""解决谁的痛点",

而不把内部更细的约束和策略全摊出来。


06. UI 风格:用文字把"感觉"说清楚就够了

这一块,内部文档会更细(包括色号、间距、各种状态),

但对外我只保留三件事:整体氛围、核心颜色方向、布局倾向。

例如:

  • 整体氛围:干净、安静、不打扰用户决策
  • 颜色方向:偏冷的低饱和色系 + 少量点亮色
  • 布局倾向:信息层级清晰、留白足够、重要操作按钮显而易见

我会在文档里写类似这样的话:

我希望用户在清理相册时,不会被五颜六色的视觉抢走注意力,而是能把焦点放在照片本身上。

然后我会把这些文字喂给 AI,让它帮我扩展一些 UI 参考描述、甚至生成简单的线框思路。

整个过程只讨论"风格",不暴露具体设计稿或内部 UI 规范。


07. 技术实现:用"问问题"的方式挨个过一遍

技术实现这块,我在实际 PRD 里会写得更具体,

但在对外分享时,我只讲一个方法论:

把每一个一期核心功能,拆成一个一个可以问 AI 的技术问题。

比如:

  • "如何在相册工具里高效扫描本地照片?"
  • "如何实现多选 + 放大对比的交互,而不会卡顿或界面跳动?"
  • "如何做基础的空间统计和清理反馈?"

AI 给的答案里,真正用到的只是其中一部分思路。

在文章里,我也不会贴代码,只会讲到这个层级:

  • 先用小图占位,保证界面先出来
  • 大图加载后只替换内容,不改变布局
  • 清理过程可以异步,但用户的操作反馈要及时

这样既能 分享"如何借助 AI 快速搭建技术方案"的经验

又不会把内部实现细节原样暴露出去。


08. 小结:写文档是独立开发者性价比最高的一件事

这次做 Vibecoding,我最大的感受是:

当你把产品文档写清楚,

其实你已经做完了这个项目的 50%。

写文档帮我做了这几件事:

  • 把一个大项目拆成了可以按期上线的小版本
  • 让"一期要做什么、二期再做什么"变得非常清楚
  • 避免了很多"边做边改架构"的返工
  • 也让我在和 AI 讨论时,有了清晰的问题和上下文

如果你现在也在做一个自己的产品,

我非常建议你试试这一套方式:

  1. 先写定位:给谁用,在什么场景下解决什么问题
  2. 用树状图把整个产品框架画出来,并标注版本优先级
  3. 针对一期核心功能,写清楚用户操作流程
  4. 给核心功能做简版需求说明:结构 + 逻辑 + 场景
  5. 用文字定义 UI 风格和氛围
  6. 最后再用这些文档,去跟 AI 一起推演技术方案

当你愿意花 1~2 天把这些写完,后面节省的时间,远远不止这两天。


现在再说一下,文档写了就要去执行,我这次其实还是踩了一个坑,我同时开了Cursor、Antigravity、Vscode(claude code+codex),同时有这么多Ai,我就不想让每一个都闲着,所以就没有严格按照我自己的规划去做。所以有个bug卡了差不多一个礼拜。还是吃了不懂代码的亏。。。。

这个具体的卡点下次再分享,下一章先分享怎么去做一个美观的设计稿或者初版前端页面!

相关推荐
冬奇Lab5 分钟前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab5 分钟前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
CocoaKier2 小时前
苹果谷歌商店:如何监控并维护用户评分评论
ios·google·apple
AngelPP4 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年4 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼4 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
iOS日常4 小时前
iOS设备崩溃日志获取与查看
ios·xcode
ZFSS4 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区5 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈6 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能