85f2471626
问题:只有"新工程生成器",没有"既有工程怎么接进来"的可复用路径; 而手工接入时最容易踩的坑是——盲目开"必须状态检查通过",会让 PR 永远等一个不会出现的检查,永远合不了。 新增: - scripts/adopt-existing.py:体检 → 加指针(分支+PR)→ 开保护 → 打印自检命令。 默认 DRY-RUN 不动任何东西;幂等(重复跑不改 main)。 关键设计:状态检查是否开启由体检判定——只有"推任意分支都会跑"的工作流, PR 头提交才带着 (push) 状态;判定不通过就只开"禁直推+必须 PR"。 - 06-接入既有工程.md:判定表(带 7 个仓的实测结论)、一条命令、试点记录、 手工四步、验收判据、会遇到的拒绝与处理、扩到其余仓的顺序。 试点实测(Weknora/knowledge-governance):PR #1 → CI context build / build (push) success → mergeable=True(证明状态检查认 PR)→ 合并 32b0ec58a612 → AGENTS.md 进 main;直推被 pre-receive 拒绝; 再跑 --apply 幂等,main 不变。 顺带修两个自查出来的毛病: - ~/.git-credentials 里 LAN 主机是 URL 编码的(192.168.50.223%3a3000), 按字面匹配会报"没有凭据"——改成解码后比对。 - runner 只在仓库级查,aiball 的 runner 挂在组织上,会误报"无 runner"。