我是产品经理,不是程序员。过去半年一直在用 AI 写代码做产品——就是现在说的 vibecoding。

刚开始特别顺,一个周末就能搞出一个能跑的 demo。但项目做到第二周、第三周的时候,各种奇怪的问题开始冒出来:同样的坑反复踩、换个工具就要重新交代背景、AI 改崩了代码不知道怎么回去……

这些问题都不是“AI 不会写代码”,而是我作为一个非技术背景的人,压根没有项目工程管理的习惯。

后来我慢慢摸索出一套轻量的项目治理方法,把它做成了一个叫 bootstrap-project 的工具。下面讲讲我踩过的三个坑,以及怎么用它一次性解决。


坑一:同样的坑,AI 帮你踩两遍

我有一个 Flutter 项目,打 iOS 包的时候有个 build 号的坑,第一次花了很长时间才搞明白。我把解决方案记在了文档里,心想下次不会再踩了。

结果两天后我开了个新对话让 AI 帮我打包——它完全不知道有这个坑,又按自己的理解来了一遍,报了一模一样的错。

这个坑已经填过了,为什么还能再掉进去?

原因很简单:你的文档是写给自己看的,AI 不会主动去读。每次新对话,AI 都是从零开始。你脑子里知道的坑和约定,对新来的 AI 来说等于不存在。

怎么解决的:

bootstrap-project 会生成一份 project_memory.md,专门记“反复会踩的坑”和“已经确认的约定”。比如 build 号怎么处理、哪些方案试过不行、哪些目录不能动。

然后在 AGENTS.md 里写了一条规则:任何新对话的 AI,开工前先读这份文件

Codex、Claude Code 打开项目会自动加载 AGENTS.md,等于给 AI 装了一个开机启动项——不是靠你记得提醒它,而是它自己会去读。

从此,踩过的坑只需要记一次,之后不管开多少轮新对话,AI 都知道。


坑二:换个工具、换个对话,进度就断了

这个坑更隐蔽。

我习惯用 Claude Code 做主力开发,但有时候用 Cursor 改改 UI、用 Codex 跑跑快速任务。问题来了——Claude Code 里刚确认的方案,切到 Cursor 它完全不知道。

更离谱的是反过来:我在 Cursor 里改了一个组件的接口,回到 Claude Code 继续开发,它还在用旧接口写代码。编译报错,查了半天才发现是两个工具之间的信息断了。

就算不换工具,光是开新对话就够烦了。上午聊到一半,下午开了个新对话接着做,AI 又问“这个项目是做什么的”。你每次都要花十分钟把背景讲一遍,讲得不全,它就开始自由发挥,功能慢慢偏离你原来的方向。

本质上,每个 AI 对话都活在自己的世界里。你以为大家在“同一个项目”上工作,但对它们来说,彼此不存在。

怎么解决的:

bootstrap-project 生成了一组文件,各管各的事:

  • progress.md:会话交接卡。记“刚做完什么、下一步是什么、卡在哪”。每次对话结束前更新,下次 AI 读完就能接上,不用你重新讲。
  • PROJECT_INDEX.md:项目地图。每个目录负责什么、模块之间谁依赖谁、改了这里还要检查哪里。AI 不再上来就问“在哪个文件”。
  • TEST_MATRIX.md:测试说明。什么场景对应什么测试,人话版本。

关键在于:这些文件都是普通 Markdown,放在项目目录里,不绑定任何工具。

AGENTS.md 本身就是跨工具的标准——Codex CLI、Claude Code 都原生支持,Cursor 做个符号链接也能读。不是让工具之间直接对话,而是让它们都去读同一本笔记本。

装完之后的日常变化很明显:

新对话说“接着干”,AI 自己去读 progress.md,告诉你上次停在哪,问你这次先做什么。切到另一个 AI 工具,它也能读到同样的进度和项目结构。

你不再需要当“人肉同步器”了。


坑三:AI 改崩了,我不敢动

有一次我让 AI 改一个小地方,它答应得很好。然后我发现,它不光改了我说的那个地方,还顺手“优化”了旁边几个文件,把我上周刚修好的一个问题又写回来了。

我想回滚。

但我不会 git。我听说过 git reset,也听说过用它把所有代码弄没的故事。搜了一下“git 回滚”,前几条结果都在警告“操作不可逆”。

最后我用 Cmd+Z 硬按了十几下,按到没反应为止。

大多数 git 教程是给程序员写的——上来就教分支、rebase、PR 流程,对我这种一个人跟 AI 做产品的场景,90% 用不上。

怎么解决的:

bootstrap-project 把 git 压缩成 5 条命令,这是我觉得最实用的部分。

每次对话结束,三步存档:

git status                            # 看一眼现在啥样
git add -A && git commit -m "干了啥"   # 把改动存下来
git tag m1-xxx                        # 到里程碑了打个标签

改崩了要回滚,两条命令:

git restore .                         # 还没存档?丢掉,回到上次
git reset --hard HEAD^                # 存档了但存错了?回到上上次

就这 5 条。不讲分支,不讲 PR。你一个人跟 AI 做产品,这 5 条够了。

而且这些不是写在说明书里让你自己记的——AI 每次对话结束会主动提醒你:该存档了。

改崩了?一条 git restore .,3 秒回到干净状态。跟 AI 说“再来,这次只改我说的那个地方”。

心理安全感完全不同——不管改崩什么,都能回去


怎么用?给 AI 说一句话就行

不需要你自己去跑命令。

bootstrap-project 下载到项目里之后,跟 AI 说一句:

帮我初始化项目治理文件,需求文档在 docs/requirements.md

AI 会自己调用脚本、读你的需求文档、生成所有文件、做好 git 基线。你等它跑完,检查一下生成的内容就行。

不确定搞好没有?让 AI 跑一下自检:

帮我检查一下项目治理文件是否完整

它会告诉你哪些文件还没建、git 初始化了没有、基线存档在不在。

整个过程不需要碰终端,不需要记命令。这本来就是给不想碰工程细节的人设计的。


GitHub 上类似的项目不少,为什么我还要做一个?

我做之前也看过好几个:

项目做什么面向谁
claude-bootstrap(560+ star)完整工程框架:TDD 流水线、子 Agent 编排、竞品监控有工程背景的开发者
mexAI 记忆 + 漂移检测:自动检查文档和代码是否脱节熟悉 CLI 的开发者
claude-mem自动录制 AI 会话,压缩后注入下次对话Claude Code 用户
ClaudeCodeBootstrap用 LLM 分析代码,生成 CLAUDE.md 和 slash commandsPython 开发者
bootstrap-project一句 prompt 生成记忆结构 + git 基线不会写代码的人

这些项目都很好,有些功能比 bootstrap-project 强大得多。

区别在于用户画像:它们面向的是有工程基础的开发者,默认你能自己装环境、跑 CLI、看日志。

bootstrap-project 解决的是同一个问题——让 AI 记住你的项目。但它是给产品经理、设计师、独立创作者这种用 vibecoding 做产品,但没有工程背景的人准备的。下载、说句话、搞定,没有中间步骤。


适合谁

  • 你在用 AI 做一个持续几周以上的产品
  • 你每次开新对话都要重新交代背景
  • 你用多个 AI 工具,信息不通
  • 你被 AI 改崩过代码,不知道怎么回去

不适合谁

  • 你只是写个一次性脚本,写完就关
  • 你的项目已经有完善的工程流程
  • 你是程序员,想要完整的工程框架——上面提到的那几个项目更适合你

这个工具不是要让你变成工程师。

它是让你可以继续不懂工程,但你的项目不会因为你不懂而崩掉。

GitHub 地址:https://github.com/AllenAI2014/vibecoding-bootstrap