autoteam init 写进目标仓库的所有文件。“受保护”指受 CODEOWNERS 保护,改动必须由人批准。
你的仓库/├─ AGENTS.md 受管块├─ autoteam 可执行入口,受 CODEOWNERS 保护├─ Makefile├─ .jscpd.json├─ .gitignore 受管块├─ .github/│ ├─ CODEOWNERS 受管块│ ├─ pull_request_template.md│ └─ workflows/{gate,deploy,rollback}.yml└─ .autoteam/ 全部由 autoteam 管理,整个目录受 CODEOWNERS 保护 ├─ autoteam.conf registry.yaml playbook.md README.md instruction-budget ├─ scripts/{gh-app-token,loop-guard,merge-mode,merge-status,open-pr,protected-paths,health-metrics,check-instruction-budget}.sh ├─ .lock.json 装机版本 + 每个文件的 sha256 ├─ local/ 私钥、env(gitignore,不入库) └─ instructions/ 只有 autoteam eject 之后才存在| 文件 | 作用 | 谁会改 | 受保护 |
|---|---|---|---|
AGENTS.md(受管块) |
四条全局规则:怎么跑检查、不谎报验证、PR 标题、规则文件 | 模板 | |
autoteam |
agent 开工和部署后使用的根目录入口;只调用版本与固定提交一致的本机 skill(别的版本忽略并在 stderr 提示),否则下载当前包构建提交的 CLI | 模板 | ✅ |
Makefile |
check / dev / deploy(只在不存在时创建) |
人 | ✅ |
.jscpd.json |
重复代码阈值 3%、忽略目录 | 人 | ✅ |
.gitignore(受管块) |
忽略 jscpd 报告目录、.autoteam/local/(App 私钥、按量计费的 key;跑 agent 的机器用 AUTOTEAM_KEYS_DIR,见配置)和 npx skills add 安装的 .claude/skills/、.agents/skills/ |
模板 | |
.github/CODEOWNERS(受管块) |
规则文件的负责人 | 模板 | ✅ |
.github/pull_request_template.md |
PR 正文:任务编号、检查结果、范围外发现 | 人 | ✅ |
.github/workflows/gate.yml |
必需检查 check:PR 行数、重复代码、make check |
人 | ✅ |
.github/workflows/deploy.yml |
合并后 make deploy,结果通知 Planner |
人 | ✅ |
.github/workflows/rollback.yml |
手动回滚到指定提交 | 人 | ✅ |
.autoteam/README.md |
目录说明 | 模板 | ✅ |
.autoteam/autoteam.conf |
配置(说明) | 人 | ✅ |
.autoteam/registry.yaml |
计费注册表和团队清单(说明) | 人 | ✅ |
.autoteam/.lock.json |
装机版本和每个文件的 sha256,autoteam upgrade 靠它判断哪些文件改过;要入库 |
工具 | ✅ |
.autoteam/playbook.md |
本项目的经验库,Planner 每次开工必读;由 Planner 提议、人批准 | 人 | ✅ |
.autoteam/instruction-budget |
本地角色指令和 autopilot 的行数上限;超限时 make check 失败 |
人 | ✅ |
.autoteam/instructions/** |
可选,autoteam eject 落盘的角色指令、autopilot、runbook、planner-mcp.json;有这份就优先用,没有则用 autoteam 包内的 |
人 | ✅ |
.autoteam/local/ |
本机私钥、按量计费的 key;受管块把它加进 .gitignore,不入库 |
人 | |
.autoteam/scripts/gh-app-token.sh |
用 App 私钥铸 token,给 agent 提供 GitHub 身份 | 模板 | ✅ |
.autoteam/scripts/loop-guard.sh |
统计打回、验收不通过、换人次数,判断是否升级 | 模板 | ✅ |
.autoteam/scripts/merge-mode.sh |
判断这个 PR 由谁放行、由谁合并(platform / staged / reviewer) | 模板 | ✅ |
.autoteam/scripts/merge-status.sh |
核对 PR 的自动合并是否真的开了(merged / queued / auto / none) | 模板 | ✅ |
.autoteam/scripts/open-pr.sh |
Implementer 交付用:开 PR、按合并模式开自动合并并核对,返工时只核对、补开 | 模板 | ✅ |
.autoteam/scripts/protected-paths.sh |
用目标分支 CODEOWNERS 与 lock 文件判断路径;--files <路径...> 或 --pr <编号>,命中输出路径并返回 0,未命中返回 1,错误返回 2 |
模板 | ✅ |
.autoteam/scripts/health-metrics.sh |
代码健康指标 | 模板 | ✅ |
.autoteam/scripts/check-instruction-budget.sh |
对预算表中已 eject 的指令检查行数 | 模板 | ✅ |
“模板”表示一般不需要手改,升级 autoteam 时用 autoteam upgrade 更新(改过的文件它不会动);“人”表示装完后按项目情况修改。
不再落盘的文件
Section titled “不再落盘的文件”四个角色指令(planner / implementer / reviewer / auditor)、autopilot 的 runbook、planner-mcp.json 不写进你的仓库:它们随 autoteam 包发布,autoteam multica --apply 和 autoteam doctor 直接读包内的版本,升级 autoteam 就升级了它们。规则由包版本固定,为什么这样是安全的见安全边界。
要按本项目改某一份:autoteam eject <名字> 把它复制到 .autoteam/instructions/(受 CODEOWNERS 保护),此后读取优先用这一份,升级不会覆盖。用 autoteam eject --diff <名字> 对比包内的新版本。
日常运行中 autoteam 只新建和更新,不删除任何文件,也不删除 GitHub 或 Multica 上的任何东西。卸载时手动删掉这些文件和受管块,在 Multica 里删掉对应的 agent 和 autopilot,在 GitHub 上删掉规则集 autoteam 和 secret MULTICA_DEPLOY_HOOK。