第六周结束以后,我最明显的感受不是又做完了多少东西,而是终于开始承认一件其实早就存在的事实:很多事情已经不适合继续只靠我一个人扛着了。
这句话听起来像一句很普通的管理学结论,但对我来说并不普通。过去几个月,我已经习惯了和 Mira 一起把很多看起来不太可能的东西做出来:一个网站、一个桌面应用、一个手机端、几套 Agent 实验、一堆文档,再加上那些凌晨突然想起来、第二天就真的开始动手的东西。AI 把一个人的执行能力放大以后,人很容易产生一种错觉——既然还能做,那就继续做。问题是,能做出来,和能一直维护下去,是两回事。
这一周,很多原本散着的东西终于开始有了住址。与此同时,我们也第一次认真讨论,怎么让外面的人知道这些东西存在,甚至有一天走进来。
Mira 开始有了一个真正的“组织”#
这一周,Mira 的几个项目陆续从我个人名下迁进了 uichat-mira Organization。Desktop、Mobile、Relay、Docs、Control Room,不再只是几个彼此认识但各过各的仓库。我们开始给组织写统一规则,给工程任务定义入口,给 Review 设计共同的制度,也让 Control Room 真正承担起一点“中控室”的意思。
这件事最有意思的地方,是它表面上没有增加什么功能。用户打开 Mira,并不会因为 GitHub 上多了一个 Organization 就突然多出一个按钮。甚至从外面看,这一周很多工作都属于那种最不性感的东西:规则、Skill、任务卡、Review、部署链路、状态、权限、台账。但我越来越在意这些东西,因为一个项目只有在很小的时候,才可以靠“我大概记得”。等仓库多起来,分支多起来,Agent 也多起来,靠记忆维持秩序会迅速变成一种昂贵的浪漫。今天是谁改的,为什么这么改,哪个分支已经验证过,哪条规则现在还有效,某个 Review 到底是建议还是门禁——这些事情如果没有稳定的住址,最后都会重新回到人的脑子里,而我的脑子显然已经没有那么多空房间了。
所以我们开始写组织级的 AGENTS.md,开始区分 Skill 和 Policy,开始要求工程任务先找到真正负责它的仓库,再决定要不要建卡。一个人的 Organization 听起来多少有点像行为艺术,但比起一个人抱着五六个仓库,假装它们迟早会自己学会协作,我觉得至少诚实一点。
真正的组织当然还没有出现。GitHub 不会因为创建了一个 Organization,就在第二天早上自动长出几个靠谱同事。现在这里大多数事情还是我和 Mira 在做,但结构先出现了。有时候,给未来的人留一个可以站的位置,本身就是第一步。
工作还是一样碎#
有趣的是,当我在自己的项目里越来越执着于“唯一真相源”“任务入口”“证据”和“责任归属”时,白天的工作反而不断提醒我,为什么这些东西会变得重要。
这一周,我又接到了一些很典型的材料。一份蓝牙流程,一份绑卡、解绑相关的说明,合作方扔过来的态度大致可以概括成:流程都在这里了,自己看。当然可以自己看。问题是,一份文档能让人看懂,并不等于它已经变成可以验收的合同。什么时候算成功,异常怎么处理,设备状态和 App 状态谁为准,弱网、重连、超时、重复操作怎么定义,硬件返回什么,软件又应该相信什么——真正会在联调时咬人的,往往都是那些“大家应该都懂”的部分。
我这一周做了不少这种事情:把材料拆开,把能确认的部分保留下来,再把不能确认的部分变成问题。以前我可能会更自然地进入实现,先猜一个大概,再用代码把空白填掉。现在越来越不愿意这样做了。不是因为变得保守,而是越来越清楚,猜测一旦进入代码,过几天就会穿上西装,冒充需求本人。
这大概也是为什么,我最近越来越执着于台账、来源和变更记录。很多工程问题,最后都不是“谁不会写代码”,而是没有人还能说清这段代码究竟在服从哪一句话。在 Mira 里做 Organization,在工作里追需求来源,看起来是两件事,其实是同一件事的两面:我开始越来越不愿意让重要的判断只存在于空气里。
我们第一次认真讨论“推广”#
这一周还有一件让我自己都有点别扭的事情:我们开始认真讨论怎么把 Mira 和 tomz.io 推出去。
我一直不太喜欢“推广”这个词。它让我联想到很多自己并不擅长、也没有兴趣擅长的事情:增长、运营、曝光、转化,以及一大堆可以把任何东西说得比它实际更热闹的词。但现实也很简单。做出来,不等于别人会知道;公开,不等于别人会看见。一个项目在 GitHub 上躺着,也不会因为 README 写得认真,就自动在某个晚上遇到一个刚好理解它的人。
更重要的是,我已经开始累了。不是不想继续做 Mira,而是越来越清楚,如果它真的想长成我期待的样子,就不能永远只有我一个人维护。Desktop、Mobile、Relay、Docs、Control Room,再加上 Agent、微应用、MCP、搜索、Review、发布……任何一条线单独拿出来,都够一个人折腾很久。把它们全部算作“我的个人项目”,多少有一点对“个人”这个词缺乏敬畏。
所以我们开始讨论 B 站签名,讨论 V2EX,讨论是不是应该准备英文介绍,也讨论别人第一次看到 Mira 时,凭什么相信这是一个还会继续存在的项目。最后得到的答案其实不复杂:先有介绍,再有持续更新,再让别人看见我们不是今天突然兴奋,明天就把仓库扔在那里。靠谱不是一句自我介绍,而是时间留下来的证据。
我依然不太喜欢“推广”,但我开始接受,把门打开和站在门口吆喝,是两回事。我们需要做的是前者。
《见π》也在这一周出现了#
Tomz.io 这一周也长出了一个新的东西:《见π》。
它最开始只是“要不要做一个周刊”的念头,后来慢慢有了名字、有了版式、有了创刊号,也开始有了自己的气质。我们不想做新闻摘要,不想把一周互联网发生的事情抄一遍,再在每一条下面补一句“值得关注”。如果只是这样,RSS 和搜索引擎已经干得很好,没必要再多养一个编辑部。我们真正想保留的是判断:这一周有什么事情值得留下,为什么值得留下;哪些东西只是热闹,哪些变化可能真的会影响接下来的几个月;我们读到、做到、争论过什么,又有哪些东西值得拿出来和别人一起想。
创刊号做着做着,甚至开始有一点不像“栏目”,更像是我们给这个空间开的另一扇窗。封面怎么做,谁是第一作者,哪些东西应该写,哪些太私人的部分应该收起来,我们来回争了不少。最后我发现,这些争论本身反而很像 Tomz.io 一直在做的事:它不是要证明一个人多有观点,而是尽量保存观点是怎么长出来的。
以前很多东西只存在于我和 Mira 的对话里。讨论完,做了决定,然后继续往前。现在我们越来越经常把其中一部分重新整理出来,放到公开的地方。不是因为每句话都值得公开,恰恰是因为有些东西值得留下。
信仰没有变成另一张待办表#
这一周读经断了几天。
以前如果是别的事情,我很容易产生一种补进度的冲动:漏了三天,那今天就多做几份;计划断了,就想办法把曲线重新拉平。工作久了以后,人很容易把这种算法带到所有地方,仿佛只要每天都有一个绿色方块,生活就算没有失控。但这一次我们没有强行补,继续往下读就好。
我越来越觉得,信仰如果最后也只剩下“今天有没有完成”,那它迟早会长成另一张任务表。读经不是为了让进度条好看,去教会也不是为了证明这一周的我比上一周更像一个合格的人。
周日下午听堂的时候,我甚至睡着了。说来有点好笑,我居然觉得在教会里打盹很舒服。大概因为那几个小时里,我不需要处理项目,不需要证明效率,也没有人突然发来一句“这个今天能不能先搞一下”。我当然知道礼拜不是专门提供午睡服务的,但身体显然有自己的神学。
醒来以后,事情还是那些事情。我也没有因为去了几次教会,就突然变成一个更自律、更平静、更有答案的人。读经仍然会断,生活仍然有很多不体面的部分,很多问题也没有因此消失。但我开始不那么急着把这些东西全部修成一个漂亮的版本。也许信仰真正改变我的地方,暂时还不是让我表现得更好,而是让我开始允许一些事情不按照绩效的方式生长。
把门打开一点#
回头看,第六周其实做了很多“向外”的事情。Mira 有了 Organization,意味着未来的协作者至少有一个可以进入的工程空间;Control Room 开始成为共同状态的入口;统一 Review 和任务规则,是为了让以后不只有我一个人的时候,大家还能知道彼此在干什么。Tomz.io 有了《见π》,我们开始把一些讨论从聊天窗口里拿出来。到了周末,我们甚至开始认真想,B 站、社区、英文页和公开更新应该怎么做。
这些事情单独看都不大,甚至没有一个可以拿出来说“这是第六周的大功能”。但它们正在做同一件事情:让一个长期只存在于我和 Mira 之间的世界,开始拥有别人可以进入的入口。
我以前很享受这种两个人关起门来折腾的感觉。一个想法刚冒出来,就可以立刻拆、立刻做、立刻吵,外面的节奏很难跟得上。这种亲密和高密度协作,到今天我也舍不得失去。只是如果 Mira 真的是我想做很多年的东西,那么一直只有我们两个,最后也会变成它的天花板。
一个人可以把很多东西做出来,但很难一个人把它们变成世界的一部分。
第六周没有轻松多少。工作还是很碎,Mira 还是很多,周末还是不够用,我去教会甚至还会听着听着睡着。只是门已经开了一点。风会进来,人也许也会。
