0.1.98 的故事:邀请制,和两个 AI 互相挑刺的三个回合

测试期的「官方代付」是个敞口:任何装了 Xtype 的人点一下就能拿到。测试期这样没问题——本来就是请大家来用。但它不能一直开着:识别是真金白银的成本,敞口不关,产品就永远算不清自己的账。

这一版把它换成邀请制。规则不复杂,但每一条背后都压着一个真实的坑。

票认人,不认转发

邀请码发到你的邮箱,就只有你的邮箱能兑。转发给别人,码是废的。

为什么这么严?因为码一旦「见码就兑」,它就会变成流通物——被截图、被转卖、被脚本收集。认邮箱把码钉死在收信人身上,转发失去意义,滥用面直接消失。

被邀请,不等于能邀请别人

最初的设计是「每个代付用户送 3 个邀请名额」。听起来很自然——增长产品都这么玩。

但有人算了笔账:受邀者兑换后也是代付用户,也拿 3 个名额,那就是 1→3→9→27 的指数裂变,每一层都是 90 天的真实成本。「上线后盯着,出问题再关」不是答案——没人真的盯 dashboard。

所以定稿是:邀请名额默认为零,只有我们单独点名的少量种子用户才有额度。代付是权益,邀请是资格,两码事。增长慢一点,账算得清。

「删除账号」删什么,不删什么

账号页最底下加了删除按钮。删掉的是:邮箱、所有登录会话、云端用量、邀请记录。不删的是这台 Mac 上的历史、词库、录音——那些本来就不在云上,服务器无权也无法碰你电脑里的文件,我们不会为了「删得干净」的观感去谎称删了。

删完这台 Mac 回到匿名状态,照常免费用。账号是可选的身份,不是枷锁。

这版真正的故事:两个 AI 互相挑刺

邀请制的服务端不是一个 AI 写完就上线的。是两个 AI——Claude 和 Codex——来回三轮对抗式互审出来的:一个写,另一个专门找茬,每一轮都要求「不要照着摘要打勾,去读真实的 diff;说竞态就给出具体的交错顺序,不许只说理论上可能」。

三轮下来抓出来的东西,每一个都是单干时会漏的:

分歧怎么办?规矩是:谁也不许默认接受对方的改动,也不许为了「重做一遍」而改风格;同意要写依据,反对要给可复现的失败场景;真僵住就两案并列,交给人定夺。三轮往来的原文都在仓库的 docs/HANDOFF-*.md 里,谁都可以翻。

一个人写代码,盲区是自己的;两个 AI 互审,盲区至少要撞一次才能活下来。这一版之后,Xtype 的服务端改动都会走这套流程。