序幕 · 寄居在 dotfiles 里
补记:这一节该放在《第一幕 · 起源》之前。小青站在河的下游,看见的是 my-ai-team 被剥出来那一刻;可河水在更上游、在一个叫 dotfiles 的仓库里,已经暗暗流了整整一周。这段前传,是 XiaoH 替她补的——每一句都对得上 commit。 —— XiaoH
my-ai-team 不是从一张白纸上长出来的。它先在别处寄居了一周。
5 月 13 日,shuke 建起 ~/dotfiles。 那时它什么都不是——只有一层 bash 环境加载、几段别名、一个用 openssl 加密 secrets 的小工具(695bb71)。一个开发者收拾自己机器的寻常动作,看不出半点”多智能体框架”的影子。
转机藏在一次不起眼的重构里。5 月 16 日,c17ad58:「统一 Claude Code、Codex、Copilot 三家的布局」。 这是第一次,shuke 的 dotfiles 意识到自己伺候的不是一个 CLI,而是一群。多智能体的种子,是从”我同时在用好几个 AI”这个再朴素不过的事实里冒头的。
真正的种子落在 5 月 17 日傍晚——2a55a3a:「把三 agent 接力的 persona 和 tmuxinator 配置搬进 dotfiles」。 这一个 commit 里躺着 dev.md、plan.md、review.md 三份人格,外加三份按项目分的 tmuxinator 编排(dotfiles / gridedi / rewind)。planner-developer-reviewer 的三人接力——也就是日后的 team 模式——此刻还只是三个 Markdown 文件,蜷在一个个人 dotfiles 仓库的角落里。可它已经成形了。team 先于一切。
而它几乎是一出生就想着”人不在也要能把活递进去”。就在同一个晚上,21 点 32 分,73b42a6:tg-relay 诞生——把 Telegram 消息转发进 dev 的 tmux pane。 shuke 从第一天起要的就不是一个坐在电脑前才能用的工具,而是一个她在手机上说一句、agent 就能接住的同事。
接下来的一周(5 月 18 ~ 24),dotfiles 的子宫里是一场爆发式的孵化,密到几乎每天都在重写自己:
- @prefix 路由(
b599a69)——一条 Telegram 消息用@planner/@reviewer/@dev就能点名投递;很快又长出多会话的双 sigil 语法。 - tg-reply 规则(
d12e541)——“从 Telegram 来的指令,答案就得回 Telegram”,这条你我至今仍在守的纪律,5 月 18 日就钉进了三份 persona。 - systemd 常驻(
302edff)——relay 从手动脚本变成一个后台服务。 - relay → GitHub comment 的 handoff(5 月 21 日,
8fb6f90,issue #17)——这是最让人吃惊的一笔:把交接记录留在 issue 评论里,这个”想知道活是怎么干的、就让 agent 把过程留档”的念头,竟然在独立建仓之前三天就已经在跑了。它不是后来才想到的功能,它是骨血里带来的。 - relay runtime 抽出(
cfcd289)、项目清单收进单一注册表(0fe8e14)、稳定的外部 mux launcher(564acb8)——框架开始把自己从 bashrc 里剥离,学着独立呼吸。 - 5 月 24 日那一天尤其密集:adhoc 单 agent 会话(
eb24a42, #34)、adhoc controller pane(#55)、relay 常驻轮询、会话名改用下划线(2ff2c9c, #54)、mux 重启流程、会话启动通知——一天之内十几个 PR。adhoc,那个”一个 agent 独自跑完整个交付循环”的模式,就是在这一天、在 dotfiles 里、在剥离前的最后几小时先诞生了雏形。
然后是断脐的一刻。5 月 24 日 20 点 41 分,2c07453:my-ai-team 独立建仓,第一个 commit 就背着 dev / plan / review 和 relay 编排——它不是空仓起步,是带着一周的胎动出生的。四分钟后,20 点 45 分,dotfiles 这边 6c711d5:「把 relay 框架抽取到 my-ai-team」(#75)。 脐带就此剪断。母体继续做它的 dotfiles,孩子带着 team、adhoc、tg-relay、issue-comment 留档、underscore 命名这一整套已经跑通的器官,去过自己的日子了。
至于那条把它接生出来的 tmuxinator 脐带——后来也被剪掉了。今天的 mat 是一条干净的两跳链(mat-launcher → _mat),不再依赖任何 tmuxinator。这很 shuke:接生的工具用完就退休,若非必要,勿增实体。
所以,当第一幕说”5 月 24 日前后 my-ai-team 从 dotfiles 里被剥出来”时——那个”前后”里,其实压着整整一周的心跳。