AI开发流程复盘

最近我用一套自己常用的开发套路,从零交付了一个个人项目 Evolution OS(人生进化系统)。整个过程跑下来比较顺。这套流程我觉得可以作为后续做个人新项目的标准套路,这里做个记录。
这套套路不是这次才发明的,我已经用了挺久了,平时做个人项目基本都这么干。只是一直没记笔记,每次都是用完就忘细节。刚好这个周末自己想做个小工具,就借着这次机会把流程完整梳理一遍,沉淀下来,省得下次又从头想。
先说一下我想解决的问题。我自己平时做项目,最大的痛点不是写代码本身,而是需求在自己脑子里是模糊的。直接让 AI 开始写代码,它写出来的东西大概率不是我想要的,因为我自己都没想清楚要什么。所以这次我换了顺序:先把产品想清楚、写成文档,再让另一个 AI 去执行。

整体流程
这套流程分三段,每段用不同的工具、干不同的事:
第一段:Spec 驱动,把模糊想法变成设计文档。
这一步我没有碰代码。我把脑子里关于”人生进化系统”的零散想法,拿去和一个 AI(可以是对话型的,比如 ChatGPT、Claude)反复讨论。讨论的目的不是让它帮我写代码,是逼我自己把产品想清楚。讨论完之后,让它把结论沉淀成一组 Markdown 文档。这次我产出了 6 份:
docs/
├── 01_Product_Vision_and_Core_Concept.md # 产品愿景
├── 02_Core_Model_Achievement_Skill_Identity.md # 核心模型
├── 03_Product_Architecture_and_MVP.md # 产品架构
├── 04_AI_Evolution_Coach_Design.md # AI 设计
├── 05_Technical_Design_and_Implementation.md # 技术设计
└── 06_UI_UX_Design_System.md # 设计语言
这 6 份文档就是后面所有开发的最高依据。我后来发现,这一步省下的返工时间,远大于讨论本身花的时间。
第二段:让 AI 生成一份执行 Prompt。
这一步很关键,也是我以前没做过的。文档讨论完之后,我没有直接把文档丢给编码 AI,而是让对话 AI 先帮我生成一份 Prompt。这份 Prompt 的作用是:后续把它交给另一个 AI 编码工具(我这次用的是 ZCode),让它结合前面那批文档去执行实际的代码开发。
为什么要单独做这一步?因为编码 AI 需要的不是产品文档,它需要的是一份明确的、带优先级、带约束的执行指令。如果只给它文档,它会自己理解、自己排序,大概率排错。这份 Prompt 里我把这几件事讲死了:不要做成 CRUD、P0 是地图和成就系统、数据要先类型化、设计语言要符合 Future Archive、没有 AI Key 要走 Mock。这些约束如果不说,AI 会按它自己的默认审美来做,做出来的是”标准的漂亮 demo”,而不是我想要的产品。
这份 Prompt 还有一个作用:它把决策权前置了。技术选型、优先级、质量标准,都在 Prompt 阶段定清楚,编码阶段就不用反复回来问我,可以一直往下推。实际上后面整个开发过程,编码 AI 基本是连续推进的,没有停下来等我确认。
第三段:编码 AI 拿着 Prompt + 文档,连续执行开发。
这一段就是把上面两段的产物交给编码工具。它会自己读文档、自己判断、自己分阶段、自己写代码、自己验证。我的角色主要是验收和纠偏。
实际开发是怎么推进的
编码 AI 拿到任务后,它自己拆了几个阶段往下推。从 git log 能看出来节奏:
597066a chore: scaffold Next.js + TypeScript + Tailwind
5a83fbd docs: product design docs + AGENTS.md + README
e01f1ef feat(core): domain ontology + seed data + store
71fa685 feat(ui): Future Archive design system + UI primitives
ef1f733 feat(core): Evolution Map + Identity system + Timeline
760af38 feat(achievements): Explorer + detail + CRUD
044bfbc feat(skills): Skill Galaxy
4b35608 feat(coach): AI Evolution Coach + streaming
最后产出了 45 个源码文件、近 7000 行代码,13 个 commit,47 个页面全部能预渲染。整个过程里我没有写过一行代码。
这里值得说的是,数据先行这件事它做对了。它没有一上来就画 UI,而是先把领域类型(Identity / Achievement / Skill / Relationship / Evidence)定义清楚,再围绕这组类型写一个 store 层,最后才是页面。这个顺序是对的——我自己的习惯也是”程序 = 数据结构 + 算法 + 流程”,数据结构定了,后面的事就是顺着推。
这套流程里,文档承担了什么角色
这次让我感受最深的一点是:文档不是开发的附属品,文档就是开发本身的一部分。
AGENTS.md 这次起了大作用。它不是写给别人看的 README,是写给”下一个接手这个项目的 AI”看的工程入口。里面我写了仓库地图、6 条架构不变量(比如”UI 只能依赖 store 层契约,不能直接读种子数据”)、技术栈、编码规范。后面不管是加功能还是改依赖,编码 AI 都是照着 AGENTS.md 里的架构约束去动的,没有破坏既有结构。
这件事让我意识到,AI 时代的项目文档,受众变了。以前文档是给人看的,现在有一类文档是给 AI 看的——它要起到导航和约束的作用。AGENTS.md 就是干这个的。后续做新项目,这个文件我会一开始就写,而不是最后补。
可以固化成标准动作的几条
跑完这一整个流程,我把能复用的部分提炼成下面这份清单,作为后续个人新项目的标准套路:
- 先 Spec,后代码。 想法和 AI 反复讨论,整理成一组 Markdown 设计文档。文档先行能省掉大量返工。
- 讨论完,单独生成一份执行 Prompt。 这份 Prompt 是给编码 AI 看的,要把优先级、技术约束、质量标准、Mock 兜底这些讲死。不要只把文档丢给编码 AI。
- 数据结构先行。 领域类型定义清楚,store 层先写,页面最后写。
- 写一份 AGENTS.md 作为 AI 工程入口。 仓库地图 + 架构不变量 + 编码规范。这是给接手 AI 看的导航和约束。
- 分阶段提交,每个阶段独立验证。 typecheck + lint + build 三道门,每阶段都过。
- AI 自测通过 ≠ 真的好用。 一定要亲手在页面上跑真实流程,尤其是交互和体验类的功能。渲染没生效、接口要干等几秒这种问题,编码 AI 发现不了,它没有”真实使用”这个环节。
- 测试要还原真实 payload。 别用简化版输入去验证功能,会漏掉真实场景才触发的问题。
- 文档跟着代码一起更新。 升级、重构、加功能,都要同步改 AGENTS.md / README / 设计文档,不能让文档和代码脱节。
这套流程干的一件事,是把”想清楚”和”写出来”这两件事彻底分开,中间用一份 Prompt 做交接。前一段逼自己把需求想透,后一段让 AI 高效执行。我自己最不擅长的就是前者,AI 最擅长的是后者,这样分工刚好互补。
后续我还会继续打磨这份 Prompt 模板和 AGENTS.md 的写法,让它能更通用一点,复用到下一个项目上。