agent-contract-handofflisted
Install: claude install-skill metraton/gaia
# Agent Contract Handoff
The `agent_contract_handoff` is the uniform structured block every subagent emits at the end of its turn and the orchestrator consumes to decide the next dispatch. This skill is its field dictionary: every field, whether it is required, when a conditional field triggers, and which code symbol owns the rule.
## The name collision: INPUT vs OUTPUT
`agent_contract_handoff` names two different things, and this is where the distinction is owned. The runtime injects an INPUT envelope before the turn; the subagent emits an OUTPUT envelope after it. Same name, two directions.
### INPUT envelope (what the subagent receives)
The orchestrator-side context the runtime injects before a turn. Detection of `consolidation_required` reads from here -- see `requires_consolidation_report` in `contract_validator.py`. Five named sections:
| Section | Carries | Use |
|---------|---------|-----|
| `project_knowledge` | indexed workspace facts (`project_context_contracts`) | read before scanning the filesystem |
| `surface_routing` | routed surface(s), `multi_surface` flag, adjacent agents | know whether you are primary or assisting |
| `agent_contract_handoff` (input sub-block) | goal, acceptance criteria, scope, plus `consolidation_required` / `cross_check_required` flags | decides whether your OUTPUT must carry `consolidation_report` |
| `write_permissions` | exact `writable_sections` you may emit `update_contracts` clauses for | writing outside the list is rejected