PÅMINOrchestrator

一人公司的那支 AI 团队。

说一句,批方案,合并。十个角色读你的仓库、拆片、写码、跑测试、做审查——全在你不用打开的容器里。

你只做三件事。其余它来。

凡不是"带证据的决定"的步骤都被委托出去。阻塞会到你面前,噪音不会。

  1. 你说一句话
  2. 它读代码、拆片、出方案
  3. 你批——不对就打回,它重出一版
  4. 它开一个组:写码、自查、跑你的测试、交给 QA 复核
  5. 组外的 Auditor 读完整个分支,然后开 PR
  6. 你合并

你 · 1 句话: 做一个计费页:Stripe 结账、 发票、用量图表。沿用现有设计系统。 → PR #128 · 你合并: 计费页:结账、发票、用量 (3 片 · 3/3 闸门 · 组外审计)

十个角色,边界真实。

只有一个写代码。两个审,都不是作者。加一个角色是写一个 YAML,不是改代码。

Chief of Staff — 为你工作 · 在所有项目之上
给你干活,不给项目干活。所有悬着的问题攒成一条消息,blocker 直接放行。 对话对象: 你 · PM. 可以: 打断你. 不可以: 碰代码.
Dispatcher — 常驻 · 在所有组之上
一句话进去,方案出来。先数你到底提了几件事,再拆成一片一片能单独验收的小改动。 对话对象: 你 · Architect. 可以: 出方案. 不可以: 批方案.
Architect — 常驻 · 在所有组之上
常驻,在所有组之上。给每个组分定路径,两个组撞不上;再用两行写清方案哪里不对,你批之前就看到。 对话对象: Dispatcher · PM. 可以: 分配文件路径. 不可以: 写代码.
PM — 组内 · 一个容器
一个组唯一的对话入口。你说一句,一个 agent 回你。 对话对象: 你 · Engineer · QA · Chief of Staff. 可以: 和你对话. 不可以: 改文件.
Engineer — 组内 · 一个容器
组里唯一写代码的。被串行化,写冲突不存在。 对话对象: PM · QA. 可以: 改分配到的路径. 不可以: 推送 · 看到真 token.
QA — 组内 · 一个容器
拿 diff 和测试结果,对着验收标准验其中一片——刻意读不到整个仓库。 对话对象: Engineer · PM. 可以: 打回一片. 不可以: 读整个仓库.
Auditor — 组外
从组外审完成的分支,换一个模型。卡上承诺的做没做?有没有另起炉灶造仓库里已有的东西? 对话对象: Scribe. 可以: 拦下 PR. 不可以: 共享组内上下文.
Scribe — 组外
照着做完的 diff 写 commit 和 PR——写真的改了什么,不是当初打算改什么。 对话对象: Auditor. 可以: 开 PR. 不可以: 改 diff.
Librarian — 组内 · 一个容器
维护一份项目入门说明和一份有上限的经验清单,新 agent 一上来就懂这个项目。 对话对象: PM · Engineer. 可以: 写笔记. 不可以: 改代码.
Bootstrap — 组内 · 一个容器
把干净检出弄到能构建,从 lockfile 和 CI 配置里推出安装步骤。 对话对象: Engineer. 可以: 装依赖. 不可以: 改源码.

怎么知道它没在糊弄你。

用过 AI 写代码的都遇过这五件事——以及哪些由代码而非提示词强制执行。

  1. 01

    「做完了!」——其实没有。

    每一片必须先跑通你项目自己的命令(测试、typecheck、lint)才算数。看退出码,不看它怎么说。不给百分比,只显示哪几项过了。

  2. 02

    它自己审自己的活。

    审两遍,审的都不是写的那个:QA 只看这一片的 diff,Auditor 在组外、换一个模型、读整个分支。

  3. 03

    它说改了 A,其实动了 B。

    每片结束时,把「它声称改了什么」与 git 里真实的 diff 对一遍。对不上当场暴露,不用等你读 PR。

  4. 04

    第 1 轮记得规矩,第 20 轮就忘了。

    凡是能用代码卡住的都不写进提示词:哪个组能碰哪些文件、笔记多长、谁去推卡住的状态。提示词会被忘,if 不会。

  5. 05

    它让你批的东西,长到你根本不会看。

    要你点头的那张卡硬上限 12 行,超了直接退回重写。你批的是方向和验收标准,不是实现方案。

沙箱挡什么,不挡什么。

每个组在自己的容器里干活,用自己的克隆。agent 真跑了 rm -rf,炸的是一个容器。

挡住

动你的电脑。

容器里只有这个项目的一份克隆。你别的项目、家目录、工作副本,它够不到。

拿到你的真 token。

容器里放的是格式对但用不了的假值。真 token 在出网那一刻由容器外替换进去。

往你仓库里推东西。

组里的凭据只够拉代码。推是另一个没有 agent 的容器干的。

挡不住

数据出去。

网络默认放行,因为 agent 要查文档、装依赖。介意就先配好 sandbox.denyDomains。

组内角色互相隔离。

一个组共用一个容器。隔离是组与组之间的。

沙箱 · 一个容器 · 一份克隆

你的仓库,你的测试,它们的活。