Agent compatibility validation checks the lowest advertised capability first. Rich interfaces pass only when lower-capability discovery is honest and bounded.
Required failures
get_action_fallback_required: L0/L1 compatibility fails when a core writable action is POST-only and no documented GET fallback or no-op URL exists.get_action_idempotency_required: GET-Action fails when a write-capable example lacksidempotency_keyornonce.get_action_query_secret: GET-Action fails when examples put secrets, tokens, passwords, account identifiers, medical identifiers, payment data, private messages, or regulated identifiers in URLs.get_action_js_only_discovery: GET-Action fails when discovery is hidden behind JavaScript-only UI.llms_minimal_instruction_required: L0/L1 discovery fails whenllms.txtpoints only to complex OpenAPI or tool specs and omits direct minimal instructions.retry_loop_no_op_violation: no-op handling fails when unsupported agents are told to keep retrying or guessing.
Required warnings
post_equivalent_recommended: warn when a GET-Action has no POST or OpenAPI equivalent for capable clients.get_action_security_order_warning: warn when examples appear before consent and security boundaries.side_effecting_get_discovery_warning: warn when side-effecting GET links are presented as general discovery shortcuts.browser_form_fallback_required: warn when browser-targeted POST guidance lacks a visible form or browser-open fallback.restore_readback_required: warn when create/update guidance lacks a restore or readback URL and forces endpoint guessing.dashboard_default_path_warning: warn when dashboard or custom-template paths are presented as default while generated profile or package paths exist.post_blocked_fallback_required: warn when a POST path omits fallback behavior for agents that cannot execute arbitrary JSON POST.live_get_blocked_fallback_required: warn when dynamic GET guidance targets chatbot-level agents without declaring live HTTP GET and a fallback for indexed-only fetchers.
Test fixtures
The release publishes positive and negative fixture JSON records for these rule families under the UAI-1 examples tree and exposes the rule catalog through agent-compatibility.json.