Result contracts
How external agents read policy, settlement, impact, MCP isError, and REST 422/202.
After you connect an external agent (Claude, ChatGPT, Codex, or REST), every guarantee write returns a shared public result shape. Prefer these structured fields over prose alone.
In-band recipe: MCP playbook / resource policy-settlement-result (agentsfirst://playbooks/policy-settlement-result).
Guarantee tools (P0)
send_sms— contact-policy deny before providermanage_marketing_email/send_campaign_batch— durable campaign defer (may include partial sends)
MCP advertises outputSchema for these two tools only. Other tools roll out when their runtime results already match the same public schema.