Day 27:一天 98 次 Commit
98次commit。一天。三个全新产品从零到上线。
多臂盘盘猫同时开发多个产品的巅峰产出插画
这是整个项目里产出最高的一天。但能跑这么快,不是因为拼命——是因为之前的地基打得够扎实。
先说两个铺路的重构
在能一天上线三个产品之前,有两个重构必须先到位。
15个流式路由标准化(PR #16)
15个API路由,每个都有自己的ReadableStream实现。PR #16把它们全部迁移到共享的createAIStreamResponse()。24个文件变更,约1,600行新增,约2,000行删除——净减少400行。
加了生命周期钩子:initEvents、onComplete、onError、refundCreditsOnError。
有三个路由确实需要自定义处理:MBTI聊天(累积缓冲区差量模式,从用户可见文本中剥离内部信号标记)、梦境长篇解析(多步骤生成协议)、每日运势(非流式,带服务端缓存)。
36个新测试。@panpanmao/api共173个测试。
集中化成本日志(PR #21)
每条流式路由都有一段一模一样的样板代码:创建cost logger,用as never类型断言插入记录(绕Supabase类型限制)。PR #21用createRouteCostLogger()替换了20个文件里的这个模式——把类型绕过方案集中到一处,不用到处复制。
1,942个测试通过。
这两个重构之后,"新增一个AI功能"的模板代码从每个路由约80行降到了约15行。
从80行降到15行,这就是后面能一天上三个产品的原因。
三个新产品
AI起名:4小时从零到上线
中国人给孩子起名是认真的事。名字要关联八字五行(平衡)、笔画吉凶(数理)、家族起名规则。找起名大师一次200-2000元。
AI的做法:根据出生数据算出五行格局,找到需要加强或平衡的元素,生成每个字的五行属性、笔画数、音韵和语义都对齐的名字。领域知识包里有字-五行映射表、笔画数据库和起名规则。
从零到上线大约4小时。
快的不是AI——是基础设施。认证、积分、流式传输、错误处理、内容过滤、历史保存,全来自共享包。唯一需要新写的就是领域知识和UI。
配对分析:算命最常见的使用场景
根据两个人的姓名和出生信息分析缘分。五行相生相克评分、日柱和合分析、字级五行互动。结果可以分享。
为什么说是最常见的场景?因为算命最大的需求就是感情问题。
流年运程:三个产品里最重的(PR #85)
一个全新的领域模块:domains/liunian/,包含计算器(生肖、太岁分析、流年飞星、五行年运)、知识数据包(星曜目录、星曜-年份映射、太岁冲犯规则、生肖性格画像)、AI提示词模板。
48个文件变更。162个领域测试通过。前端用渐进式渲染:太岁横幅和流年飞星通过计算即时展示,然后AI运势内容通过SSE逐步流入。
PR #96后来修了个微妙的SSE解析bug:liunian的hook在主读取循环中只解析以换行符结尾的完整帧。最后一帧作为尾部缓冲数据到达时(一个chunk + done但没有尾部换行),hook丢掉了done事件,给用户显示一个误导性的网络错误——其实解读早就完成了。修复:在终结化阶段刷新decoder并解析尾部缓冲的SSE事件。
中国城市Bug:测试用户全在北京上海的代价
同一天,PR #34修了个用户报告的bug:八字的城市搜索只有46个中国主要城市。搜索黔西南、黔东南(贵州的自治州)的用户找不到自己的出生地。
修复:数据库从46扩展到379条,覆盖全部333个地级行政区划(地级市/自治州/盟/地区)。每条包含经纬度、省份和简称匹配别名。5个新的地理编码测试。
这种bug,测试用户全在北京上海的话,根本发现不了。
AI干活,我做决策
Git历史里散落着claude/和codex/分支。实际工作流是这样的:
-
我描述产品概念和需求
-
Claude Code按已有的
createAIStreamResponse()模式创建API端点 -
另一个session用共享组件库构建UI
-
我review、手动调领域prompt,然后merge
-
集成测试、积分消耗注册、Hub卡片创建
-
部署
到第三个产品时,这套流程已经近乎机械化了。
好架构的复利效应就是这样:前几个产品费劲,后面每一个都显著更轻松。
保守估计:今天95%的代码是AI生成的。 我负责产品决策、review输出、编写领域prompt、处理集成。AI写实现。
但我写的那5%——prompt、产品判断、集成胶水——才是让它成为产品而不是demo的东西。
98次commit意味着什么
98次commit大约是15小时里每9分钟一次。这种速度不可持续。
但即使打个对折,一天三个新产品——有真实的业务逻辑、真实的AI集成、真实的积分经济、真实的数据持久化——这不是"快速行动打破一切"。
这是地基够扎实,所以才跑得起来。
产品数量:9个方向。我到现在还是不会看手相。