原文正文

从一个个人网站开始,重新理解 Vibe Coding

这篇复盘记录了我用 AI 协作完成个人品牌网站的过程。页面只是结果,真正值得记下来的,是产品定义、提示词设计、设计验收和非技术背景下的 AI Coding 协作方式。

从一个个人网站开始,重新理解 Vibe Coding

这次个人网站做完,我对 Vibe Coding 的感受比一开始踏实了很多。

刚开始我以为重点在“让 AI 帮我把网站做出来”。做了一轮才发现,真正难的地方在前面:我得先想清楚这个网站给谁看、看完要记住什么、哪些内容值得放大、哪些效果会打扰阅读。

AI 写代码很快。快到有时候问题也会被放大得很快。一个导航栏、一个断点、一句文案,如果没有提前说清楚边界,后面就会反复改。

这篇记录写的就是这次过程:我做了什么,哪些提示词和 skill 真正有用,哪些地方踩了坑,以及一个没有代码基础的 PMO,下次怎么把 AI Coding 这件事做得更稳。


一、项目背景

这次做的是我的个人品牌网站 / portfolio 网站。

我不想把简历原样搬到网页上。简历适合筛选,网站更适合让人慢慢理解一个人的工作方式。所以我把方向定成了 scrollytelling:用几个真实业务案例,讲清楚我在品牌切换、AI PMO、增长项目、国际化和全球支付这些现场里做过什么。

这个项目很适合用 Vibe Coding。它同时涉及产品结构、视觉风格、前端实现、双语文案、响应式适配和学习日志。对我来说,它也像一次完整的 PMO 项目:目标会变,需求会变,审美会变,最后要靠一套节奏把事情收住。


二、这次真正有效的部分

最有效的提示词,都有一个共同点:它们没有急着让 AI 写代码。

比如我后来要求先做 PRD、先拆信息架构、先说明页面分区和交互节奏。这个动作很关键。它把“做一个好看的个人网站”这种模糊目标,拆成了页面应该承担的任务。

还有几类提示词也很有用:

  • 把经历写成业务案例,减少公司和职位的堆叠
  • 中文和英文分开写,英文不要照着中文硬翻
  • 页面改动前先说明会动哪里,改动后说明怎么验收
  • 不要把我的内部要求写到网页上
  • 保守清理代码,只删确定作废的东西

这些提示词看起来普通,但它们改变了协作方式。AI 开始按我的产品判断来工作,页面变体也少了很多。


三、这次用到的 skills / agent

这次真正让我意识到 Vibe Coding 复杂性的,是不同 skill 的分工。

Skill / Agent主要处理的事实际效果我的复盘
UI / Design Review第一屏、配色、液态玻璃质感、导航和响应式布局帮我快速看出页面哪里像模板、哪里不够专业设计 skill 能给方向,但前提是我先说清楚网站气质和读者对象
Humanizer / 文案润色中文文案、英文表达、去掉内部提示词痕迹很多“像在解释需求”的句子被改得更像对外表达文案不能只靠润色,前面要先确定内容模型
Browser / Playwright 类测试页面预览、锚点跳转、移动端和桌面端检查找出了不少真实问题,比如导航遮挡、浅色模式看不清、4K 排版过大测试要配合明确验收标准。只说“帮我测试一下”还不够
HyperFrames / 动效探索背景视频、AI 氛围、科技感视觉帮我确认了一个判断:动效太重会抢内容有些效果看起来高级,但不一定适合个人网站阅读
GitHub / 发布流程本地提交、V1.0 标签、准备上传仓库帮我把项目从“本地页面”收束成一个版本发布本身也是交付的一部分,仓库结构和忽略规则要提前处理

也有一些能力没有充分发挥出来。比如早期我没有让 AI 先稳定设计系统,导致后面很多修改都在局部打补丁。再比如,我一开始没有把每个案例的内容字段设计清楚,结果页面结构和文案一起变,返工就多。

这和做项目管理很像。工具再多,如果节奏没有建立起来,现场还是会乱。


四、这次暴露的问题

最明显的问题是前期顶层设计不够。

我一开始更关注页面好不好看,后来才慢慢意识到,个人网站先要回答几个更基础的问题:

  • 谁会来看这个网站
  • 他会先看什么
  • 哪些经历最能代表我
  • 哪些内容适合展开成案例
  • 哪些交互会影响阅读

这些问题没有提前定住,后面就变成了连续修补。导航吸顶反复压住内容,浅色模式里有些字看不清,4K 分辨率下标题过大,案例卡片空白太多,学习日志的位置也一度很奇怪。

代码层面的问题也不少。CSS、组件、断点、Markdown 解析、路由和构建,很多东西我都不熟。它们单独看是技术问题,放到整个网站里,其实都是产品体验问题。

另一个问题是文案。早期有些文字像内部说明,比如“把经历写成业务案例”“这里展开故事”。这些话适合给 AI 下指令,不适合给招聘方和业务 Leader 看。后来我才不断把文案往回收:少解释,多定性;少包装,多讲真实判断。


五、非代码背景的我,应该怎么做得更好

这次最消耗时间的地方,反而是一堆小问题反复出现。

导航盖住标题。 浅色模式文字发白。 4K 下标题大到失控。 移动端按钮挤在一起。 文章里的 Markdown 表格和流程图显示得不够好。

我最开始会直接说:“这里太丑了”“这里又坏了”。这当然能表达感受,但对 AI 来说还不够。它需要更明确的问题定义。

下次我会把问题拆得更像验收单:

  1. 先说现象:例如“滚动后导航栏挡住了 Case 标题”。
  2. 再说目标:例如“标题需要完整露出,导航保留或删除都可以”。
  3. 说明边界:例如“不要改整体视觉,只处理遮挡问题”。
  4. 要求验证:例如“请测试 390、768、1440、2560 宽度,并说明结果”。
  5. 如果连续修不好,回到产品取舍:这次导航吸顶就是这样。最后我选择删掉它,因为阅读稳定性更重要。

这个过程让我很有感触。PMO 不一定要会写 React,但要会把问题讲清楚。CSS 是工程师的语言,验收标准是 PMO 也能掌握的语言。AI 可以帮我写代码,但“什么算修好了”这件事,还是要我自己判断。


六、我对 Vibe Coding 的新理解

现在我更愿意把 Vibe Coding 看成一种带产品意识的 AI 协作开发。

它需要一点直觉,也需要很多约束。直觉负责发现“哪里不对劲”,约束负责把这种感觉变成 AI 能执行的任务。

这次之后,我不会再期待一个提示词直接生成最终结果。比较可靠的方式,是先给 AI 一个清楚的工作框架,再通过一轮轮验收把结果收紧。

我也更理解了 AI 协作里的一个风险:它很勤快,但勤快不代表方向正确。它可以快速生成十个方案,也可以快速把一个错误方向做得很完整。所以人要负责判断,尤其要负责停下来。


七、下一次的改进方向

如果再做一次类似项目,我会先准备六样东西:

  1. PRD:写清楚目标用户、页面目标和成功标准。
  2. Design System Contract:提前定好字体、颜色、标题层级、卡片、按钮和响应式规则。
  3. 内容模型:先定义每个案例有哪些字段,再写故事。
  4. 组件结构:先拆 Hero、案例、方法论、教育、日志、联系这些模块。
  5. 交互规则:哪些地方需要动效,哪些地方保持安静。
  6. 验收清单:桌面、移动端、折叠屏、浅色模式、深色模式、锚点跳转都要提前列出来。

这些准备会让开头慢一点,但后面会少很多返工。


八、最终沉淀

这次项目让我确认了一件事:AI Coding 的门槛不只在代码,也在问题定义。

对我这种没有代码基础的 PMO 来说,更现实的路径,是先学会用产品、设计和验收语言去管理 AI 的输出。

我需要知道自己要什么,也要知道什么时候该停。 这可能就是我这次最大的收获。