subagent-execution-governancelisted
Install: claude install-skill ooooooooooooooooooop/agent-tools
# 子代理执行治理(Subagent Execution Governance)
> 本 skill 由一次真实实现会话审计(session-33b69ec9-1abf-454d-9555-f2d4031a9453)提炼而成。那次会话 3 小时、17 个子代理、执行层消耗 309 万输入 token(主会话 4 倍),`b21b9211` 一个子代理读了 65 个文件后仍被催"直接实现",主会话被迫 28 次 `send_message` 催促 + 8 次 `interrupt_agent`,最终目标未 complete、会话中途悬死。**根因不是"监督不够凶",而是子代理的工作边界、信息边界、写权限和退出条件没有工程化。**
## 核心原则
> 不要从"自由探索"直接走向"实现代理完全失去自主权";正确形态是 **契约驱动 + 有界自治 + 结构化升级**。
>
> 目标不是"主代理不断管子代理",而是 **系统规则让正常子代理根本不需要被管**。
失败因果链(本 skill 要打断的):
```text
任务设计错误(探查/实现不分)
→ 执行边界过宽(无限读取授权)
→ 监督不得不频繁介入(催促/中断/重派)
→ send_message / interrupt 注入上下文
→ 上下文继续膨胀 → 缓存命中率恶化 → token 爆炸
```
## 一、角色分离(Discovery → Contract → Implementation → Validation)
禁止让一个子代理同时承担"先研究、再实现、再测试"四种认知模式:
| 角色 | 读 | 写 | 产出 |
|------|----|----|------|
| **Discovery**(探查) | 自由只读 | 禁止 | 契约快照草案(≤15 条 file:line 事实) |
| **Contract Builder**(主会话) | 验证契约 | 写契约文件 | 最终契约快照(含负空间) |
| **Implementation**(实现) | 有界读取(三级) | 只写自有文件 | 代码 + 变更清单 + 状态 |
| **Validation**(验证) | 只读目标文件/测试 | 禁止(或只改测试) | 测试结果 + 差异报告 |
**主会话承担 Contract Builder 与 Orchestrator**:探查结果必须经主会话验证、确认文件无冲突、写入契约快照后,才能派实现子代理。**禁止**探查子代理直接产出实现任务。
## 二、契约快照(Implementation Contract)
每个实现子代理派发前必须有一份契约快照,包含**正空间和负空间**:
```text
GOAL: 一句话目标(可验收)
OWN: 本子代理独占写入的文件(单写者)
MAY READ: 自动允许读取的文件/目录白名单
REFERENCE: 参考实现文件(读但不改)
IN SCOPE: 允许做的事
OUT OF SCOPE: 禁止做的事(防 scope creep)
MUST PRESERVE: 必须保持不变的现有行为/API
MUST NOT: 禁止触碰的模块/文件/顺手重构/兜底路径
EXIT: 完成条件(确定性可判)
BLOCKED: 允许升级阻塞的场景(仅限契约外信息缺失)
```
负空间(OUT O