Files
Agent-System/.doc/test-reports/2026-09-21-agent-governance-test-report.md
weichen 7f80e72ab9 docs(governance): record live gates and verified local integration
Archive the completed implementation and preserve cleanup ownership, runtime identity and review evidence.
2026-09-21 14:46:55 +00:00

38 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Agent 规范与 L1 操作门禁验收
日期:2026-09-21。范围:R01–R10、授权与脱敏证据补充、本机两个共享文档/dev 的最小 L1 门禁。授权与收口见[实施任务](../archive/ops/2026-09-21-agent-governance-implementation.md)。不改变产品完成度/发布 blocker。
## 变更与边界
- AGENTS/PROJECT/客户端入口去重;轻量答复、单文档任务、按范围验证、规则生效版本、原子提交及会话结束/任务完成分离。CURRENT 历史移入[归档](../archive/ops/2026-09-21-current-history.md),保留原有保护项与未完成任务。
- 主仓唯一 `.locks`:SQLite WAL、PID/start/boot 身份、资源集合原子申请、父子路径互斥、幂等请求、可审计恢复、旧 dev flock 同 inode 桥接。两共享文档行级 CAS、整文档管理权限、完成证据与提交收据。
- 安全 worktree 创建/删除;主目录及源码/环境 guard;提交/引用门禁与精确候选验证;中断子进程回收。构建从指定 Git 提交导出,nightly 要求两个精确顶层测试均真实 PASS。
- 这是合作 Agent 的入口与提交门禁,不是 OS 权限隔离;直接 shell/篡改工具仍可绕过。无后台常驻队列,无产品源码/DB/模型变更,无 test/main 晋升或远端 push。
## 实际验证
| 检查 | 结果与证据 | 限制 |
|---|---|---|
| Python 工程行为测试 | 76 PASS;[完整输出](./assets/2026-09-21-agent-governance/python-tests.txt) | 临时真实 Git/SQLite/flock;不代表产品 E2E |
| 20 进程、20 worktree 争抢同一资源 | 1 执行、19 LOCK_BUSY;[结果](./assets/2026-09-21-agent-governance/contention.json)、[可重跑脚本](./assets/2026-09-21-agent-governance/contention-probe.py) | 本机并发,不是跨机证明 |
| 独立代码审查 | [原始审查](./assets/2026-09-21-agent-governance/code-review.json)确认 5 项;[修复复核](./assets/2026-09-21-agent-governance/fix-verification.json)全部关闭 | 同模型独立上下文,未调用外部 provider |
| dev 引用准入 | 线性提交借原始 with 绕过被拒;两父候选精确提升、错误基线、失败重验收据失效有正反例 | 实际主仓激活与合入另见收口 |
| 中断与恢复 | validate/integrate SIGINT 不遗留写入子进程;未知外部结果阻止继续;恢复后可重试 | 无自动 DB 回滚 |
| 文档写回 | 过期 CAS、多文件预检、他人记录、原始改动混入收据、admin 无批准升 done(紧凑单元格及前导空格 0–3)均覆盖 | 不是任意读者的多文件原子快照,以 Git 提交发布 |
| 构建与服务 guard | 无租约/错 cwd/错 SHA 拒绝;并发源码修改不污染 Git archive;nightly 证据不进入构建输入 | Docker 边界使用 fake Docker,未真实构建镜像/执行 nightly |
| worktree 清理 | 祖先、文件、生命周期、活跃登记与进程拒绝覆盖;[改前失败](./assets/2026-09-21-agent-governance/ops-red-before.txt) | 3 删除正例仅模拟可读进程枚举;其余真实 Git/锁。本机部分同 UID cwd 不可读,严格保留 cleanup_pending |
工程脚本/规范变更不需 Go、前端或产品 PI 全套测试,也不需要重建产品容器。语法、diff、文档链接和候选复验在集成阶段确认。不得用健康检查替代这些测试,亦不得用本表替代业务验收。
## 主仓收口
生效提交:`7e9317b849e0696e110bac5b27749861178d7e3d`。候选第一父节点为当时最新 dev `a5ea469ca44171a5c3e6419b1757852270fb991d`;实现任务 HEAD `578a96440da56717582ec5ab267a094ceea3d941`,合并后重新运行 76 项测试全部通过,主目录只快进接收同一节点。首次启用由旧 dev flock 持锁完成,经检查旧操作 released;启用新库时已释放旧 fd,没有双重加锁死锁。
[候选完整输出](./assets/2026-09-21-agent-governance/candidate-tests.txt)、[实际集成及运行快照](./assets/2026-09-21-agent-governance/live-integration.json)、[实际激活检查](./assets/2026-09-21-agent-governance/live-activation.json)。只收集 readiness、镜像和挂载身份,未保存业务正文或环境变量;cleanup 错误省略 PID 列表。
主仓唯一 `.locks` 已初始化;旧/新 dev 锁 inode 相同;pre-commit、pre-merge-commit、reference-transaction 已安装。doctor 正常;无租约 env guard 在调用服务前返回 LEASE_REQUIRED。收口使用管理入口完成文档 CAS、带租约提交、精确候选验证与集成。
dev 集成前后 ready=ok、schema61,镜像及主目录数据挂载一致;无需重建产品服务。普通 remove 的真实尝试因同 UID cwd 不可读返回 cleanup_pending,未删除目录/分支。当前两个 worktree 由独立维护者在 owner 退出和进程可见性核实后复查,不扩大为清理其他任务。用户未要求 push,变更仅在本地。
关联影响:AGENTS/PROJECT/客户端入口、操作规范/验证契约/规则登记、模板、CURRENT 历史和自动化 backlog 均已同步;FEATURE-MATRIX 仅把治理自动化 planned 调整为 partial,不关闭完整部署恢复/权限隔离范围,不改产品 production_ready 或 gap-matrix。356 个文档目标检查保留一处既有历史 promotion receipt 断链(未由本轮引入)。