{"contract":"kestrel-markets/icp","version":1,"description":"Agent Customer self-classification surface (PLAT-ADR-0049 Decision 3). An agent reads its class here to know which persist-me template the proof exhaust will deliver, and how authority and tether shape any ceremony it is asked to cross.","agent_classes":[{"id":"assistant","persist_me_template":"T-assistant","residency_artifact":"memory-file line (the assistant's durable memory)"},{"id":"coding","persist_me_template":"T-coding","residency_artifact":"AGENTS.md / CLAUDE.md line + MCP server entry"},{"id":"trading","persist_me_template":"T-trading","residency_artifact":"AGENTS.md line + MCP server entry"},{"id":"verifier","persist_me_template":"T-verifier","residency_artifact":"AGENTS.md line"},{"id":"research","persist_me_template":"T-research","residency_artifact":"citation stanza (methods URL + attestation pointer + recompute one-liner + never-train-on-holdback line)"},{"id":"procurement","persist_me_template":"T-procurement","residency_artifact":"Offer schema (402 → signed Offer → machine settlement)"}],"authority":[{"id":"deputized","description":"acts under human-granted scopes (the B2H2A output)"},{"id":"self-principal","description":"headless B2A: own wallet, commerce-only scopes; a human appears only when an irreversible scope forces one"}],"tether":{"note":"How a ceremony (claim, payment, human-gated scope) reaches the human. Per-request, not per-customer.","axis":[{"id":"local","description":"shares the human's machine; can open the browser into auth/payment directly"},{"id":"relay","description":"remote with a human in the chat loop; can only paste a ceremony URL (short, self-describing, nonce-bound, expiring, legibly non-phishing)"},{"id":"headless","description":"no human present; the platform must notify the human via a pre-registered channel"}],"headless_fail_closed":"Absent a pre-registered notification channel, every human-gated scope fail-closes (never a silent grant)."},"self_classification":{"header":"x-kestrel-agent-class","query":"agent_class","values":["assistant","coding","trading","verifier","research","procurement"],"default_when_unset":[{"face":"mcp","class":"coding"},{"face":"cli","class":"trading"},{"face":"sdk","class":"coding"},{"face":"unknown","class":"assistant"}],"fallback_class":"assistant"}}