agent-responselisted
Install: claude install-skill metraton/gaia
# Agent Response Protocol
The orchestrator loads this to interpret a returned `agent_contract_handoff` and decide the next action keyed on `agent_state` -- the consume side of the contract the subagent produced. For the field schema (every field, required/conditional status, triggers, the INPUT-vs-OUTPUT name collision), see `agent-contract-handoff`; this skill does not restate field meanings, it tells you what to do with them.
## State machine
`agent_state` is the first field read; it selects the branch. The six values are canonical in `VALID_PLAN_STATUSES` (`gaia.state`, re-exported by `response_contract.py`) -- their meanings live in `agent-contract-handoff`, not here.
```
read agent_status.agent_state (from the agent's fenced block; or, mid-conversation, a gaia-operator dispatch running `gaia contract view` and relaying it back -- you have no shell of your own)
|- COMPLETE -> pedagogical summary (situation -> impact) + offer of available detail; verbatim only when imperative; surface verification, then close
|- APPROVAL_REQUEST -> split on approval_id (present: present-approval; absent: plan options)
|- NEEDS_INPUT -> AskUserQuestion, then SendMessage the answer
|- NEEDS_VERIFICATION -> MUST dispatch a verifier-role agent to validate the task's gates before it can reach COMPLETE (a verifier rejection bounces it to IN_PROGRESS); a proposal, never a completion (harness R2)
|- BLOCKED -> present open_gaps; new dispatch or acc