title, date, task_id, supersedes
| title |
date |
task_id |
supersedes |
| U2 治理交接收口:Gitea 原生门禁取代本地 agentctl 治理 |
2026-09-29 |
multi-repo-design-2026-09-28 |
agentctl-mandatory 客户端规则与本地租约/收据/候选集成流程 |
U2 收口记录
交接内容
| 旧机制(agentctl 本地治理) |
新权威 |
状态 |
| pre-commit/reference-transaction 本地租约与收据 |
Gitea 受保护分支(dev/test/main) |
旧钩子文件已删除(原 chmod 停用,现正式退役) |
agentctl with/SQLite 写前置 |
无(普通 Git) |
编码流程零 agentctl |
docs apply 共享文档 CAS |
PR 版本历史 + CI 一致性检查 |
CURRENT/MATRIX 转只读快照 |
候选 validate/queue enqueue/integrate |
PR + 必需 CI(go-vet、backup-restore-drill、web)+ 非作者批准 |
旧本地 dev 推进入口退役 |
| 需求重叠 catalog 硬门禁 |
降为建议(PR 审核中人工判断) |
不再阻塞写入 |
| 收口必跑 cleanup report / docs drift |
移至维护任务/按需 |
不再是会话前置 |
保留不变的硬边界:凭证/秘密防护(新增 CI secrets 扫描)、共享环境写授权、
破坏性操作授权、他人现场保护、证据诚实、产品 IAM/文档职责/DB 事务(产品侧,与本交接无关)。
协作模型(实测验证)
- 编码 Agent =
agent-bot(作者):功能分支、提交、建 PR。
- 用户 =
weichen(审核者+合并者):批准、合并;白名单直推保留(不破坏既有习惯)。
- Gitea 1.27.3 硬禁止自批准 → 非作者审核由平台强制,非自觉约定。
- 完整闭环已跑通:PR #1(U1 文档 + CI 修复)bot 作者 → CI 绿 → weichen 批准 → 合并 4d716bcd。
验收证据
| 场景 |
结果 |
| V19 两个独立 clone 同路径并行编辑、各自提交 |
双方均成功,无全局锁牵连(本日实测,分支已清理) |
| V20 停 daemon/无本地治理 → 本地开发 |
本会话全部提交零 agentctl 调用;原仓钩子已删除 |
| V23 旧入口不能推进远端 |
agent-bot 直推 dev 被拒(N6);无批准/陈旧分支/缺 CI 的合并在演练仓全部被拒(N3–N5) |
| V26 完整修复→测试→提交→PR→合并零 agentctl |
PR #1 全流程即证据;CI 必需检查绿后合并 |
| 白名单非破坏 |
weichen 直推 dev 放行(P1,4d716bcd..9504b624) |
遗留与后续
- 短测存量失败(环境依赖用例)→ issue #2,修绿后并入必需门禁。
- Development-Manager 中 agentctl 的部署/发布/恢复角色重写(KTD13 裁剪矩阵)→ 后续任务,编码流程已不依赖。
- 锁库
.locks/state.sqlite 与历史任务记录冻结为只读证据,不再作为权威。
- 演练仓
governance-drill-2026-09 保留至 U6a 发布链路验证后删除。
- 规范文档链(worktree-workflow、policy-registry、validation-contract 等)保留为历史参考;AGENTS.md/PROJECT.md 已按新模型改写并在本 PR 生效。