简单书房(easy-Reader)从第一行代码到现在的 1.3 版本,代码全部是 Claude 写的。我做的事情只有三件:说清楚想要什么、做决定、验收。

这种开发方式现在常被叫做 vibe coding:你描述想要的效果,AI 去写代码、跑测试、改问题。听起来很玄,其实有一套可以照着做的方法。这个系列用简单书房做例子,把工具、提要求的方式、Claude 的工作流程和检查手段都摊开讲。

系列目录

  1. 总览(本文):成果、整体方法、哪些事必须自己来、踩过的坑。
  2. 《安装篇:装好 Claude Code、插件和 MCP》:从零安装,插件逐个给出命令,写好 CLAUDE.md。
  3. 《提要求篇:怎么跟 Claude 说,它按什么流程干活》:我的原话示例,以及从头脑风暴到发版的完整流程。
  4. 《浏览器篇:把网页上的活交给 Claude》:让它自己检查网页、写教程配截图、录演示视频、操作 NAS 后台。

先看结果

项目 数字
开发周期 2026 年 4 月开始,实际开发 23 天(不是每天都在做)
提交次数 484 次,其中 390 次由 Claude 署名提交
代码量 前后端约 2.2 万行(不含测试),测试文件 84 个
设计文档 / 实施计划 10 份 / 17 份,都是 Claude 写、我审
功能 多格式阅读、AI 补全书籍信息、听书、AI 问书、学习版的划线和导图、装到手机桌面、自带 HTTPS……

我会用 NAS、会装 Docker,但不写 TypeScript,也没碰过 Vue。官网(就是你正在看的这个网站)、Docker 镜像的自动构建、本站的教程截图和演示视频,也都是 Claude 做的。

整体方法:一张图看懂

环节 我做什么 Claude 做什么 靠什么
立规矩 写下长期规则(用中文、简单优先、验证后才算完成……) 每次启动先读规则 CLAUDE.md
提需求 说目标、原因、参考 一次问一个问题,直到听懂 superpowers 的头脑风暴技能
定方案 审设计文档,拍板 写设计、拆成小任务 设计文档、实施计划
写代码 不参与 先写测试再实现,逐个任务完成 测试驱动开发
检查 看结果、真机试用 跑测试、打开浏览器实测、整体审查 chrome-devtools MCP、代码审查技能
发布 确认后推送、部署 写更新日志、改版本号、打标签 GitHub Actions 自动构建镜像

这个分工的核心是:我负责「做什么、做到什么程度」,Claude 负责「怎么做、做对没有」。

哪些事必须我来

vibe coding 不是撒手不管。下面这些我一直自己做:

  • 做决定:做不做、做到什么程度、选哪个方案。Claude 会给推荐,但拍板的是我。
  • 登录和密钥:账号密码、API Token 都是我自己填,不发给 Claude。
  • 对外的操作:推送代码、发版、部署官网。Claude 准备好命令,我确认后执行。
  • 真机体验:在自己的手机、NAS 上实际用一用。很多体验问题(比如侧栏菜单不好看、从桌面图标打开后返回没反应)只有用的时候才会发现。

踩过的坑

  • 对话太长会被压缩:Claude 的上下文有上限,太长会自动总结,细节可能丢失。解决办法是把计划写进 tasks/todo.md、设计写进文档,靠文件而不是靠聊天记录来延续。
  • 「改好了」要看证据:AI 有时会在没有真正验证的情况下说「改好了」。所以守则里写了「验证通过前不算完成」,现在它每次说完成都会附上测试结果或截图。
  • 截图里的东西不一定是真的:WSL 下的 Chrome 截图有时会出现图标缺失、斜线条纹之类的渲染问题,实际页面并没有。这条后来被记进了 Claude 的记忆,不会再据此误改代码。
  • 小心「顺手改」:AI 很容易在修 A 的时候顺便改了 B。守则里写「只改必要的部分」,审查时也会专门看这一点。
  • 密钥别贴到聊天里:需要配置密钥时,让 Claude 告诉你填在哪,你自己去填。
  • 国内网络:装依赖、拉镜像时常卡住。直接说「不行换个源」,它会把 npm、Docker、Alpine 都换成国内镜像。

从哪开始

没装过 Claude Code 的,从《安装篇》开始;已经在用、想提高效率的,直接看《提要求篇》;想让 Claude 帮你处理网页上的重复工作,看《浏览器篇》。

简单书房的代码全部开源,Claude 写的设计文档和实施计划都在仓库的 docs/superpowers 目录里,可以去 GitHub 翻一翻它们长什么样。

其他教程