# 一人公司案例:开发 5 个 APP 用到的 AI 技能 > 访谈对象:Josh Pigford(Baremetrics 前创始人,曾以 400 万美元卖掉该公司) > 访谈者:Peter(Easonlee) > 时长:31 分钟 --- ## 核心摘要 Josh Pigford 在卖掉 Baremetrics 后,选择以一人公司模式同时开发 5 款 AI 产品。他通过一套结构化的 AI 开发流程,实现了"对抗性审查"和"持续学习"机制,让 AI 能够像团队一样协作,同时保持了极低的运营成本和极高的迭代速度。他的核心理念是:**快速发布真实可用的产品,而非用着陆页收集邮箱来验证需求**。 --- ## 一、Josh 的 5 款产品一览 | 产品名称 | 功能描述 | 状态 | |---------|---------|------| | **Proxyuser** | 合成用户测试工具,用真实浏览器自动 QA 应用,生成屏幕录制帮助快速定位 bug | 刚发布 | | **Rumored** | LLM 幻觉检测器,监控 AI 是否错误引用品牌信息(网站文案、博客内容、schema 代码等) | 周五刚发布 | | **Reply Social** | 社交媒体统一回复管理工具,内置 Bot Block 功能,支持 Facebook、Reddit 等平台 | 早期版本已发布 | | **Chops** | 开源 Mac 应用,用于管理和编辑 AI 技能文件 | 已开源 | | **医疗信息管理工具** | 为母亲(晚期胰腺癌)开发的家庭沟通和文档管理工具,支持与医疗文档对话 | 上个月开发 | --- ## 二、三阶段 AI 开发流 Josh 将开发任务拆解为**研究(Research)→ 规划(Planning)→ 实施(Implementation)**三个独立阶段,每个阶段都有特定的指令集。这种结构化方法避免了 AI 一次性处理大规模任务时的混乱。 ### 2.1 研究阶段(Research) **输入**:简单的功能需求(如"为 Reply Social 添加 Bot Block 功能") **输出**:一份研究文档,包含: - 技术调研:API 调用方式、竞品分析 - 历史代码整合:从已废弃项目中提取可复用的代码 - 高层技术方案:系统如何交互、哪些部分需要忽略、哪些需要移植 **示例**(Bot Block 集成到 Reply Social): - 整合之前的 Chrome 扩展代码 - 分析需要哪些 API 调用 - 列出 pros/cons,决定保留什么、忽略什么 ### 2.2 规划阶段(Planning) **输入**:研究文档 **输出**:实施文档(Implementation Document),包含: - 将任务分解为多个**阶段(Phase)** - 每个阶段是一个独立的 Pull Request(PR) - 每个阶段是**用户可测试的**(user testable) **关键原则**: - 不要试图一次性完成所有工作,而是分成小的、可管理的 chunks - 有时候实施文档会有 30+ 个阶段,因为 Josh 要求每个步骤都必须能亲自测试 - 每个阶段完成后会生成一个 progress 文件,记录: - 该阶段完成的工作 - 做出的决策 - 学到的经验 ### 2.3 实施阶段(Implementation) **输入**:具体阶段名称(如"build phase one bot block") **输出**: - 在独立的工作树(Worktree)中编写代码 - 执行深度研究:竞品调研、官方文档查阅(可能使用 Context7)、UI 设计调研 - 自动运行测试(打开浏览器进行自测) - 生成 progress 文件更新 **工作树(Worktree)的意义**: - 每次打开新工作树时是**完全干净的上下文**,避免上下文腐化(context rot) - 作为"存档点"(checkpoint),便于回滚 - 显著减少 AI 幻觉 - 每个阶段对应一个 shippable 的 PR --- ## 三、对抗性审查:多模型协作 ### 3.1 为什么需要对抗性审查 Josh 用 Opus 做规划和初稿,但他很清楚: > "每次启动产品都像是在问——如果没人在乎怎么办?" 即使是 25 年经验的老手,AI 也会有遗漏。对抗性审查就是模拟人类团队的代码评审机制。 ### 3.2 具体流程 ``` Opus(主要工作) → GPT-4.5(对抗性审查) → 合并 PR ``` 1. **Opus** 负责:规划、第一版代码编写、整个流程的 bulk of everything 2. **GPT-4.5** 执行:审查工作树中的所有代码 3. **结果**:GPT-4.5 总会发现 3~5 个 Opus 遗漏的 bug ### 3.3 Conductor 中的配置 在 Conductor 中可以设置默认的 Review Model,Josh 发现 Opus + GPT-4.5 的组合对他最有效。 ### 3.4 与人类代码评审的类比 > "在典型团队中,你做 Pull Request,然后有另一个开发者来审查,他们总会发现点什么——比如'这不是我这么做的方式,我来演示另一种方法'。AI 只是在扮演那个角色,而不是另一个人。" --- ## 四、学习技能:防止 AI 重复犯错 ### 4.1 问题的根源 AI 在每个新工作树中没有任何历史记忆,即使之前已经踩过坑、调试过很多次,它还是会犯同样的错误。 ### 4.2 解决方案:Learnings Skill Josh 开发了一个**开源的 Learnings Skill**: **输入**: - 当前工作树的全部内容 - 所有会话记录 - 开发者反复说"不,这不行"的反馈 **输出**: - 提炼出有用的经验教训 - 更新项目的 `CLAUDE.md` 文件 **CLAUDE.md 的作用**: - 作为 AI 的长期记忆 - 记录项目的特殊上下文、偏好、约束 - 每次新会话时 AI 会参考这个文件 ### 4.3 项目 CLAUDE.md 的内容示例 Josh 的 CLAUDE.md 包含: - 项目名称和基本描述 - 技术栈信息(Rails + Inertia + Postgres,单体 repo 包含 web app 和 iOS app) - 常用命令列表 - 测试偏好(使用 Agent Browser 打开应用进行测试) - Conductor 特有变量(如 Conductor 端口)的使用说明 - 设计最佳实践 **注意**:CLAUDE.md 是 AI 自己生成的,Josh 只是告诉它"这是一个大致的模板框架,请为这个项目填充具体内容"。 --- ## 五、"But Seriously" 技能:施压让 AI 承认错误 ### 5.1 灵感来源 Josh 发现,当开发者对 AI 足够强硬时,AI 会更认真地重新审视自己的输出。 ### 5.2 具体操作 在工作树完成构建后,运行一个名为 **"But Seriously"** 的技能: **技能内容本质上是**: > "你几乎肯定搞砸了一些东西,回去重新检查一遍。" ### 5.3 效果 - 每次运行都会发现 3~5 个额外的 bug - 与 GPT-4.5 的对抗性审查是**独立的流程**,两者叠加效果更好 ### 5.4 如何迭代技能 Josh 使用自己的 Mac 应用 **Chops**(开源)来管理技能文件。Chops 内置了 AI 迭代功能,可以: - 打开 Chops - 给 AI 一些指导(如"再刻薄一点") - AI 会自动更新整个技能文件 ### 5.5 Josh 的态度 > "我平时对人很好,但如果 AI 一直出问题,我就会到达一个临界点,然后开始在输入框里打全大写字母。" --- ## 六、甩掉 Landing Page:直接发布 MVP ### 6.1 Josh 的反传统观点 Josh 反对用静态页面收集邮箱来验证需求的传统做法: > "先花几个月做东西再发布给别人用,我觉得这是非常糟糕的想法。" 他认为: - 静态页面是"逃避发布的干扰项" - AI 时代构建成本已大幅降低 - **应该在 24 小时甚至同一天内发布可运行的产品** ### 6.2 真实案例 - Rumored:周五发布 - Proxyuser:今天发布 - 医疗工具:一个月内完成 ### 6.3 验证的唯一标准 > "只有真实用户的反馈和付费意愿,才能定义产品是否值得继续投入。" --- ## 七、工具栈详解 ### 7.1 Conductor(主要开发环境) Josh 选择 Conductor 而非 Cursor 或 Copilot 的原因: | 功能 | 说明 | |------|------| | 模型切换 | 可以随时切换不同 AI 模型 | | 工作树管理 | 自动处理每个工作树的 setup 命令 | | 自动化设置 | 创建唯一端口、复制环境变量、设置进程 | | 并行能力 | 可以同时运行 10 个工作树,在不同浏览器中分别打开 | **Conductor 的 setup 命令自动执行的内容**: - 为每个工作树分配唯一端口 - 复制正确的环境变量 - 设置不同的进程 ### 7.2 多模型协同 | 模型 | 用途 | |------|------| | **Claude Opus** | 主要工作:规划、初稿、bulk of everything | | **GPT-4.5** | 对抗性审查:发现 Opus 遗漏的 bug | | **Context7**(可能) | 文档搜索,辅助实施阶段 | ### 7.3 Chops(技能管理) - 开源 Mac 应用 - 用于管理 AI 技能文件(skills) - 内置 AI 迭代功能,可以快速优化技能内容 --- ## 八、设计的 AI 工作流 ### 8.1 Logo 和品牌设计 - **工具**:Adobe Illustrator - **流程**:Josh 亲自用钢笔工具、测试 100 种不同字体来设计 - **原因**:目前还没有找到好的 AI 替代方案 ### 8.2 配色和字体选择 这部分可以用 AI 辅助: - 测试不同字体(特别关注引号样式,因为 Rumored 的概念是"LLM 错误引用") - 尝试不同配色方案(浅色/深色/黑白) - 生成不同场景的预览图(头像、按钮等) ### 8.3 设计系统 设计完成后,将颜色、字体等信息传给 AI,确保后续开发保持一致性。 --- ## 九、GitHub 集成:接收功能请求 Josh 的开源项目(如 Clear)在 GitHub 上有很多功能请求。 **工作流程**: 1. Conductor 集成 GitHub 2. 查看功能请求列表(如"给 Mermaid 图添加缩放功能") 3. 附加请求到对应项目 4. AI 自动: - 拉取 GitHub 信息 - 进行网络搜索 - 分析竞品实现 - 生成实施计划 5. Josh 审核并批准 --- ## 十、ADHD 与一人多产品的平衡 ### 10.1 Josh 的自我认知 > "我就像教科书式的 ADHD患者,我的大脑本来就是在不同事物之间乒乓跳跃,已经持续了 25 年。" ### 10.2 正面影响 - 可以"喂养更多的 beast" - 比以前更充实 - 能够同时追踪多个产品的进展 - 不会因为只做一个产品而感到无聊 ### 10.3 负面影响 - 有些日子会因为大量上下文切换而非常疲惫 - 分散注意力风险 ### 10.4 Josh 的选择 > "从商业成功的角度,专注肯定更好。但我发现自己受到限制,因为我总是需要学习新东西。" 他认为: - 长期只做一个产品(7 年的 Baremetrics)让他精疲力竭 - 多产品模式虽然不是最优商业策略,但让他更快乐 --- ## 十一、关键经验总结 ### 开发流程 1. **研究阶段**:生成技术调研文档 2. **规划阶段**:拆分为可测试的小阶段(每个阶段一个 PR) 3. **实施阶段**:在独立工作树中执行,配合深度研究和自动测试 ### 质量保障 4. **Opus 做初稿** → **GPT-4.5 对抗性审查** → **"But Seriously" 施压检查** 5. **每个阶段完成后运行 Learnings Skill**:更新 CLAUDE.md,防止重复犯错 ### 心态和原则 6. **24 小时内发布真实产品**:不要用 landing page 逃避 7. **用真实用户反馈验证**:付费意愿是唯一标准 8. **工作树即存档点**:便于回滚,减少上下文腐化 --- ## 十二、开源资源 | 项目 | 说明 | |------|------| | **Learnings Skill** | 自动分析错误、更新 CLAUDE.md | | **"But Seriously" Skill** | 施压让 AI 重新检查 | | **Chops** | Mac 应用,管理技能文件 | | **各种 Build Skills** | 研究、规划、实施阶段的指令集 | Josh 表示他的所有个人技能都已开源,可以在他的 GitHub 上找到。 --- ## 十三、观众补充(来自评论区反馈) > (如有有价值的补充会在这里列出) --- **附:视频中的赞助商信息** - **WhisperFlow**:语音转文字 AI 应用,比打字快很多,可以去除填充词、自动格式化句子,适用于 Mac/Windows/iPhone/Android,地址:whisperflow.co,使用码 Peter 可获得 6 个月免费