上一篇讲了我怎么给项目配一支机器人团队。这是听城开发记第一轮连载的最后一篇。简单交代背景:听城 (City Whisper) 是我 6 月 9 号晚上开工的一个位置触发城市故事 App,从 Obsidian 里的一行字,到 TestFlight 五个版本、九个城市包,再到提交 App Store(写这篇的时候还在排队等审核),前后 30 天,206 个 commit,全程一个人,加上 Claude 和 Codex 两个 AI。

前五篇讲了缘起、产品、定位工程、内容管道和自动化,这一篇复盘整套工作流本身:钱花在哪、活怎么分、哪里翻了车,以及做到最后我认为仍然只有人能干的事。

2026 年 8 月更新:听城已经通过审核并上架了!正文保留收笔时的历史状态,官网、下载入口和现在使用的宣传图放在文末。

数字面板

先把账摊开:

  • 30 天,206 个 commit。峰值出现在 6 月 14、15 号,两天 44 个;7 月 1 号重做定位架构那天,单日 16 个。
  • Codex 的 session 记录接近 500 个,Claude 那边几十个,分别对应「干活」和「想事」。
  • 版本节奏:0.1.4 外测,0.1.6 修反馈,0.1.7 城市扩张,0.1.8 定位架构重做加上架准备。
  • 投入:全职工作之余,工作日晚上加上不出门的周末。时间大头不是写新功能,而是拍脑袋想出一个新功能、交给 AI 实现之后,在各种修 bug 和来回沟通调整体验上。
  • 工资单:Codex Pro 200 刀一个月(最开始订的 100 刀那档,发现不够用,升到 200 刀之后确实挺够用),Claude 20 刀一个月。这些订阅平时也用在别的事情和项目上,摊下来我觉得值。

关于这 220 刀还有个供认不讳的心态问题:包月套餐,token 用量没用完就是亏了。所以我有点强迫症地想把额度全部耗完,有几天干得特别猛,Codex 和 Claude 轮流薅。订阅制把「省着用 API」的心态彻底反转成了「不用就亏」,这可能是这套工作流最不理性但最真实的驱动力之一。

分工:谁干什么

一个月磨合下来,两个 AI 的分工大致稳定成这样:

ClaudeCodex
产品PRD(署名就是 Xiaoyi + Claude)、roadmap、pivot 讨论挑刺
代码UI 方案、预览图写码、调试、原生坑、脚本、CI
内容文案打磨、策展、城市文案批量生成、并行插画
其他UI/UX review(真机截图喂给它评)自动化 runner 本体

翻 Claude 那边的 session 标题列表,基本就是一份产品经理的周报:“City narration app MVP”、“App beta UI/UX review”、“Vancouver city copywriting”、“GPS positioning optimization”、“App Store 上架前合规与文案修整”、“Project expansion brainstorm”。

但要诚实地补一句:分工不是绝对的。第二篇里那场定下产品灵魂的 pivot 头脑风暴,就发生在 Codex 里。界限是流动的,重要的不是「这活儿归谁」,而是当时谁的上下文最全。

Claude 式的产品输出有多好用,举一个例子就够了。它写完 PRD 之后的收尾是这样的:「几个值得你睡一觉再想的判断点:其一,Git 仓库当权威源加静态 CDN,意味着修内容不发版,但也意味着编辑工作流长在 GitHub 上……其三,投稿红线里悲剧场所可收但 hook 不得猎奇化这条,执行起来最依赖人工判断。」它不替你做决定,它把你需要做的决定列清楚,连带每个选项的代价。这比直接给答案值钱多了。

让 AI 互相 review

这套工作流里我用得最顺手的一招:让两个 AI 互相检查对方的产出。

方向一,Codex 的 UI 给 Claude 看。Codex 写功能代码很稳,但让它改 UI,出来的审美经常一言难尽,就是看着有点丑。后来 UI 的流程固定成:Claude 先生成 UI 预览图,我和它对着图交流、慢慢改,定了终稿再去实现。把审美迭代放在出图这个便宜的环节,比在代码上反复横跳划算太多。

方向二,Claude 的 PRD 给 Codex 挑刺。规划类的文档 Claude 写得漂亮,但漂亮的规划落不落得了地,让天天摸代码的那位来审最合适。

顺便说说模型手感,纯个人体感,不构成任何评测:Fable 5 是真聪明,基本上什么都能干好,抓 bug 又快又准;Codex 量大管饱,基础的活干得踏实。中间 Fable 5 因为不可抗力下架了一段时间,我切到 Opus 4.8 顶班,能明显感觉到差距,有些东西修不好,或者领会不到我的意思。模型的代差,在天天一起干活的人眼里是藏不住的。

但最聪明的也翻车。0.1.8 那次我先让 Claude 做了一个比较大的重构,做完发现问题还挺大,稳定性反而不如 0.1.7,最后是换 Codex 一点点收拾回来的。git log 上 7 月 1、2 号那串 “Fix 0.1.8 startup and map regressions”,就是这场事故的现场记录。教训:大重构这种事不看谁聪明,看谁的回归测试跟得上。

还有个写这篇时翻记录才发现的反向彩蛋:接近 500 个 session 里,我情绪失控骂 AI 的消息几乎为零。对 AI 比对自己有耐心,也不知道算不算一种美德。

文档是 agent 之间的共享内存

如果只能给「一个人带多个 AI 干活」这件事留一条经验,我留这条:文档不是负担,是刚需。

项目 docs 目录里躺着 20 篇文档:PRD、ROADMAP、内容管道、每个大功能一份方案。工作流是个循环:Claude 产出和更新文档,Codex 开工第一句永远是「先读 docs」,做完再把结论写回文档。这个循环从第一天晚上就形成了,当时我说的是:「OK,那你帮我把调研到的这些东西,更新到我的文档里面。」

道理很简单:session 是临时的,文档是持久的。每个新开的 session 都失忆,但只要文档在,任何一个 agent 三分钟就能接上全部上下文。AGENTS.md 和 skills 是常驻记忆,docs 是项目状态,session 只是工作台。没有这套东西,每个新 session 都从零开始瞎猜,多智能体协作就是个笑话。

人干什么:dogfood、品味、决策

那这一个月里,我自己到底干了什么?总结下来三件事。

第一,eat your own dogfood。geofence、通知、电量这些系统级行为,模拟器测不出来,唯一的 QA 就是我每天带着手机走路、开车、逛超市。第一篇提过我老公的灵魂建议「你弄一个 GPS 模拟器叫 AI 帮你测不就行了」,一个月实践下来我可以负责任地说:机器能模拟输入,模拟不了体验。GPS 在高楼间怎么漂、通知在什么时机弹出来不烦人,这些只有人肉在场才知道。

第二,品味。App 图标三轮才过稿,插画风格的松弛感是一轮轮调出来的,故事文案的 AI 味是一遍遍手改掉的,城刊封面必须我过目才能发布。这些环节 AI 都能产出「能用」的东西,但「能用」和「我愿意署名」之间的距离,只有人能填。

第三,决策留痕。每个版本有退出标准,不满足不进下一阶段;想放宽产品原则必须显式决策,不许温水煮青蛙;自动化每一级扩权都要人批。AI 时代个人项目最大的风险不是 AI 犯错,是人被产出速度冲昏头,忘了自己才是那个握方向盘的。

翻车集锦

一个月里值得记档的翻车,按杀伤力排序:

  1. 丢用户数据事故(第三篇详述)。为一个不存在的 bug 做修复,修出了真 bug。这事的结局是好的:善后时写的 verify-store-resilience 脚本,14 个故障场景断言,现在是存储层改动的强制门禁。事故变成制度,是这个月最「像个团队」的时刻。
  2. 0.1.8 大重构翻车,最聪明的模型加最大的改动面,等于最大的回归风险。
  3. 自动化 runner 上线首日 17 连修(第五篇详述)。
  4. iCloud 同步盘目录卡死 xcodebuild,搬家解决。
  5. react-native-maps 新架构在 Android 上的 marker bug,最后 Android 直接关掉新架构了事。
  6. S3/CloudFront 一日游,路径依赖差点战胜账单常识。

时代观察:瓶颈不在生产端了

站远一点看这一个月,我最大的感受是:AI 改变了生产力的结构,让每个人都能生产大量互联网垃圾。

这话一半是自嘲一半是认真的。生产端的成本塌方之后,瓶颈整个转移了:现在最难的不是做出来,是怎么让别人注意到你的产品。诚实汇报:我在朋友圈和几个社交平台发过听城,感觉大家都不是很感兴趣,实际来用 TestFlight 的人不多。产品做得再自嗨,获客是另一门完全没解锁的手艺。

所以如果有独立开发者朋友问我建议,我大概会说:技术上可以稍微放一放,别太纠结选型和牛角尖,尤其你要是想盈利,更该关注怎么获客、怎么运营平台账号、以及风险控制,防抄袭、防侵权、防碰瓷。真正属于个人开发者的护城河,反而是那些听起来不像技术的东西:审美,产品 taste,还有你作为一个人的理念。这些 AI 给不了,抄也抄不走。

还有一个意外的观察。这个 App 到目前为止花时间最长的环节,既不是开发也不是内容,是过审。提交 App Store 之后一直在排队,连审都还没开始审。我猜这也是 AI 生产力爆炸的下游效应:AI 做的 App 太多了,审核的人手没跟上。生产端无限扩容,平台审核端没扩容,这个生产、消费、发布三端的结构,接下来几年估计会有点热闹。

彩蛋:来自第一批目标用户的反馈

最后放个彩蛋。第一篇说过,这个 App 的缘起之一是给爸妈的伦敦之行做准备,London 城市包就是为他们建的。给二老装上 App 之后,我收到了来自第一批目标用户的反馈,微信原文如下:

妈:城事,不是城市吗?

爸:我用豆包也挺好的

我妈以为「城事」是我打的错别字(那是城市加故事的文字游戏,App 里的一个 tab)。我爸则用一句话解构了我一个月的工作:有通用 AI 助手就够了,要你这个 App 干嘛。

这两句我贴在这儿不是为了吐槽。妈妈那句说明你以为的巧思,用户未必接得住;爸爸那句更狠,对越来越多的用户来说,「问 AI」正在变成所有垂类 App 的替代品。个人开发者的获客难,难的不只是被看见,还有被理解。产品定位想得再清楚,也得先过爸妈这一关。

经验清单

七条,都是这一个月里用真实翻车换来的:

  1. 选型时把「agent 友好」当一等公民:CLI 可驱动、纯文本配置、不依赖重量级 IDE。
  2. 文档即共享内存:agent 做完必须写回 docs,否则知识随 session 蒸发。
  3. 非目标清单比功能清单更能守住产品,退出标准比 deadline 更能守住节奏。
  4. 把领域知识写成 skill,新 session 零成本上岗。
  5. 自动化执行,不自动化品味;危险操作在流程里写死「人确认」。
  6. 真机 dogfood 不可替代,尤其是定位、通知、电量这些系统级行为。
  7. AI 的产出速度会放大所有没想清楚的决定,账单、架构、产品定位,一视同仁。

结尾

写下这段话时,听城还在 App Store 的队伍里排着,城市许愿的 issue 也还会慢慢来。

下一个意义不明的项目已经开工了,是个完全不同的东西:跑在 M5Stack 小硬件上的陪看球机器人,已经开源,之后有机会单独写写。

总之,这一个月我学到很多,也越来越确信一件事:个人开发者是真的赶上了一个好时代。

上架之后

这篇保留了 7 月 13 日收笔时的现场。后来版本又往前走了很多,留到下一轮开发记再写;这里先放两个公开入口:

  • 听城官网:可以直接看产品现在的样子,也有隐私说明和支持入口。
  • App Store 下载:免费,没有广告和内购;可用地区以 Apple 页面为准。
听城官网当前首页,采用黑白刊物式排版,右侧完整展示温哥华 Dude Chilling Park 地点插画

2026 年 8 月的听城官网首页。点图可以直接打开官网。

听城 App Store 的八张中文宣传图,依次展示地图、路过提醒、故事详情、城事录、日记、回声、分享卡和不定位阅读

现行 App Store 中文宣传图:从地图和路过提醒,到故事详情、日记、回声与分享卡。手机上可点图放大。

第一轮连载目录

  1. 一个晚上,从 Obsidian 里的一行字到 iPhone 上的 MVP
  2. 从「城市冷知识」到「记录我和城市擦肩而过的故事」
  3. 20 个 geofence 覆盖一座城市
  4. 内容即代码,从 Git 仓库到手机上的城市故事
  5. 给项目雇一支机器人团队
  6. Claude 当产品经理,Codex 当工程师