{"schema_version":"verify.report.v1","generated_at":"2026-07-31T06:32:49.114766+00:00","snapshot_id":"trustsnap_b0e245dfc58b2808","server":{"namespace":"ai.afmr","name":"discovery","title":"AFMR Discovery","description":"Read AFMR failure modes and discover scoped attestation and lift-evidence contracts.","homepage_url":"https://afmr.ai/","docs_url":null,"icon_url":null,"support_url":null,"remote_url":"https://afmr.ai/api/rpc","server_card_url":null,"latest_version":"1.0.0","current_status":"healthy","current_score":71.15,"transport_type":"streamable-http","has_oauth":false,"has_dcr":false,"has_prompts":false,"tool_count":4,"current_validation_schema_version":"16d1d270090d6c8f","last_validated_at":"2026-07-31T05:24:28.944532+00:00","registry_source":"official_registry","registry_identifier":"ai.afmr/discovery","canonical_identifier":"ai.afmr/discovery","current_score_components":{"auth_operability_score":2.0,"error_contract_score":1.7,"rate_limit_semantics_score":2.0,"schema_completeness_score":3.0,"backward_compatibility_score":2.0,"slo_health_score":4.0,"security_hygiene_score":4.0,"task_success_score":4.0,"trust_confidence_score":1.75,"abuse_noise_ratio_score":4.0,"prompt_contract_score":2.0,"resource_contract_score":4.0,"discovery_metadata_score":4.0,"registry_consistency_score":2.0,"installability_score":4.0,"session_semantics_score":4.0,"tool_surface_design_score":3.0,"result_shape_stability_score":2.0,"oauth_interop_score":3.0,"recovery_semantics_score":0.0,"maintenance_signal_score":3.0,"adoption_signal_score":3.0,"freshness_confidence_score":3.0,"transport_fidelity_score":4.0,"spec_recency_score":2.0,"session_resume_score":3.0,"step_up_auth_score":3.0,"transport_compliance_score":2.5,"utility_coverage_score":2.0,"advanced_capability_coverage_score":3.0,"connector_publishability_score":3.0,"tool_snapshot_churn_score":3.0,"connector_replay_score":3.0,"request_association_score":3.0,"interactive_flow_safety_score":3.0,"action_safety_score":2.0,"official_registry_presence_score":4.0,"provenance_divergence_score":4.0,"safety_transparency_score":2.0,"tool_capability_clarity_score":3.0,"destructive_operation_safety_score":3.0,"egress_ssrf_resilience_score":3.0,"execution_sandbox_safety_score":2.0,"data_exfiltration_resilience_score":2.0,"least_privilege_scope_score":2.0,"secret_handling_hygiene_score":3.0,"dependency_supply_chain_signal_score":2.5,"input_sanitization_safety_score":3.0,"tool_namespace_clarity_score":4.0},"capability_taxonomy":["development","database","search","files","other","read","exec","export","write","filesystem","resources","streamable_http"],"machine_summary":{"verdict":"safe_for_evaluation","best_for":["Claude Desktop","Smithery","Generic Streamable HTTP"],"avoid_if":["You need a low-risk tool surface."],"requires_auth":false,"supports_oauth":false,"risk_level":"high"},"taxonomy_tags":["development","database","search","files"],"score_decomposition":[{"key":"access_protocol","label":"Access & Protocol","score":32.5,"max_score":44.0,"hint":"Connectivity, auth, and transport expectations for common clients.","components":[{"key":"auth_operability_score","score":2.0},{"key":"installability_score","score":4.0},{"key":"session_semantics_score","score":4.0},{"key":"transport_fidelity_score","score":4.0},{"key":"spec_recency_score","score":2.0},{"key":"session_resume_score","score":3.0},{"key":"step_up_auth_score","score":3.0},{"key":"transport_compliance_score","score":2.5},{"key":"request_association_score","score":3.0},{"key":"oauth_interop_score","score":3.0},{"key":"least_privilege_scope_score","score":2.0}]},{"key":"interface_quality","label":"Interface Quality","score":35.7,"max_score":56.0,"hint":"How well the tool/resource interface communicates and behaves under automation.","components":[{"key":"error_contract_score","score":1.7},{"key":"rate_limit_semantics_score","score":2.0},{"key":"schema_completeness_score","score":3.0},{"key":"prompt_contract_score","score":2.0},{"key":"resource_contract_score","score":4.0},{"key":"tool_surface_design_score","score":3.0},{"key":"tool_capability_clarity_score","score":3.0},{"key":"tool_namespace_clarity_score","score":4.0},{"key":"result_shape_stability_score","score":2.0},{"key":"utility_coverage_score","score":2.0},{"key":"advanced_capability_coverage_score","score":3.0},{"key":"tool_snapshot_churn_score","score":3.0},{"key":"connector_replay_score","score":3.0},{"key":"recovery_semantics_score","score":0.0}]},{"key":"security_posture","label":"Security Posture","score":25.0,"max_score":36.0,"hint":"How safely the exposed tool surface handles destructive actions, egress, execution, secrets, and risky inputs.","components":[{"key":"security_hygiene_score","score":4.0},{"key":"destructive_operation_safety_score","score":3.0},{"key":"egress_ssrf_resilience_score","score":3.0},{"key":"execution_sandbox_safety_score","score":2.0},{"key":"data_exfiltration_resilience_score","score":2.0},{"key":"secret_handling_hygiene_score","score":3.0},{"key":"input_sanitization_safety_score","score":3.0},{"key":"interactive_flow_safety_score","score":3.0},{"key":"action_safety_score","score":2.0}]},{"key":"reliability_trust","label":"Reliability & Trust","score":18.75,"max_score":24.0,"hint":"Operational stability, consistency, and trustworthiness over time.","components":[{"key":"backward_compatibility_score","score":2.0},{"key":"slo_health_score","score":4.0},{"key":"task_success_score","score":4.0},{"key":"trust_confidence_score","score":1.75},{"key":"abuse_noise_ratio_score","score":4.0},{"key":"freshness_confidence_score","score":3.0}]},{"key":"discovery_governance","label":"Discovery & Governance","score":21.5,"max_score":28.0,"hint":"How well the server is documented, listed, and governed in public registries.","components":[{"key":"discovery_metadata_score","score":4.0},{"key":"registry_consistency_score","score":2.0},{"key":"maintenance_signal_score","score":3.0},{"key":"safety_transparency_score","score":2.0},{"key":"dependency_supply_chain_signal_score","score":2.5},{"key":"official_registry_presence_score","score":4.0},{"key":"provenance_divergence_score","score":4.0}]},{"key":"adoption_market","label":"Adoption & Market","score":6.0,"max_score":8.0,"hint":"Adoption clues and public evidence that the server is intended for external use.","components":[{"key":"adoption_signal_score","score":3.0},{"key":"connector_publishability_score","score":3.0}]}],"validation_diff":null,"tool_snapshot_diff":null,"connector_replay":{"status":"missing","backward_compatible":false,"would_break_after_refresh":false,"added_tools":[],"removed_tools":[],"required_arg_breaks":[],"output_breaks":[],"additive_output_changes":[]},"request_association":{"status":"missing","advertised_capabilities":[],"session_id_present":false,"protocol_version":null,"observed_methods":[],"violating_methods":[],"http_status":null,"issues":[]},"production_readiness":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use.","badge":"score-medium","critical_alerts":0},"recommended_for":[{"label":"Claude Desktop","reason":"Claude Desktop is marked compatible with score 83."},{"label":"Smithery","reason":"Smithery is marked compatible with score 80."},{"label":"Generic Streamable HTTP","reason":"Generic Streamable HTTP is marked compatible with score 100."}],"history_summary":{"points":[{"timestamp":"2026-07-31T05:24:28.944532+00:00","score":71.15,"status":"healthy","latency_ms":2113.1,"tool_count":4,"prompt_count":0,"resource_count":8}],"status_counts":{"healthy":1},"score_delta_7d":null,"score_delta_30d":null,"avg_latency_ms":2113.1,"healthy_ratio_recent":1.0,"freshness_hours":1.14,"latest_status":"healthy"},"validation_timeline":[{"timestamp":"2026-07-31T05:24:28.944532+00:00","summary_status":"healthy","score":71.15,"protocol_version":"2025-03-26","auth_mode":"public","tool_count":4,"prompt_count":0,"resource_count":8,"high_risk_tools":1,"safe_to_publish":false,"change_flags":[]}],"evidence_confidence":{"score":76.25,"label":"high","reason":"Based on 1 recent validations, 26 captured checks, and validation age of 1.1 hours.","live_check_count":26,"validation_age_hours":1.14},"incident_feed":[{"type":"validation_snapshot","timestamp":"2026-07-31T05:24:28.944532+00:00","title":"Latest validation: healthy","message":"Score 71.2 with status healthy."}],"remediations":[{"code":"add_confirmation_semantics","severity":"high","title":"Add confirmation and dry-run semantics for risky actions","why":"High-risk write, delete, exec, or egress tools should communicate safeguards clearly.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"fix_transport_compliance","severity":"high","title":"Align session and protocol behavior with Streamable HTTP expectations","why":"Clients increasingly rely on MCP-Protocol-Version, session teardown, and expired-session semantics.","action":"Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.","playbook":["Return `Mcp-Session-Id` and `Mcp-Protocol-Version` headers consistently on streamable HTTP responses.","Honor `DELETE` session teardown and return `404` when a deleted session is reused.","Reject invalid protocol-version headers with `400 Bad Request`."],"maintainer_context":null},{"code":"enforce_request_association","severity":"high","title":"Associate roots, sampling, and elicitation with active client requests","why":"Modern MCP guidance expects roots, sampling, and elicitation traffic to be tied to an active client request instead of arriving unsolicited on idle sessions.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"publish_oauth_protected_resource","severity":"high","title":"Expose /.well-known/oauth-protected-resource","why":"Without a protected-resource document, OAuth clients cannot discover auth requirements reliably.","action":"Serve /.well-known/oauth-protected-resource and point it at your authorization server metadata.","playbook":["Serve `/.well-known/oauth-protected-resource` from the same host as the MCP endpoint.","Point it at the authorization server metadata URL.","Confirm clients receive consistent auth hints before tool execution."],"maintainer_context":null},{"code":"protect_connector_refreshes","severity":"high","title":"Keep connector refreshes backward compatible","why":"Managed connector clients freeze tool snapshots, so removed tools, new required args, and breaking output changes can break published integrations after refresh.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"publish_oauth_authorization_server","severity":"high","title":"Publish OAuth authorization-server metadata","why":"Clients need authorization-server metadata to discover issuer, endpoints, and DCR support.","action":"Publish /.well-known/oauth-authorization-server from your issuer and include registration_endpoint when supported.","playbook":["Publish `/.well-known/oauth-authorization-server` from the issuer.","Add `registration_endpoint` if DCR is supported.","Verify issuer, authorization, token, and jwks metadata are all reachable."],"maintainer_context":null},{"code":"publish_server_card","severity":"high","title":"Publish a complete server card","why":"Missing or incomplete server-card metadata weakens discovery, documentation, and trust signals.","action":"Serve /.well-known/mcp/server-card.json and include tools, prompts/resources, homepage, and support links.","playbook":["Publish `/.well-known/mcp/server-card.json`.","Include homepage, repository, support, tools, prompts/resources, and auth metadata.","Revalidate the server after publishing the card."],"maintainer_context":null},{"code":"harden_interactive_flows","severity":"high","title":"Stop asking users to paste secrets directly","why":"Public MCP servers should prefer OAuth or browser-based auth guidance over in-band secret collection.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"update_protocol_version","severity":"medium","title":"Adopt a current MCP protocol revision","why":"Older protocol revisions reduce compatibility with newer clients and registry programs.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"improve_connector_publishability","severity":"medium","title":"Close connector-publishing gaps","why":"Connector catalogs care about protocol recency, session behavior, auth clarity, and tool-surface stability.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"tighten_step_up_auth","severity":"medium","title":"Document minimal scopes and return cleaner auth challenges","why":"Modern clients expect granular scopes and step-up auth signals such as WWW-Authenticate scope hints.","action":"Return granular scopes and WWW-Authenticate challenge hints instead of forcing overly broad auth upfront.","playbook":["Advertise the narrowest viable scopes in OAuth metadata.","Return `WWW-Authenticate` challenges with scope or insufficient-scope hints when additional consent is needed.","Revalidate with both public discovery and auth-required flows."],"maintainer_context":null},{"code":"publish_openid_configuration","severity":"medium","title":"Publish OpenID configuration","why":"OIDC metadata improves token validation and client compatibility.","action":"Expose /.well-known/openid-configuration with issuer, jwks_uri, and supported grants.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"stabilize_tool_surface","severity":"medium","title":"Reduce tool-surface churn","why":"Frequent add/remove or output-shape drift makes published connectors and cached tool snapshots brittle.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"fix_prompts_list","severity":"medium","title":"Repair prompts/list or stop advertising prompts","why":"Prompt metadata should either work live or be removed from the advertised capability set.","action":"Only advertise prompts if prompts/list works and prompt arguments are documented.","playbook":["Only advertise prompts that are actually accessible.","Add prompt descriptions and argument docs.","Run a live `prompts/list` check after any prompt changes."],"maintainer_context":null},{"code":"repair_session_resume","severity":"medium","title":"Support resumable HTTP sessions cleanly","why":"Modern MCP clients increasingly expect resumable session behavior on streamable HTTP transports.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"expand_utility_coverage","severity":"low","title":"Expose modern utility surfaces like completions, pagination, or tasks","why":"Utility coverage improves interoperability with larger clients and long-lived agent workflows.","action":"Expose completions, pagination, and task metadata where supported so larger clients can plan and resume work safely.","playbook":["Advertise `completions`, pagination cursors, and `tasks` only when they are actually supported.","Return `nextCursor` on large list operations when pagination is available.","Document task support and whether it requires step-up auth."],"maintainer_context":null},{"code":"expand_advanced_capabilities","severity":"low","title":"Publish newer MCP capability signals","why":"Roots, sampling, elicitation, structured outputs, and related metadata improve client understanding and ranking.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null}],"client_remediation_modes":[{"key":"openai_connectors","label":"ChatGPT custom connector","status":"partial","why_not_ready":[{"label":"OpenAI connectors expect OAuth for remote server auth.","state":"blocked"},{"label":"Dynamic client registration materially improves connector setup.","state":"blocked"},{"label":"Transport compliance should be in good shape.","state":"blocked"},{"label":"search fetch only is not yet satisfied","state":"blocked"},{"label":"oauth configured is not yet satisfied","state":"blocked"},{"label":"admin refresh required is not yet satisfied","state":"blocked"}],"maintainer_context":null},{"key":"claude_desktop","label":"Claude remote MCP","status":"ready","why_not_ready":[{"label":"Transport behavior should match Claude-compatible HTTP expectations.","state":"blocked"},{"label":"search fetch only is not yet satisfied","state":"blocked"},{"label":"oauth configured is not yet satisfied","state":"blocked"},{"label":"admin refresh required is not yet satisfied","state":"blocked"},{"label":"safe for company knowledge is not yet satisfied","state":"blocked"},{"label":"safe for messages api remote mcp is not yet satisfied","state":"blocked"}],"maintainer_context":null},{"key":"write_safe","label":"Write-safe publishing","status":"blocked","why_not_ready":[{"label":"Add a clearer auth boundary around risky write actions.","state":"blocked"},{"label":"Add confirmation or dry-run semantics for risky actions.","state":"blocked"},{"label":"Constrain or sandbox exec-capable tools before publishing broadly.","state":"blocked"}],"maintainer_context":null}],"client_profiles":[{"key":"openai_connectors","label":"OpenAI Connectors","score":66.7,"compatibility":"partial","missing_requirements":["OpenAI connectors expect OAuth for remote server auth.","Dynamic client registration materially improves connector setup.","Transport compliance should be in good shape."],"snippet":"Connector URL: https://afmr.ai/api/rpc\n# No OAuth metadata detected.\n# Server: ai.afmr/discovery"},{"key":"claude_desktop","label":"Claude Desktop","score":83.3,"compatibility":"compatible","missing_requirements":["Transport behavior should match Claude-compatible HTTP expectations."],"snippet":"{\n  \"mcpServers\": {\n    \"discovery\": {\n      \"command\": \"npx\",\n      \"args\": [\"mcp-remote\", \"https://afmr.ai/api/rpc\"]\n    }\n  }\n}"},{"key":"smithery","label":"Smithery","score":80.0,"compatibility":"compatible","missing_requirements":["Machine-readable failure semantics should be present."],"snippet":"smithery mcp add \"https://afmr.ai/api/rpc\""},{"key":"generic_streamable_http","label":"Generic Streamable HTTP","score":100.0,"compatibility":"compatible","missing_requirements":[],"snippet":"curl -sS https://afmr.ai/api/rpc -H 'content-type: application/json' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-03-26\",\"capabilities\":{},\"clientInfo\":{\"name\":\"mcp-verify\",\"version\":\"0.1.0\"}}}'"}],"client_readiness_verdicts":[{"key":"openai_connectors","label":"Client compatibility: ChatGPT","status":"partial","reason":"OpenAI connectors expect OAuth for remote server auth.; Dynamic client registration materially improves connector setup.; Transport compliance should be in good shape.","evidence":[{"check":"initialize","status":"ok","source":"live_validation","note":null,"http_status":200},{"check":"tools_list","status":"ok","source":"live_validation","note":null,"http_status":200},{"check":"transport_compliance_probe","status":"error","source":"live_validation","note":null,"http_status":null},{"check":"step_up_auth_probe","status":"missing","source":"live_validation","note":null,"http_status":null},{"check":"connector_replay_probe","status":"missing","source":"live_validation","note":"Frozen tool snapshots must survive refresh.","http_status":null},{"check":"request_association_probe","status":"missing","source":"live_validation","note":"Roots, sampling, and elicitation should stay request-scoped.","http_status":null}],"confidence":{"score":76.25,"label":"high"},"source_resolution":{"winner":"live_validation","supporting_sources":["live_validation","history","server_card"],"disagreements":[]}},{"key":"claude_desktop","label":"Client compatibility: Claude","status":"ready","reason":"Transport behavior should match Claude-compatible HTTP expectations.","evidence":[{"check":"initialize","status":"ok","source":"live_validation","note":null,"http_status":200},{"check":"tools_list","status":"ok","source":"live_validation","note":null,"http_status":200},{"check":"transport_compliance_probe","status":"error","source":"live_validation","note":null,"http_status":null}],"confidence":{"score":76.25,"label":"high"},"source_resolution":{"winner":"live_validation","supporting_sources":["live_validation","history","server_card"],"disagreements":[]}},{"key":"unsafe_for_write_actions","label":"Write-action publishing","status":"yes","reason":"Blocked until safeguards and confirmation semantics are verified for write, exec, or destructive tools.","evidence":[{"check":"action_safety_probe","status":"error","source":"live_validation","note":null,"http_status":null}],"confidence":{"score":76.25,"label":"high"},"source_resolution":{"winner":"live_validation","supporting_sources":["live_validation","history"],"disagreements":[]}},{"key":"snapshot_churn_risk","label":"Snapshot churn risk","status":"low","reason":"No material tool-surface churn detected in the latest comparison.","evidence":[{"check":"tool_snapshot_probe","status":"missing","source":"live_validation","note":null,"http_status":null},{"check":"connector_replay_probe","status":"missing","source":"live_validation","note":null,"http_status":null}],"confidence":{"score":76.25,"label":"high"},"source_resolution":{"winner":"history","supporting_sources":["history","live_validation"],"disagreements":[]}}],"publishability_policy_profiles":[{"key":"chatgpt_custom_connector","label":"ChatGPT custom connector compatibility","status":"caution","gates":{"search_fetch_only":false,"write_actions_present":true,"oauth_configured":false,"admin_refresh_required":false,"safe_for_company_knowledge":false,"safe_for_messages_api_remote_mcp":false},"reason":"OpenAI connectors expect OAuth for remote server auth.; Dynamic client registration materially improves connector setup.; Transport compliance should be in good shape."},{"key":"claude_remote_mcp","label":"Claude remote MCP compatibility","status":"ready","gates":{"search_fetch_only":false,"write_actions_present":true,"oauth_configured":false,"admin_refresh_required":false,"safe_for_company_knowledge":false,"safe_for_messages_api_remote_mcp":false},"reason":"Transport behavior should match Claude-compatible HTTP expectations."}],"compatibility_fixtures":[{"key":"chatgpt_custom_connector","label":"ChatGPT custom connector fixture","status":"degraded","assumptions":[{"name":"remote_http_endpoint","status":"passes"},{"name":"oauth_discovery","status":"degraded"},{"name":"frozen_tool_snapshot_refresh","status":"passes"},{"name":"request_association","status":"passes"}],"reason":"OpenAI connectors expect OAuth for remote server auth.; Dynamic client registration materially improves connector setup.; Transport compliance should be in good shape."},{"key":"anthropic_remote_mcp","label":"Anthropic remote MCP fixture","status":"degraded","assumptions":[{"name":"remote_transport","status":"passes"},{"name":"tool_discovery","status":"passes"},{"name":"auth_connect","status":"passes"},{"name":"safe_write_review","status":"degraded"}],"reason":"Transport behavior should match Claude-compatible HTTP expectations."}],"install_snippets":{"openai_connectors":"Connector URL: https://afmr.ai/api/rpc\n# No OAuth metadata detected.\n# Server: ai.afmr/discovery","claude_desktop":"{\n  \"mcpServers\": {\n    \"discovery\": {\n      \"command\": \"npx\",\n      \"args\": [\"mcp-remote\", \"https://afmr.ai/api/rpc\"]\n    }\n  }\n}","smithery":"smithery mcp add \"https://afmr.ai/api/rpc\"","generic_http":"curl -sS https://afmr.ai/api/rpc -H 'content-type: application/json' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-03-26\",\"capabilities\":{},\"clientInfo\":{\"name\":\"mcp-verify\",\"version\":\"0.1.0\"}}}'"},"aliases":[{"identifier":"ai.afmr/discovery","registry_source":"official_registry","remote_url":"https://afmr.ai/api/rpc","canonical":true,"score":71.15}],"raw_evidence":{"server_identifier":"ai.afmr/discovery","remote_url":"https://afmr.ai/api/rpc","server_card_payload":null,"checks":{"server_card":{"status":"error","latency_ms":302.05,"details":{"url":"https://afmr.ai/.well-known/mcp/server-card.json","error":"Client error '404 Not Found' for url 'https://afmr.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"}},"oauth_protected_resource":{"status":"error","latency_ms":204.0,"details":{"url":"https://afmr.ai/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://afmr.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"}},"oauth_authorization_server":{"status":"missing","latency_ms":null,"details":{"reason":"no_authorization_server"}},"openid_configuration":{"status":"missing","latency_ms":null,"details":{"reason":"no_authorization_server"}},"initialize":{"status":"ok","latency_ms":97.85,"details":{"url":"https://afmr.ai/api/rpc","payload":{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-03-26","capabilities":{"resources":{"listChanged":false},"tools":{"listChanged":false}},"serverInfo":{"name":"ai.afmr/discovery","title":"AFMR Discovery","version":"1.0.0","websiteUrl":"https://afmr.ai/"},"instructions":"Use this read-only server to discover AFMR 1.0 failure modes, reputation-attestation contracts, and configuration-scoped Lift Evidence artifacts. AFMR records are scoped to named evidence, configuration, governance process, and lifecycle state. They are not unqualified universal safety claims."}},"http_status":200,"headers":{"content-type":"application/json","mcp-protocol-version":"2025-11-25"}}},"protocol_version_probe":{"status":"warning","latency_ms":null,"details":{"claimed_version":"2025-03-26","validator_protocol_version":"2025-03-26","latest_known_version":"2025-11-25","releases_behind":2,"lag_days":244}},"tools_list":{"status":"ok","latency_ms":47.67,"details":{"url":"https://afmr.ai/api/rpc","payload":{"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"discover_afmr","title":"Discover AFMR resources","description":"Return canonical AFMR specifications, registries, schemas, endpoints, and scope boundaries.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"lookup_failure_mode","title":"Look up AFMR failure modes","description":"Find exact AFMR 1.0 failure-mode records by permanent ID or bounded text query.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^AFMR-F[0-9]{3}$","description":"Exact permanent family identifier, for example AFMR-F010."},"query":{"type":"string","minLength":2,"maxLength":100,"description":"Text matched against ID, name, definition, and class."},"limit":{"type":"integer","minimum":1,"maximum":10,"default":5}},"anyOf":[{"required":["id"]},{"required":["query"]}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_reputation_attestation_contract","title":"Get the reputation-attestation contract","description":"Return the portable attestation, trust-profile, verifier-result, endpoint-registry, and lifecycle contracts.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_lift_evidence_contract","title":"Get the Lift Evidence public-card contract","description":"Return the stable configuration-scoped public-card schema and empty public index; no results are asserted.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}]}},"http_status":200,"headers":{"content-type":"application/json","mcp-protocol-version":"2025-11-25"}}},"prompts_list":{"status":"missing","latency_ms":524.31,"details":{"url":"https://afmr.ai/api/rpc","payload":{"jsonrpc":"2.0","id":3,"error":{"code":-32601,"message":"Method not found"}},"http_status":200,"headers":{"content-type":"application/json","mcp-protocol-version":"2025-11-25"},"reason":"not_supported"}},"prompt_get":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"resources_list":{"status":"ok","latency_ms":565.43,"details":{"url":"https://afmr.ai/api/rpc","payload":{"jsonrpc":"2.0","id":5,"result":{"resources":[{"uri":"https://wulfkaal.github.io/afmr/index.json","name":"Canonical AFMR failure-mode registry","description":"AFMR 1.0 machine index: 32 permanent failure-mode families in eight classes.","mimeType":"application/json"},{"uri":"https://wulfkaal.github.io/afmr/spec-1.0.html","name":"AFMR 1.0 specification","description":"Normative AFMR 1.0 specification.","mimeType":"text/html"},{"uri":"https://afmr.ai/.well-known/afmr.json","name":"AFMR discovery document","description":"Authoritative discovery links for AFMR.ai.","mimeType":"application/json"},{"uri":"https://afmr.ai/standards/reputation-attestation/0.1/schema.json","name":"Reputation attestation schema","description":"Working Draft 0.1 schema for a signed, scoped, lifecycle-aware AFMR reputation attestation.","mimeType":"application/schema+json"},{"uri":"https://afmr.ai/standards/reputation-attestation/0.1/verifier.json","name":"Reputation attestation verifier requirements","description":"Deterministic validation, proof, scope, evidence, and lifecycle requirements.","mimeType":"application/json"},{"uri":"https://afmr.ai/registries/endpoints/v0.1/index.json","name":"Conforming governance-endpoint registry","description":"Intentionally empty pre-publication registry; no endpoint conformance is currently claimed.","mimeType":"application/json"},{"uri":"https://afmr.ai/lift-evidence/index.json","name":"Lift evidence public-card index","description":"Configuration-only empty index. No measured lift results or safety claims are published.","mimeType":"application/json"},{"uri":"https://wulfkaal.github.io/afmr/schemas/lift-comparison-public-card-v1.schema.json","name":"Lift comparison public-card schema","description":"Canonical stable redacted public-card contract for configuration-scoped cohort comparisons.","mimeType":"application/schema+json"}]}},"http_status":200,"headers":{"content-type":"application/json","mcp-protocol-version":"2025-11-25"}}},"resource_read":{"status":"ok","latency_ms":116.77,"details":{"url":"https://afmr.ai/api/rpc","payload":{"jsonrpc":"2.0","id":6,"result":{"contents":[{"uri":"https://wulfkaal.github.io/afmr/index.json","name":"Canonical AFMR failure-mode registry","mimeType":"application/json; charset=utf-8","text":"{\n  \"@context\": \"https://wulfkaal.github.io/afmr/context.jsonld\",\n  \"@type\": \"DefinedTermSet\",\n  \"name\": \"Agent Failure Mode Registry\",\n  \"abbreviation\": \"AFMR\",\n  \"description\": \"A citable registry of the ways autonomous agent systems fail as designed mechanisms, and the conditions under which each failure occurs. Thirty-two families in eight classes, each with builder-checkable trigger conditions, grounding claims bound to verbatim quotes and document hashes, and where one exists, the pre-2020 institutional antecedent documenting the same mechanism in human institutions.\",\n  \"version\": \"1.0\",\n  \"status\": \"Published\",\n  \"date\": \"2026-07-30\",\n  \"editor\": {\n    \"name\": \"Wulf A. Kaal\",\n    \"orcid\": \"0009-0008-7840-1847\",\n    \"affiliation\": \"University of St. Thomas\",\n    \"email\": \"wulf@wulfkaal.com\"\n  },\n  \"specification_url\": \"https://wulfkaal.github.io/afmr/spec-1.0.html\",\n  \"canonical_url\": \"https://wulfkaal.github.io/afmr/\",\n  \"schema_url\": \"https://wulfkaal.github.io/afmr/schema.json\",\n  \"license\": \"CC-BY-4.0\",\n  \"license_url\": \"https://creativecommons.org/licenses/by/4.0/\",\n  \"citation\": \"W. A. Kaal, ed., Agent Failure Mode Registry (AFMR) version 1.0, 2026-07-30. https://wulfkaal.github.io/afmr/\",\n  \"identifier_policy\": {\n    \"family_pattern\": \"AFMR-F[0-9]{3}\",\n    \"mode_pattern\": \"AFMR-M[0-9]{4}\",\n    \"cite_as\": \"AFMR-F001 (AFMR 1.0)\",\n    \"stability\": \"Identifiers are permanent. A family is never renumbered and never reused. A family withdrawn from use is marked deprecated and retained.\"\n  },\n  \"classes\": [\n    {\n      \"key\": \"A\",\n      \"name\": \"Identity and Standing\",\n      \"families\": [\n        \"AFMR-F001\",\n        \"AFMR-F002\",\n        \"AFMR-F003\",\n        \"AFMR-F004\"\n      ]\n    },\n    {\n      \"key\": \"B\",\n      \"name\": \"Stake and Incentive\",\n      \"families\": [\n        \"AFMR-F005\",\n        \"AFMR-F006\",\n        \"AFMR-F007\",\n        \"AFMR-F008\"\n      ]\n    },\n    {\n      \"key\": \"C\",\n      \"name\": \"Objective and Specification\",\n      \"families\": [\n        \"AFMR-F009\",\n        \"AFMR-F010\",\n        \"AFMR-F011\",\n        \"AFMR-F012\"\n      ]\n    },\n    {\n      \"key\": \"D\",\n      \"name\": \"Oversight and Adjudication\",\n      \"families\": [\n        \"AFMR-F013\",\n        \"AFMR-F014\",\n        \"AFMR-F015\",\n        \"AFMR-F016\"\n      ]\n    },\n    {\n      \"key\": \"E\",\n      \"name\": \"Evaluation and Feedback\",\n      \"families\": [\n        \"AFMR-F017\",\n        \"AFMR-F018\",\n        \"AFMR-F019\",\n        \"AFMR-F020\"\n      ]\n    },\n    {\n      \"key\": \"F\",\n      \"name\": \"Coordination and Collusion\",\n      \"families\": [\n        \"AFMR-F021\",\n        \"AFMR-F022\",\n        \"AFMR-F023\",\n        \"AFMR-F024\"\n      ]\n    },\n    {\n      \"key\": \"G\",\n      \"name\": \"Execution and Inputs\",\n      \"families\": [\n        \"AFMR-F025\",\n        \"AFMR-F026\",\n        \"AFMR-F027\",\n        \"AFMR-F028\"\n      ]\n    },\n    {\n      \"key\": \"H\",\n      \"name\": \"Structure and Drift\",\n      \"families\": [\n        \"AFMR-F029\",\n        \"AFMR-F030\",\n        \"AFMR-F031\",\n        \"AFMR-F032\"\n      ]\n    }\n  ],\n  \"counts\": {\n    \"families\": 32,\n    \"classes\": 8,\n    \"trigger_conditions\": 96,\n    \"grounding_claim_links\": 21,\n    \"families_with_institutional_antecedent\": 20,\n    \"corpus_failure_claims_available\": 2037,\n    \"corpus_failure_families_out_of_profile\": 27\n  },\n  \"grounding\": {\n    \"corpus\": \"Kaal Corpus, 124 works, 2004 to 2026\",\n    \"claim_layer\": \"https://wulfkaal.github.io/claims/index.json\",\n    \"failure_index\": \"https://wulfkaal.github.io/failures/index.json\",\n    \"works_metadata\": \"https://wulfkaal.github.io/papers.json\",\n    \"entity_layer\": \"https://wulfkaal.com/knowledge-graph/\",\n    \"verification\": \"sha256 over raw PDF bytes of the source work\"\n  },\n  \"conformance_levels\": [\n    \"referencing\",\n    \"assessing\",\n    \"attesting\"\n  ],\n  \"attestation_registry\": \"https://wulfkaal.github.io/colloquium/\",\n  \"change_process\": \"https://wulfkaal.github.io/afmr/spec-1.0.html#change-process\",\n  \"out_of_profile_corpus_families\": [\n    {\n      \"slug\": \"regulatory-lag\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/regulatory-lag.json\"\n    },\n    {\n      \"slug\": \"valuation-and-pricing-failure\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/valuation-and-pricing-failure.json\"\n    },\n    {\n      \"slug\": \"research-design-limitation\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/research-design-limitation.json\"\n    },\n    {\n      \"slug\": \"investor-protection-gap\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/investor-protection-gap.json\"\n    },\n    {\n      \"slug\": \"innovation-chilling\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/innovation-chilling.json\"\n    },\n    {\n      \"slug\": \"liquidity-and-market-structure-failure\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/liquidity-and-market-structure-failure.json\"\n    },\n    {\n      \"slug\": \"disclosure-ineffectiveness\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/disclosure-ineffectiveness.json\"\n    },\n    {\n      \"slug\": \"jurisdictional-conflict\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/jurisdictional-conflict.json\"\n    },\n    {\n      \"slug\": \"harmonization-and-standardization-failure\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/harmonization-and-standardization-failure.json\"\n    },\n    {\n      \"slug\": \"compliance-cost-and-barrier-to-entry\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/compliance-cost-and-barrier-to-entry.json\"\n    },\n    {\n      \"slug\": \"incumbent-resistance-to-adoption\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/incumbent-resistance-to-adoption.json\"\n    },\n    {\n      \"slug\": \"inequality-and-access-divide\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/inequality-and-access-divide.json\"\n    },\n    {\n      \"slug\": \"fraud-and-misconduct\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/fraud-and-misconduct.json\"\n    },\n    {\n      \"slug\": \"regulatory-arbitrage\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/regulatory-arbitrage.json\"\n    },\n    {\n      \"slug\": \"systemic-risk-transmission\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/systemic-risk-transmission.json\"\n    },\n    {\n      \"slug\": \"sample-and-selection-bias\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/sample-and-selection-bias.json\"\n    },\n    {\n      \"slug\": \"regulatory-capture-and-incumbent-advantage\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/regulatory-capture-and-incumbent-advantage.json\"\n    },\n    {\n      \"slug\": \"privacy-and-surveillance-risk\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/privacy-and-surveillance-risk.json\"\n    },\n    {\n      \"slug\": \"transition-and-migration-risk\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/transition-and-migration-risk.json\"\n    },\n    {\n      \"slug\": \"interoperability-and-fragmentation\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/interoperability-and-fragmentation.json\"\n    },\n    {\n      \"slug\": \"short-termism\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/short-termism.json\"\n    },\n    {\n      \"slug\": \"disclosure-cost-and-burden\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/disclosure-cost-and-burden.json\"\n    },\n    {\n      \"slug\": \"environmental-and-resource-cost\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/environmental-and-resource-cost.json\"\n    },\n    {\n      \"slug\": \"scalability-and-throughput-limit\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/scalability-and-throughput-limit.json\"\n    },\n    {\n      \"slug\": \"adoption-and-usability-barrier\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/adoption-and-usability-barrier.json\"\n    },\n    {\n      \"slug\": \"information-asymmetry\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/information-asymmetry.json\"\n    },\n    {\n      \"slug\": \"other\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/other.json\"\n    }\n  ],\n  \"families\": [\n    {\n      \"id\": \"AFMR-F001\",\n      \"class\": \"A\",\n      \"class_name\": \"Identity and Standing\",\n      \"name\": \"Sybil and Identity Multiplication\",\n      \"definition\": \"One party operates many apparent agents, defeating any assumption the design makes per identity.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Creating an additional agent identity costs less than the influence one identity carries\",\n        \"Any quorum, sampling, average, or one-vote-per-identity rule is in use\",\n        \"No proof of distinctness is required at registration\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:6192998-031\",\n          \"url\": \"https://wulfkaal.github.io/claims/6192998-031\"\n        }\n      ],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:3125822-049\",\n        \"url\": \"https://wulfkaal.github.io/claims/3125822-049\",\n        \"year\": \"2018\",\n        \"mechanism\": \"domain specific issuance per competence tag\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"sybil-and-identity-attack\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/sybil-and-identity-attack.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F001\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F002\",\n      \"class\": \"A\",\n      \"class_name\": \"Identity and Standing\",\n      \"name\": \"Identity Discontinuity and Whitewashing\",\n      \"definition\": \"An agent abandons a degraded identity and resumes with a clean one, so history stops constraining behavior.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Identity creation is costless or near costless\",\n        \"Standing is not portable to a new identity and history is not retained on exit\",\n        \"The population is pseudonymous or unattested\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:6192998-001\",\n          \"url\": \"https://wulfkaal.github.io/claims/6192998-001\"\n        }\n      ],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:1428387-025\",\n        \"url\": \"https://wulfkaal.github.io/claims/1428387-025\",\n        \"year\": \"2009\",\n        \"mechanism\": \"actors accept known problems to protect standing, which presumes standing persists\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"sybil-and-identity-attack\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/sybil-and-identity-attack.json\"\n        },\n        {\n          \"slug\": \"reputation-system-gaming\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/reputation-system-gaming.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F002\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F003\",\n      \"class\": \"A\",\n      \"class_name\": \"Identity and Standing\",\n      \"name\": \"Cold Start and Bootstrapping\",\n      \"definition\": \"The design requires accumulated standing, participants, or history that it provides no way to acquire.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Participation requires staking standing the new entrant cannot yet have earned\",\n        \"Initial population is zero or below the quorum the mechanism assumes\",\n        \"No provisional, sponsored, or probationary entry path exists\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:3125822-043\",\n        \"url\": \"https://wulfkaal.github.io/claims/3125822-043\",\n        \"year\": \"2018\",\n        \"mechanism\": \"entry problem where adjudication requires staking reputation one does not yet hold\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"cold-start-and-bootstrapping\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/cold-start-and-bootstrapping.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F003\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F004\",\n      \"class\": \"A\",\n      \"class_name\": \"Identity and Standing\",\n      \"name\": \"Standing Transferability Defect\",\n      \"definition\": \"Standing can be bought, sold, delegated, or pooled, so it stops measuring the performance it was meant to represent.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"The standing instrument is fungible or transferable between identities\",\n        \"Capital and earned standing are staked in the same act\",\n        \"Delegation moves standing rather than only voice\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:3981021-029\",\n          \"url\": \"https://wulfkaal.github.io/claims/3981021-029\"\n        },\n        {\n          \"id\": \"kaal:claim:3962614-030\",\n          \"url\": \"https://wulfkaal.github.io/claims/3962614-030\"\n        },\n        {\n          \"id\": \"kaal:claim:3799320-028\",\n          \"url\": \"https://wulfkaal.github.io/claims/3799320-028\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"token-transferability-defect\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/token-transferability-defect.json\"\n        },\n        {\n          \"slug\": \"staking-and-incentive-misalignment\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/staking-and-incentive-misalignment.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F004\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F005\",\n      \"class\": \"B\",\n      \"class_name\": \"Stake and Incentive\",\n      \"name\": \"Staking and Incentive Misalignment\",\n      \"definition\": \"What an agent risks diverges from what the system needs it to care about.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"The stake is smaller than the value at issue in a single decision\",\n        \"Loss from a bad outcome falls on a party other than the decider\",\n        \"Stake is denominated in something the agent can reacquire faster than it can be slashed\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:5887242-017\",\n          \"url\": \"https://wulfkaal.github.io/claims/5887242-017\"\n        }\n      ],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:1558614-013\",\n        \"url\": \"https://wulfkaal.github.io/claims/1558614-013\",\n        \"year\": \"2010\",\n        \"mechanism\": \"actors capture upside of excessive risk without bearing all of its cost\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"staking-and-incentive-misalignment\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/staking-and-incentive-misalignment.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F005\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F006\",\n      \"class\": \"B\",\n      \"class_name\": \"Stake and Incentive\",\n      \"name\": \"Missing Reward Channel\",\n      \"definition\": \"An action surface exists with no reward attached, so rational agents will not allocate compute to it.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"The behavior the system needs is not on any reward path\",\n        \"Agents are economically rational over standing or utility flows\",\n        \"Contribution and selection are rewarded asymmetrically\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:6655138-007\",\n          \"url\": \"https://wulfkaal.github.io/claims/6655138-007\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"staking-and-incentive-misalignment\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/staking-and-incentive-misalignment.json\"\n        },\n        {\n          \"slug\": \"governance-participation-collapse\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/governance-participation-collapse.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F006\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F007\",\n      \"class\": \"B\",\n      \"class_name\": \"Stake and Incentive\",\n      \"name\": \"Plutocratic Capture\",\n      \"definition\": \"Influence tracks holdings rather than earned standing, so the largest holders determine outcomes.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Weight is a function of balance, stake size, or compute rather than validated performance\",\n        \"Holdings are acquirable on an open market\",\n        \"No cap, curve, or quadratic dampening applies to concentration\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:5887242-017\",\n          \"url\": \"https://wulfkaal.github.io/claims/5887242-017\"\n        }\n      ],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2097160-019\",\n        \"url\": \"https://wulfkaal.github.io/claims/2097160-019\",\n        \"year\": \"2012\",\n        \"mechanism\": \"instrument design changing whose interests a decider serves\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"plutocratic-capture\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/plutocratic-capture.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F007\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F008\",\n      \"class\": \"B\",\n      \"class_name\": \"Stake and Incentive\",\n      \"name\": \"Moral Hazard and Backstop Expectation\",\n      \"definition\": \"An expectation of rescue, retry, or rollback changes risk taking before any rescue occurs.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Failed actions can be retried at no cost to standing\",\n        \"A human or protocol operator is expected to reverse bad outcomes\",\n        \"Slashing is discretionary rather than automatic\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:1558614-013\",\n        \"url\": \"https://wulfkaal.github.io/claims/1558614-013\",\n        \"year\": \"2010\",\n        \"mechanism\": \"limited liability as a driver of excessive risk taking\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"moral-hazard-and-bailout-expectation\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/moral-hazard-and-bailout-expectation.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F008\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F009\",\n      \"class\": \"C\",\n      \"class_name\": \"Objective and Specification\",\n      \"name\": \"Specification Incompleteness\",\n      \"definition\": \"The principal cannot enumerate every action and inaction in advance, so the agent's mandate is necessarily underspecified.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"The action space is open ended or tool mediated\",\n        \"The agent operates without per-action approval\",\n        \"The instruction set is stated as goals rather than as permitted operations\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:3373393-008\",\n        \"url\": \"https://wulfkaal.github.io/claims/3373393-008\",\n        \"year\": \"2019\",\n        \"mechanism\": \"bounded rationality and incomplete foresight make complete contracting over agent action impossible\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"definitional-ambiguity\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/definitional-ambiguity.json\"\n        },\n        {\n          \"slug\": \"agency-cost-and-managerial-opportunism\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/agency-cost-and-managerial-opportunism.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F009\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F010\",\n      \"class\": \"C\",\n      \"class_name\": \"Objective and Specification\",\n      \"name\": \"Reward Hacking and Proxy Capture\",\n      \"definition\": \"The agent raises the measured objective without producing the outcome the objective stood for.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"The objective is a learned or aggregated proxy rather than the outcome itself\",\n        \"The agent can observe and iterate against the measure\",\n        \"No held-out or adversarial check is applied to the measure\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:4855607-015\",\n          \"url\": \"https://wulfkaal.github.io/claims/4855607-015\"\n        }\n      ],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2486570-024\",\n        \"url\": \"https://wulfkaal.github.io/claims/2486570-024\",\n        \"year\": \"2014\",\n        \"mechanism\": \"reputational and market proxies standing in for direct incentives\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"reputation-system-gaming\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/reputation-system-gaming.json\"\n        },\n        {\n          \"slug\": \"measurement-and-metric-failure\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/measurement-and-metric-failure.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F010\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F011\",\n      \"class\": \"C\",\n      \"class_name\": \"Objective and Specification\",\n      \"name\": \"Metric Capture and Measurement Failure\",\n      \"definition\": \"The chosen metric ceases to track the property it stands for once it becomes the target.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Standing or reward is computed from a single scalar\",\n        \"The metric is disclosed to the parties it scores\",\n        \"No periodic revalidation of the metric against outcomes occurs\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2629451-031\",\n        \"url\": \"https://wulfkaal.github.io/claims/2629451-031\",\n        \"year\": \"2015\",\n        \"mechanism\": \"market pricing of governance change as a proxy for governance quality\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"measurement-and-metric-failure\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/measurement-and-metric-failure.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F011\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F012\",\n      \"class\": \"C\",\n      \"class_name\": \"Objective and Specification\",\n      \"name\": \"Definitional Ambiguity in Machine Applied Rules\",\n      \"definition\": \"A term carrying operational weight has no settled boundary, so automated application produces outcomes no party intended.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Rules are applied by code without a human interpretive layer\",\n        \"Terms are inherited from natural language instruments\",\n        \"No authority is named to settle meaning when application is contested\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:5886342-009\",\n          \"url\": \"https://wulfkaal.github.io/claims/5886342-009\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"definitional-ambiguity\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/definitional-ambiguity.json\"\n        },\n        {\n          \"slug\": \"smart-contract-rigidity\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/smart-contract-rigidity.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F012\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F013\",\n      \"class\": \"D\",\n      \"class_name\": \"Oversight and Adjudication\",\n      \"name\": \"Oversight Capacity Gap\",\n      \"definition\": \"Agent behavior exceeds the resources, expertise, or access of whoever is nominally supervising it.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Action volume exceeds what the supervisor can sample meaningfully\",\n        \"The supervisor lacks access to the agent's inputs or intermediate reasoning\",\n        \"Supervision is assigned but not resourced\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:5245185-025\",\n          \"url\": \"https://wulfkaal.github.io/claims/5245185-025\"\n        }\n      ],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:1806252-031\",\n        \"url\": \"https://wulfkaal.github.io/claims/1806252-031\",\n        \"year\": \"2011\",\n        \"mechanism\": \"monitoring capacity as the binding constraint on oversight\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"ai-oversight-and-alignment-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/ai-oversight-and-alignment-gap.json\"\n        },\n        {\n          \"slug\": \"supervisory-capacity-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/supervisory-capacity-gap.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F013\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F014\",\n      \"class\": \"D\",\n      \"class_name\": \"Oversight and Adjudication\",\n      \"name\": \"Oversight Latency\",\n      \"definition\": \"Review is slower than action, so by the time a judgment lands the state it judged is gone.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Agent action rate exceeds adjudication rate\",\n        \"Actions are not reversible after the review window\",\n        \"Review is batched or scheduled rather than gating\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:5245185-025\",\n          \"url\": \"https://wulfkaal.github.io/claims/5245185-025\"\n        },\n        {\n          \"id\": \"kaal:claim:4755632-023\",\n          \"url\": \"https://wulfkaal.github.io/claims/4755632-023\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"ai-oversight-and-alignment-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/ai-oversight-and-alignment-gap.json\"\n        },\n        {\n          \"slug\": \"enforcement-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/enforcement-gap.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F014\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F015\",\n      \"class\": \"D\",\n      \"class_name\": \"Oversight and Adjudication\",\n      \"name\": \"Alignment Tax and Exogenous Constraint Scaling\",\n      \"definition\": \"External control scales against capability, so oversight cost rises faster than the capability it constrains.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Alignment relies on constraint imposed from outside the agent's incentive structure\",\n        \"Agent capability is expected to increase\",\n        \"No endogenous stake grows with capability\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:6244278-016\",\n          \"url\": \"https://wulfkaal.github.io/claims/6244278-016\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"ai-oversight-and-alignment-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/ai-oversight-and-alignment-gap.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F015\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F016\",\n      \"class\": \"D\",\n      \"class_name\": \"Oversight and Adjudication\",\n      \"name\": \"Absent Human Backstop\",\n      \"definition\": \"No human authority can halt, reverse, or reinterpret automated execution, so cryptographic or procedural correctness substitutes for trust and fails to produce it.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"No named party can halt execution\",\n        \"No escalation path exists from automated outcome to human judgment\",\n        \"Human interpretation is not stated to prevail where the two diverge\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:3808873-042\",\n          \"url\": \"https://wulfkaal.github.io/claims/3808873-042\"\n        },\n        {\n          \"id\": \"kaal:claim:5886342-009\",\n          \"url\": \"https://wulfkaal.github.io/claims/5886342-009\"\n        }\n      ],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:3373393-038\",\n        \"url\": \"https://wulfkaal.github.io/claims/3373393-038\",\n        \"year\": \"2019\",\n        \"mechanism\": \"without a decentralized human backstop to code, cryptographic security does not create trust between principals and agents\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"legal-personality-and-liability-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/legal-personality-and-liability-gap.json\"\n        },\n        {\n          \"slug\": \"smart-contract-rigidity\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/smart-contract-rigidity.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F016\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F017\",\n      \"class\": \"E\",\n      \"class_name\": \"Evaluation and Feedback\",\n      \"name\": \"Feedback Degradation Above Evaluator Capability\",\n      \"definition\": \"Human or agent evaluation degrades precisely where the evaluated system is hardest to evaluate, including where it exceeds the evaluator.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Evaluators score outputs they cannot independently verify\",\n        \"The evaluated system is at or above evaluator capability in the domain\",\n        \"Evaluator agreement is used as the quality signal\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:4855607-018\",\n          \"url\": \"https://wulfkaal.github.io/claims/4855607-018\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"ai-oversight-and-alignment-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/ai-oversight-and-alignment-gap.json\"\n        },\n        {\n          \"slug\": \"measurement-and-metric-failure\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/measurement-and-metric-failure.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F017\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F018\",\n      \"class\": \"E\",\n      \"class_name\": \"Evaluation and Feedback\",\n      \"name\": \"Unstaked Adjudication\",\n      \"definition\": \"Whoever judges a contribution risks nothing on the judgment, so judgment is cheap and drifts.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Validators or reviewers stake nothing on their verdict\",\n        \"Verdicts are not contestable within a stated window\",\n        \"No standing consequence follows from a verdict later shown wrong\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:5245185-036\",\n          \"url\": \"https://wulfkaal.github.io/claims/5245185-036\"\n        }\n      ],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2486570-031\",\n        \"url\": \"https://wulfkaal.github.io/claims/2486570-031\",\n        \"year\": \"2014\",\n        \"mechanism\": \"consequence attaching to the adjudicating party as the source of care\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"reputation-system-gaming\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/reputation-system-gaming.json\"\n        },\n        {\n          \"slug\": \"board-and-oversight-failure\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/board-and-oversight-failure.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F018\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F019\",\n      \"class\": \"E\",\n      \"class_name\": \"Evaluation and Feedback\",\n      \"name\": \"Training and Annotation Bias Propagation\",\n      \"definition\": \"Bias in annotators or automated labeling propagates into the model and then into every decision the agent makes.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Labels are produced by a narrow annotator pool or by another model\",\n        \"No demographic or scenario stratification is checked\",\n        \"Label provenance is not recorded\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:5095633-019\",\n          \"url\": \"https://wulfkaal.github.io/claims/5095633-019\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"ai-model-and-training-failure\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/ai-model-and-training-failure.json\"\n        },\n        {\n          \"slug\": \"data-quality-and-comparability\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/data-quality-and-comparability.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F019\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F020\",\n      \"class\": \"E\",\n      \"class_name\": \"Evaluation and Feedback\",\n      \"name\": \"Human Judgment Displacement\",\n      \"definition\": \"Automation replaces judgment in a setting that required judgment, and the loss is not detected because the output still looks well formed.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Output is fluent and confident regardless of correctness\",\n        \"No sampled human review of accepted outputs occurs\",\n        \"The prior human process left no record to compare against\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2267560-025\",\n        \"url\": \"https://wulfkaal.github.io/claims/2267560-025\",\n        \"year\": \"2013\",\n        \"mechanism\": \"decision makers relying on presumptively optimal rules for want of decentralized information\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"human-judgment-displacement\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/human-judgment-displacement.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F020\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F021\",\n      \"class\": \"F\",\n      \"class_name\": \"Coordination and Collusion\",\n      \"name\": \"Mutual Audit Capture\",\n      \"definition\": \"Agents assigned to oversee one another converge on mutual approval, so peer monitoring devolves into self serving behavior.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Agents both audit and are audited by the same population\",\n        \"No anti collusion constraint or randomized assignment applies\",\n        \"Approval is cheaper for the auditor than refusal\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:5245185-010\",\n          \"url\": \"https://wulfkaal.github.io/claims/5245185-010\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"reputation-system-gaming\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/reputation-system-gaming.json\"\n        },\n        {\n          \"slug\": \"board-and-oversight-failure\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/board-and-oversight-failure.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F021\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F022\",\n      \"class\": \"F\",\n      \"class_name\": \"Coordination and Collusion\",\n      \"name\": \"Collusion Rings and Reciprocal Validation\",\n      \"definition\": \"A subset of agents validates one another to manufacture standing, and formal mechanism design alone does not detect it.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Validation is reciprocal or citation-like\",\n        \"One party can field several competing agents per task\",\n        \"No ring detection or downranking of reciprocal patterns is applied\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:6192998-031\",\n          \"url\": \"https://wulfkaal.github.io/claims/6192998-031\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"reputation-system-gaming\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/reputation-system-gaming.json\"\n        },\n        {\n          \"slug\": \"consensus-and-protocol-attack\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/consensus-and-protocol-attack.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F022\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F023\",\n      \"class\": \"F\",\n      \"class_name\": \"Coordination and Collusion\",\n      \"name\": \"Collective Action and Coordination Failure\",\n      \"definition\": \"Individually rational agent behavior produces a collectively worse outcome and no mechanism reconciles the two.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Payoff to defection exceeds payoff to cooperation in a single interaction\",\n        \"Interactions are not expected to repeat, or identity does not persist across them\",\n        \"No mechanism prices the externality\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2267560-027\",\n        \"url\": \"https://wulfkaal.github.io/claims/2267560-027\",\n        \"year\": \"2013\",\n        \"mechanism\": \"private parties acting on decentralized information without a reconciling mechanism\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"collective-action-and-coordination-failure\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/collective-action-and-coordination-failure.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F023\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F024\",\n      \"class\": \"F\",\n      \"class_name\": \"Coordination and Collusion\",\n      \"name\": \"Delegation Opportunism\",\n      \"definition\": \"An agent acting for a principal, or for another agent, captures private benefit at the principal's expense, and monitoring costs more than it recovers.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"The delegation chain is more than one link deep\",\n        \"The principal cannot observe intermediate actions\",\n        \"The agent's objective is not identical to the principal's\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:3373393-003\",\n        \"url\": \"https://wulfkaal.github.io/claims/3373393-003\",\n        \"year\": \"2019\",\n        \"mechanism\": \"agency conflicts from separation of ownership and control cannot be fully addressed because monitoring is costly\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"agency-cost-and-managerial-opportunism\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/agency-cost-and-managerial-opportunism.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F024\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F025\",\n      \"class\": \"G\",\n      \"class_name\": \"Execution and Inputs\",\n      \"name\": \"Oracle and Input Corruption\",\n      \"definition\": \"The mechanism executes correctly on an input that is wrong, stale, manipulated, or injected.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Any input crosses a trust boundary without attestation\",\n        \"A single source can determine an input value\",\n        \"No staleness bound or sanity range is enforced\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"oracle-and-input-corruption\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/oracle-and-input-corruption.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F025\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F026\",\n      \"class\": \"G\",\n      \"class_name\": \"Execution and Inputs\",\n      \"name\": \"Automated Execution Rigidity\",\n      \"definition\": \"Execution cannot accommodate circumstances the code did not anticipate, and cannot be amended in time to matter.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Execution is irreversible once triggered\",\n        \"Amendment requires a process slower than the harm\",\n        \"No circuit breaker or pause authority exists\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2267560-012\",\n        \"url\": \"https://wulfkaal.github.io/claims/2267560-012\",\n        \"year\": \"2013\",\n        \"mechanism\": \"rules are adaptable only where the process producing them integrates dynamic elements\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"smart-contract-rigidity\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/smart-contract-rigidity.json\"\n        },\n        {\n          \"slug\": \"rule-obsolescence-and-ossification\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/rule-obsolescence-and-ossification.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F026\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F027\",\n      \"class\": \"G\",\n      \"class_name\": \"Execution and Inputs\",\n      \"name\": \"Code Defect Exploitation\",\n      \"definition\": \"A defect in deployed code is exercised by an adversary before it is found by its authors.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Code holds value or authority and is publicly reachable\",\n        \"No independent audit or adversarial review preceded deployment\",\n        \"Upgrade path is absent or itself unguarded\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"smart-contract-bug-and-exploit\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/smart-contract-bug-and-exploit.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F027\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F028\",\n      \"class\": \"G\",\n      \"class_name\": \"Execution and Inputs\",\n      \"name\": \"Custody and Key Compromise\",\n      \"definition\": \"Control of an agent's identity, assets, or authority is lost or captured through key or custody failure.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"An agent holds signing authority without threshold or rotation\",\n        \"Key material is reachable by the same process that uses it\",\n        \"No recovery path distinguishes loss from theft\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"custody-and-key-loss\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/custody-and-key-loss.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F028\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F029\",\n      \"class\": \"H\",\n      \"class_name\": \"Structure and Drift\",\n      \"name\": \"Recentralization Drift\",\n      \"definition\": \"A system designed to distribute authority concentrates it again through tooling, delegation, capital, or expertise asymmetry.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"A small number of operators run most infrastructure or most agents\",\n        \"Delegation is permitted and defaults are sticky\",\n        \"Participation cost rises with system maturity\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2273857-062\",\n        \"url\": \"https://wulfkaal.github.io/claims/2273857-062\",\n        \"year\": \"2013\",\n        \"mechanism\": \"concentration of institution specific information in few hands\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"recentralization-drift\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/recentralization-drift.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F029\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F030\",\n      \"class\": \"H\",\n      \"class_name\": \"Structure and Drift\",\n      \"name\": \"Rule Obsolescence and Ossification\",\n      \"definition\": \"A rule persists after the conditions that justified it have changed, and resists revision.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Amendment requires a supermajority of a population that has stopped participating\",\n        \"No scheduled review of parameters against outcomes exists\",\n        \"Parameters were set once at launch\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2267560-012\",\n        \"url\": \"https://wulfkaal.github.io/claims/2267560-012\",\n        \"year\": \"2013\",\n        \"mechanism\": \"adaptability requires dynamic elements in the rulemaking process itself\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"rule-obsolescence-and-ossification\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/rule-obsolescence-and-ossification.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F030\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F031\",\n      \"class\": \"H\",\n      \"class_name\": \"Structure and Drift\",\n      \"name\": \"Participation Collapse\",\n      \"definition\": \"Eligible participants stop participating, leaving decisions to a small, self selected, or unrepresentative remainder.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Participation is unrewarded or costs more than it returns\",\n        \"Quorum is defined against eligible rather than active population\",\n        \"Decision volume exceeds attention available\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2715083-020\",\n        \"url\": \"https://wulfkaal.github.io/claims/2715083-020\",\n        \"year\": \"2016\",\n        \"mechanism\": \"board independence contingent on who actually exercises the function\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"governance-participation-collapse\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/governance-participation-collapse.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F031\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F032\",\n      \"class\": \"H\",\n      \"class_name\": \"Structure and Drift\",\n      \"name\": \"Enforcement and Liability Gap\",\n      \"definition\": \"A rule exists and cannot be enforced, or no recognized person bears the obligation, so liability has nowhere to attach.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"No legal person is identifiable behind the agent\",\n        \"The obligated party is outside the reach of any enforcing authority\",\n        \"Sanction depends on a party that can exit at will\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:3373393-038\",\n        \"url\": \"https://wulfkaal.github.io/claims/3373393-038\",\n        \"year\": \"2019\",\n        \"mechanism\": \"procedural correctness failing to substitute for an accountable party\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"enforcement-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/enforcement-gap.json\"\n        },\n        {\n          \"slug\": \"legal-personality-and-liability-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/legal-personality-and-liability-gap.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F032\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    }\n  ]\n}\n"}]}},"http_status":200,"headers":{"content-type":"application/json","mcp-protocol-version":"2025-11-25"},"resource_uri":"https://wulfkaal.github.io/afmr/index.json"}},"probe_noise_resilience":{"status":"ok","latency_ms":45.41,"details":{"url":"https://afmr.ai/robots.txt","http_status":200,"headers":{"content-type":"text/plain"}}},"determinism_probe":{"status":"ok","latency_ms":48.05,"details":{"attempts":2,"successful":2,"matches":2,"stable_ratio":1.0,"baseline_signature":"f70ec5351a008209d88e3f0be501b82e5cdfedb6b528997503e0c15ec1e0f474","errors":[]}},"session_resume_probe":{"status":"warning","latency_ms":null,"details":{"reason":"no_session_id","transport":"streamable-http","resume_expected":true,"protocol_version":"2025-03-26"}},"step_up_auth_probe":{"status":"missing","latency_ms":null,"details":{"oauth_present":false,"auth_required_checks":[],"supported_scopes":[],"scope_specificity_ratio":0.0,"broad_scopes":[],"challenge_headers":[],"step_up_signals":[],"minimal_scope_documented":false}},"transport_compliance_probe":{"status":"error","latency_ms":53.12,"details":{"transport":"streamable-http","session_id_present":false,"protocol_header_present":true,"last_event_id_visible":false,"requested_protocol_version":"2025-03-26","bad_protocol_status_code":200,"bad_protocol_payload":{"jsonrpc":"2.0","id":410,"result":{"tools":[{"name":"discover_afmr","title":"Discover AFMR resources","description":"Return canonical AFMR specifications, registries, schemas, endpoints, and scope boundaries.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"lookup_failure_mode","title":"Look up AFMR failure modes","description":"Find exact AFMR 1.0 failure-mode records by permanent ID or bounded text query.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^AFMR-F[0-9]{3}$","description":"Exact permanent family identifier, for example AFMR-F010."},"query":{"type":"string","minLength":2,"maxLength":100,"description":"Text matched against ID, name, definition, and class."},"limit":{"type":"integer","minimum":1,"maximum":10,"default":5}},"anyOf":[{"required":["id"]},{"required":["query"]}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_reputation_attestation_contract","title":"Get the reputation-attestation contract","description":"Return the portable attestation, trust-profile, verifier-result, endpoint-registry, and lifecycle contracts.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_lift_evidence_contract","title":"Get the Lift Evidence public-card contract","description":"Return the stable configuration-scoped public-card schema and empty public index; no results are asserted.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}]}},"bad_protocol_headers":{"content-type":"application/json","mcp-protocol-version":"2025-11-25"},"bad_protocol_error":null,"delete_status_code":null,"delete_error":null,"expired_session_status_code":null,"expired_session_error":null,"issues":["missing_session_id","bad_protocol_not_rejected"]}},"utility_coverage_probe":{"status":"missing","latency_ms":56.05,"details":{"completions":{"advertised":false,"sample_target":{"type":"resource","uri":"https://wulfkaal.github.io/afmr/index.json"},"live_probe":"not_executed"},"pagination":{"supported":false,"next_cursor_methods":[],"metadata_signal":false},"tasks":{"advertised":false,"probe_status":"missing","http_status":200},"initialize_capability_keys":["resources","tools"]}},"advanced_capabilities_probe":{"status":"warning","latency_ms":null,"details":{"capabilities":{"prompts":false,"resources":true,"completions":false,"roots":false,"sampling":false,"elicitation":false,"structured_outputs":false,"resource_links":true},"enabled_count":2,"enabled":["resource_links","resources"],"initialize_capability_keys":["resources","tools"]}},"tool_snapshot_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_historical_snapshot","current_tool_count":4}},"connector_replay_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_historical_snapshot"}},"request_association_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_request_association_capabilities_advertised"}},"interactive_flow_probe":{"status":"missing","latency_ms":null,"details":{"risk_hits":[],"safe_hits":[],"oauth_supported":false,"prompt_available":false}},"action_safety_probe":{"status":"error","latency_ms":null,"details":{"summary":{"tool_count":4,"high_risk_tools":1,"destructive_tools":0,"exec_tools":1,"egress_tools":0,"secret_tools":0,"bulk_access_tools":1,"risk_distribution":{"low":2,"medium":1,"high":1,"critical":0},"capability_distribution":{"other":1,"read":3,"exec":1,"export":1,"write":1,"filesystem":1}},"auth_present":false,"safeguard_count":1,"confirmation_signals":[]}},"official_registry_probe":{"status":"ok","latency_ms":null,"details":{"registry_source":"official_registry","registry_identifier":"ai.afmr/discovery","direct_match":true,"official_peer_count":1}},"provenance_divergence_probe":{"status":"ok","latency_ms":null,"details":{"direct_official_match":true,"registry_title":null,"server_card_title":null,"registry_version":null,"server_card_version":null,"registry_homepage":null,"server_card_homepage":null,"registry_repository":null,"server_card_repository":null,"drift_fields":[],"metadata_document_count":2}},"connector_publishability_probe":{"status":"warning","latency_ms":null,"details":{"transport":"streamable-http","tool_count":4,"high_risk_tools":1,"blockers":["transport_compliance","action_safety","server_card"],"criteria":{"remote_transport":true,"initialize":true,"tools_list":true,"protocol_version":true,"session_resume":true,"step_up_auth":true,"transport_compliance":false,"connector_replay":true,"request_association":true,"action_safety":false,"server_card":false,"tool_surface":true,"auth_flow":true}}}},"failures":{"server_card":{"url":"https://afmr.ai/.well-known/mcp/server-card.json","error":"Client error '404 Not Found' for url 'https://afmr.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"},"oauth_protected_resource":{"url":"https://afmr.ai/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://afmr.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"},"oauth_authorization_server":{"reason":"no_authorization_server"},"openid_configuration":{"reason":"no_authorization_server"},"transport_compliance_probe":{"transport":"streamable-http","session_id_present":false,"protocol_header_present":true,"last_event_id_visible":false,"requested_protocol_version":"2025-03-26","bad_protocol_status_code":200,"bad_protocol_payload":{"jsonrpc":"2.0","id":410,"result":{"tools":[{"name":"discover_afmr","title":"Discover AFMR resources","description":"Return canonical AFMR specifications, registries, schemas, endpoints, and scope boundaries.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"lookup_failure_mode","title":"Look up AFMR failure modes","description":"Find exact AFMR 1.0 failure-mode records by permanent ID or bounded text query.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^AFMR-F[0-9]{3}$","description":"Exact permanent family identifier, for example AFMR-F010."},"query":{"type":"string","minLength":2,"maxLength":100,"description":"Text matched against ID, name, definition, and class."},"limit":{"type":"integer","minimum":1,"maximum":10,"default":5}},"anyOf":[{"required":["id"]},{"required":["query"]}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_reputation_attestation_contract","title":"Get the reputation-attestation contract","description":"Return the portable attestation, trust-profile, verifier-result, endpoint-registry, and lifecycle contracts.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_lift_evidence_contract","title":"Get the Lift Evidence public-card contract","description":"Return the stable configuration-scoped public-card schema and empty public index; no results are asserted.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}]}},"bad_protocol_headers":{"content-type":"application/json","mcp-protocol-version":"2025-11-25"},"bad_protocol_error":null,"delete_status_code":null,"delete_error":null,"expired_session_status_code":null,"expired_session_error":null,"issues":["missing_session_id","bad_protocol_not_rejected"]}}},"active_alerts":[],"maintainer_analytics":{"validation_run_count":1,"average_latency_ms":2113.1,"healthy_run_ratio_recent":1.0,"registry_presence_count":1,"active_alert_count":0,"watcher_count":0,"verified_claim":false,"taxonomy_tags":["development","database","search","files"],"score_trend":[71.15],"remediation_count":17,"high_risk_tool_count":1,"destructive_tool_count":0,"exec_tool_count":1},"public_server_reputation":{"validation_success_ratio_7d":1.0,"validation_success_ratio_30d":1.0,"mean_time_to_recover_hours":null,"breaking_diffs_30d":0,"registry_drift_frequency_30d":0,"snapshot_change_frequency_30d":0},"maintainer_response_quality":{"score":16.67,"signals":{"verified_maintainer_claim":false,"support_contact_present":false,"changelog_present":false,"incident_notes_present":false,"tool_change_documented":true,"annotation_history_present":false},"annotation_count":0,"latest_annotation_at":null},"maintainer_annotations":[],"maintainer_rebuttals":[],"security_posture_summary":{"tool_count":4,"high_risk_tools":1,"destructive_tools":0,"exec_tools":1,"egress_tools":0,"secret_tools":0,"bulk_access_tools":1,"risk_distribution":{"low":2,"medium":1,"high":1,"critical":0},"capability_distribution":{"other":1,"read":3,"exec":1,"export":1,"write":1,"filesystem":1}},"tool_security_inventory":[{"name":"discover_afmr","description":"Return canonical AFMR specifications, registries, schemas, endpoints, and scope boundaries.","capabilities":["other"],"risk_flags":[],"risk_level":"low","has_safeguards":false,"capability_taxonomy":["other","development","search"]},{"name":"lookup_failure_mode","description":"Find exact AFMR 1.0 failure-mode records by permanent ID or bounded text query.","capabilities":["read","exec","export"],"risk_flags":["command_execution","bulk_data_access"],"risk_level":"high","has_safeguards":false,"capability_taxonomy":["read","exec","export","database"]},{"name":"get_reputation_attestation_contract","description":"Return the portable attestation, trust-profile, verifier-result, endpoint-registry, and lifecycle contracts.","capabilities":["read","write","filesystem"],"risk_flags":["filesystem_mutation"],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","filesystem","files"]},{"name":"get_lift_evidence_contract","description":"Return the stable configuration-scoped public-card schema and empty public index; no results are asserted.","capabilities":["read"],"risk_flags":[],"risk_level":"low","has_safeguards":true,"capability_taxonomy":["read","search"]}],"transport_compliance":{"status":"error","transport":"streamable-http","session_id_present":false,"protocol_header_present":true,"last_event_id_visible":false,"bad_protocol_status_code":200,"delete_status_code":null,"expired_session_status_code":null,"issues":["missing_session_id","bad_protocol_not_rejected"]},"utility_coverage":{"status":"missing","completions":{"advertised":false,"sample_target":{"type":"resource","uri":"https://wulfkaal.github.io/afmr/index.json"},"live_probe":"not_executed"},"pagination":{"supported":false,"next_cursor_methods":[],"metadata_signal":false},"tasks":{"advertised":false,"probe_status":"missing","http_status":200},"initialize_capability_keys":["resources","tools"]},"write_action_governance":{"status":"error","safe_to_publish":false,"auth_boundary":"public_or_unclear","blast_radius":"high","summary":{"tool_count":4,"high_risk_tools":1,"destructive_tools":0,"exec_tools":1,"egress_tools":0,"secret_tools":0,"bulk_access_tools":1,"risk_distribution":{"low":2,"medium":1,"high":1,"critical":0},"capability_distribution":{"other":1,"read":3,"exec":1,"export":1,"write":1,"filesystem":1}},"high_risk_tools":[{"name":"lookup_failure_mode","risk_level":"high","risk_flags":["command_execution","bulk_data_access"],"has_safeguards":false}],"confirmation_signals":[],"safeguard_count":1},"provenance_divergence":{"status":"ok","direct_official_match":true,"drift_fields":[],"registry_title":null,"server_card_title":null,"registry_version":null,"server_card_version":null,"registry_homepage":null,"server_card_homepage":null},"alias_consolidation":{"canonical_identifier":"ai.afmr/discovery","duplicate_count":0,"registry_sources":["official_registry"],"registry_identifiers":["ai.afmr/discovery"],"remote_urls":["https://afmr.ai/api/rpc"],"homepages":["https://afmr.ai/"],"source_disagreements":[],"source_disagreement_details":{}},"alert_routing":{"active_watch_count":0,"route_counts":{"generic_webhook":0,"slack":0,"teams":0,"email":0},"destinations":[]},"authenticated_validation":{"latest_profile":"remote_mcp","authenticated_session_used":false,"public_score_remains_anonymous":true,"preview_endpoint":"/v1/verify","ci_preview_endpoint":"/v1/ci/preview"},"hosted_runtime":{"schema_version":"verify.hosted_runtime.v1","server":"ai.afmr/discovery","tier":"community","readiness":{"allowed_to_activate":true,"blockers":[],"score":71.15,"min_score":70.0,"freshness_hours":1.1388920011111112,"max_freshness_hours":168.0,"latest_validation_run_id":"54472c3e-9f4a-4501-8b94-5c38b4b69a9c"},"active_deployment_id":null,"active_endpoint_url":null,"deployments":[]},"action_controls_diff":{"snapshot_changed":false,"new_actions":[],"changed_actions":[],"disabled_by_default_candidates":[],"manual_review_candidates":[]},"benchmark_tasks":[{"key":"discover_tools","label":"Discover tools","status":"passes","evidence":[{"check":"initialize","status":"ok","source":"live_validation","note":null,"http_status":200},{"check":"tools_list","status":"ok","source":"live_validation","note":null,"http_status":200}]},{"key":"read_only_fetch_flow","label":"Read-only fetch flow","status":"passes","evidence":[{"check":"resource_read","status":"ok","source":"live_validation","note":"resources/read is a strong read-path signal","http_status":200},{"check":"read_only_tool_surface","status":"ok","source":"derived_tool_inventory","note":"Low-risk read tools were inferred from the current tool surface.","http_status":null}]},{"key":"oauth_required_connect","label":"OAuth-required connect","status":"degraded","evidence":[{"check":"oauth_protected_resource","status":"error","source":"live_validation","note":null,"http_status":null},{"check":"step_up_auth_probe","status":"missing","source":"live_validation","note":null,"http_status":null}]},{"key":"safe_write_flow_with_confirmation","label":"Safe write flow with confirmation","status":"likely_to_fail","evidence":[{"check":"action_safety_probe","status":"error","source":"live_validation","note":null,"http_status":null}]}],"latest_capability_counts":{"tool_count":4,"prompt_count":0,"resource_count":8},"point_loss_breakdown":[{"key":"recovery_semantics_score","label":"Recovery Semantics","score":0.0,"max_score":4.0,"gap":4.0},{"key":"error_contract_score","label":"Error Contract","score":1.7,"max_score":4.0,"gap":2.3},{"key":"trust_confidence_score","label":"Trust Confidence","score":1.75,"max_score":4.0,"gap":2.25},{"key":"utility_coverage_score","label":"Utility Coverage","score":2.0,"max_score":4.0,"gap":2.0},{"key":"spec_recency_score","label":"Spec Recency","score":2.0,"max_score":4.0,"gap":2.0},{"key":"safety_transparency_score","label":"Safety Transparency","score":2.0,"max_score":4.0,"gap":2.0},{"key":"result_shape_stability_score","label":"Result Shape Stability","score":2.0,"max_score":4.0,"gap":2.0},{"key":"registry_consistency_score","label":"Registry Consistency","score":2.0,"max_score":4.0,"gap":2.0},{"key":"rate_limit_semantics_score","label":"Rate Limit Semantics","score":2.0,"max_score":4.0,"gap":2.0},{"key":"prompt_contract_score","label":"Prompt Contract","score":2.0,"max_score":4.0,"gap":2.0},{"key":"least_privilege_scope_score","label":"Least Privilege Scope","score":2.0,"max_score":4.0,"gap":2.0},{"key":"execution_sandbox_safety_score","label":"Execution Sandbox Safety","score":2.0,"max_score":4.0,"gap":2.0}],"verdict_traces":{"production_readiness":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use.","confidence":{"score":76.25,"label":"high"},"triggering_alerts":[],"winning_source":"live_validation"},"client_readiness":[{"key":"openai_connectors","status":"partial","reason":"OpenAI connectors expect OAuth for remote server auth.; Dynamic client registration materially improves connector setup.; Transport compliance should be in good shape.","triggering_checks":["initialize","tools_list","transport_compliance_probe","step_up_auth_probe","connector_replay_probe","request_association_probe"],"confidence":{"score":76.25,"label":"high"},"winning_source":"live_validation","conflicting_sources":[]},{"key":"claude_desktop","status":"ready","reason":"Transport behavior should match Claude-compatible HTTP expectations.","triggering_checks":["initialize","tools_list","transport_compliance_probe"],"confidence":{"score":76.25,"label":"high"},"winning_source":"live_validation","conflicting_sources":[]},{"key":"unsafe_for_write_actions","status":"yes","reason":"Blocked until safeguards and confirmation semantics are verified for write, exec, or destructive tools.","triggering_checks":["action_safety_probe"],"confidence":{"score":76.25,"label":"high"},"winning_source":"live_validation","conflicting_sources":[]},{"key":"snapshot_churn_risk","status":"low","reason":"No material tool-surface churn detected in the latest comparison.","triggering_checks":["tool_snapshot_probe","connector_replay_probe"],"confidence":{"score":76.25,"label":"high"},"winning_source":"history","conflicting_sources":[]}]},"current_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_b0e245dfc58b2808","generated_at":"2026-07-31T06:32:48.994980+00:00","source":"current_snapshot","server":"ai.afmr/discovery","last_validated_at":"2026-07-31T05:24:28.944532+00:00","validation_age_hours":1.14,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-07-31T05:24:28.944532+00:00","age_hours":1.14,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":168.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":71.15,"raw_score":71.15,"confidence_score":76.2,"confidence_weighted_score":54.3,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":71.15,"display_score":71.15,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Allow with approval","why":"exec-capable tools + no confirmation safeguards + high-risk tools need review","next_action":"export policy, require approval for writes, add authenticated validation","reason_count":2},"production_readiness_class":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use."},"evidence_confidence":{"score":76.25,"label":"high","validation_age_hours":1.14,"live_check_count":26},"active_alerts":[]},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_b0e245dfc58b2808","generated_at":"2026-07-31T06:32:48.994980+00:00","source":"current_snapshot","server":"ai.afmr/discovery","last_validated_at":"2026-07-31T05:24:28.944532+00:00","validation_age_hours":1.14,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-07-31T05:24:28.944532+00:00","age_hours":1.14,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":168.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":71.15,"raw_score":71.15,"confidence_score":76.2,"confidence_weighted_score":54.3,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":71.15,"display_score":71.15,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Allow with approval","why":"exec-capable tools + no confirmation safeguards + high-risk tools need review","next_action":"export policy, require approval for writes, add authenticated validation","reason_count":2},"production_readiness_class":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use."},"evidence_confidence":{"score":76.25,"label":"high","validation_age_hours":1.14,"live_check_count":26},"active_alerts":[]},"agent_commerce":{"status":"beta","commerce_signal":"weak","payment_execution_detected":"no","billing_or_usage_detected":"no","quote_or_pricing_detected":"no","numeric_price_context":"yes","commercial_quote_context":"no","checkout_or_charge_detected":"no","checkout_term_observed":"no","payment_capable":"none","payment_rails":[],"purchase_stage_supported":[],"human_confirmation_required":"unknown","spending_policy_supported":"yes","receipt_supported":"unknown","refund_policy_present":"unknown","operator_identity":"declared","auth_required":"no","auth_scheme":"none","tool_risk_level":"read_only","tool_risk_score":10,"pricing_transparency":"unknown","schema_change_detected":"unknown","delegation_level":"none","evidence_level":"inferred","confidence":"low","highest_risk_tools":[],"skipped_unsafe_tools":[],"last_checked_at":"2026-07-31T06:32:48.991922+00:00","evidence":[{"field":"commerce_signal","value":"weak","evidence_level":"inferred","source":"tool_schema","matched_terms":["limit","rate","card"],"sample":"lookup_failure_mode","confidence":"low","last_checked_at":"2026-07-31T06:32:48.991922+00:00"}],"disclaimer":"Beta assessment. Verify detects evidence and risk signals but does not certify that this server is safe for autonomous purchases.","scores":{"auth_posture_score":0,"tool_risk_score":10,"payment_readiness_score":10,"agent_delegation_safety_score":50,"overall_agent_commerce_score":null},"warnings":[],"recommended_fixes":[]},"latest_claim":null,"maintainer_profile_slug":null,"watch_summary":{"count":0,"teams":[],"emails":[]}},"latest_validation":{"id":"54472c3e-9f4a-4501-8b94-5c38b4b69a9c","validation_profile":"remote_mcp","status":"completed","summary_status":"healthy","transport_type":"streamable-http","latency_ms":2113.1,"failures":{"server_card":{"url":"https://afmr.ai/.well-known/mcp/server-card.json","error":"Client error '404 Not Found' for url 'https://afmr.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"},"oauth_protected_resource":{"url":"https://afmr.ai/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://afmr.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"},"oauth_authorization_server":{"reason":"no_authorization_server"},"openid_configuration":{"reason":"no_authorization_server"},"transport_compliance_probe":{"transport":"streamable-http","session_id_present":false,"protocol_header_present":true,"last_event_id_visible":false,"requested_protocol_version":"2025-03-26","bad_protocol_status_code":200,"bad_protocol_payload":{"jsonrpc":"2.0","id":410,"result":{"tools":[{"name":"discover_afmr","title":"Discover AFMR resources","description":"Return canonical AFMR specifications, registries, schemas, endpoints, and scope boundaries.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"lookup_failure_mode","title":"Look up AFMR failure modes","description":"Find exact AFMR 1.0 failure-mode records by permanent ID or bounded text query.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^AFMR-F[0-9]{3}$","description":"Exact permanent family identifier, for example AFMR-F010."},"query":{"type":"string","minLength":2,"maxLength":100,"description":"Text matched against ID, name, definition, and class."},"limit":{"type":"integer","minimum":1,"maximum":10,"default":5}},"anyOf":[{"required":["id"]},{"required":["query"]}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_reputation_attestation_contract","title":"Get the reputation-attestation contract","description":"Return the portable attestation, trust-profile, verifier-result, endpoint-registry, and lifecycle contracts.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_lift_evidence_contract","title":"Get the Lift Evidence public-card contract","description":"Return the stable configuration-scoped public-card schema and empty public index; no results are asserted.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}]}},"bad_protocol_headers":{"content-type":"application/json","mcp-protocol-version":"2025-11-25"},"bad_protocol_error":null,"delete_status_code":null,"delete_error":null,"expired_session_status_code":null,"expired_session_error":null,"issues":["missing_session_id","bad_protocol_not_rejected"]}},"checks":{"server_card":{"status":"error","latency_ms":302.05,"details":{"url":"https://afmr.ai/.well-known/mcp/server-card.json","error":"Client error '404 Not Found' for url 'https://afmr.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"}},"oauth_protected_resource":{"status":"error","latency_ms":204.0,"details":{"url":"https://afmr.ai/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://afmr.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"}},"oauth_authorization_server":{"status":"missing","latency_ms":null,"details":{"reason":"no_authorization_server"}},"openid_configuration":{"status":"missing","latency_ms":null,"details":{"reason":"no_authorization_server"}},"initialize":{"status":"ok","latency_ms":97.85,"details":{"url":"https://afmr.ai/api/rpc","payload":{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-03-26","capabilities":{"resources":{"listChanged":false},"tools":{"listChanged":false}},"serverInfo":{"name":"ai.afmr/discovery","title":"AFMR Discovery","version":"1.0.0","websiteUrl":"https://afmr.ai/"},"instructions":"Use this read-only server to discover AFMR 1.0 failure modes, reputation-attestation contracts, and configuration-scoped Lift Evidence artifacts. AFMR records are scoped to named evidence, configuration, governance process, and lifecycle state. They are not unqualified universal safety claims."}},"http_status":200,"headers":{"content-type":"application/json","mcp-protocol-version":"2025-11-25"}}},"protocol_version_probe":{"status":"warning","latency_ms":null,"details":{"claimed_version":"2025-03-26","validator_protocol_version":"2025-03-26","latest_known_version":"2025-11-25","releases_behind":2,"lag_days":244}},"tools_list":{"status":"ok","latency_ms":47.67,"details":{"url":"https://afmr.ai/api/rpc","payload":{"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"discover_afmr","title":"Discover AFMR resources","description":"Return canonical AFMR specifications, registries, schemas, endpoints, and scope boundaries.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"lookup_failure_mode","title":"Look up AFMR failure modes","description":"Find exact AFMR 1.0 failure-mode records by permanent ID or bounded text query.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^AFMR-F[0-9]{3}$","description":"Exact permanent family identifier, for example AFMR-F010."},"query":{"type":"string","minLength":2,"maxLength":100,"description":"Text matched against ID, name, definition, and class."},"limit":{"type":"integer","minimum":1,"maximum":10,"default":5}},"anyOf":[{"required":["id"]},{"required":["query"]}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_reputation_attestation_contract","title":"Get the reputation-attestation contract","description":"Return the portable attestation, trust-profile, verifier-result, endpoint-registry, and lifecycle contracts.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_lift_evidence_contract","title":"Get the Lift Evidence public-card contract","description":"Return the stable configuration-scoped public-card schema and empty public index; no results are asserted.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}]}},"http_status":200,"headers":{"content-type":"application/json","mcp-protocol-version":"2025-11-25"}}},"prompts_list":{"status":"missing","latency_ms":524.31,"details":{"url":"https://afmr.ai/api/rpc","payload":{"jsonrpc":"2.0","id":3,"error":{"code":-32601,"message":"Method not found"}},"http_status":200,"headers":{"content-type":"application/json","mcp-protocol-version":"2025-11-25"},"reason":"not_supported"}},"prompt_get":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"resources_list":{"status":"ok","latency_ms":565.43,"details":{"url":"https://afmr.ai/api/rpc","payload":{"jsonrpc":"2.0","id":5,"result":{"resources":[{"uri":"https://wulfkaal.github.io/afmr/index.json","name":"Canonical AFMR failure-mode registry","description":"AFMR 1.0 machine index: 32 permanent failure-mode families in eight classes.","mimeType":"application/json"},{"uri":"https://wulfkaal.github.io/afmr/spec-1.0.html","name":"AFMR 1.0 specification","description":"Normative AFMR 1.0 specification.","mimeType":"text/html"},{"uri":"https://afmr.ai/.well-known/afmr.json","name":"AFMR discovery document","description":"Authoritative discovery links for AFMR.ai.","mimeType":"application/json"},{"uri":"https://afmr.ai/standards/reputation-attestation/0.1/schema.json","name":"Reputation attestation schema","description":"Working Draft 0.1 schema for a signed, scoped, lifecycle-aware AFMR reputation attestation.","mimeType":"application/schema+json"},{"uri":"https://afmr.ai/standards/reputation-attestation/0.1/verifier.json","name":"Reputation attestation verifier requirements","description":"Deterministic validation, proof, scope, evidence, and lifecycle requirements.","mimeType":"application/json"},{"uri":"https://afmr.ai/registries/endpoints/v0.1/index.json","name":"Conforming governance-endpoint registry","description":"Intentionally empty pre-publication registry; no endpoint conformance is currently claimed.","mimeType":"application/json"},{"uri":"https://afmr.ai/lift-evidence/index.json","name":"Lift evidence public-card index","description":"Configuration-only empty index. No measured lift results or safety claims are published.","mimeType":"application/json"},{"uri":"https://wulfkaal.github.io/afmr/schemas/lift-comparison-public-card-v1.schema.json","name":"Lift comparison public-card schema","description":"Canonical stable redacted public-card contract for configuration-scoped cohort comparisons.","mimeType":"application/schema+json"}]}},"http_status":200,"headers":{"content-type":"application/json","mcp-protocol-version":"2025-11-25"}}},"resource_read":{"status":"ok","latency_ms":116.77,"details":{"url":"https://afmr.ai/api/rpc","payload":{"jsonrpc":"2.0","id":6,"result":{"contents":[{"uri":"https://wulfkaal.github.io/afmr/index.json","name":"Canonical AFMR failure-mode registry","mimeType":"application/json; charset=utf-8","text":"{\n  \"@context\": \"https://wulfkaal.github.io/afmr/context.jsonld\",\n  \"@type\": \"DefinedTermSet\",\n  \"name\": \"Agent Failure Mode Registry\",\n  \"abbreviation\": \"AFMR\",\n  \"description\": \"A citable registry of the ways autonomous agent systems fail as designed mechanisms, and the conditions under which each failure occurs. Thirty-two families in eight classes, each with builder-checkable trigger conditions, grounding claims bound to verbatim quotes and document hashes, and where one exists, the pre-2020 institutional antecedent documenting the same mechanism in human institutions.\",\n  \"version\": \"1.0\",\n  \"status\": \"Published\",\n  \"date\": \"2026-07-30\",\n  \"editor\": {\n    \"name\": \"Wulf A. Kaal\",\n    \"orcid\": \"0009-0008-7840-1847\",\n    \"affiliation\": \"University of St. Thomas\",\n    \"email\": \"wulf@wulfkaal.com\"\n  },\n  \"specification_url\": \"https://wulfkaal.github.io/afmr/spec-1.0.html\",\n  \"canonical_url\": \"https://wulfkaal.github.io/afmr/\",\n  \"schema_url\": \"https://wulfkaal.github.io/afmr/schema.json\",\n  \"license\": \"CC-BY-4.0\",\n  \"license_url\": \"https://creativecommons.org/licenses/by/4.0/\",\n  \"citation\": \"W. A. Kaal, ed., Agent Failure Mode Registry (AFMR) version 1.0, 2026-07-30. https://wulfkaal.github.io/afmr/\",\n  \"identifier_policy\": {\n    \"family_pattern\": \"AFMR-F[0-9]{3}\",\n    \"mode_pattern\": \"AFMR-M[0-9]{4}\",\n    \"cite_as\": \"AFMR-F001 (AFMR 1.0)\",\n    \"stability\": \"Identifiers are permanent. A family is never renumbered and never reused. A family withdrawn from use is marked deprecated and retained.\"\n  },\n  \"classes\": [\n    {\n      \"key\": \"A\",\n      \"name\": \"Identity and Standing\",\n      \"families\": [\n        \"AFMR-F001\",\n        \"AFMR-F002\",\n        \"AFMR-F003\",\n        \"AFMR-F004\"\n      ]\n    },\n    {\n      \"key\": \"B\",\n      \"name\": \"Stake and Incentive\",\n      \"families\": [\n        \"AFMR-F005\",\n        \"AFMR-F006\",\n        \"AFMR-F007\",\n        \"AFMR-F008\"\n      ]\n    },\n    {\n      \"key\": \"C\",\n      \"name\": \"Objective and Specification\",\n      \"families\": [\n        \"AFMR-F009\",\n        \"AFMR-F010\",\n        \"AFMR-F011\",\n        \"AFMR-F012\"\n      ]\n    },\n    {\n      \"key\": \"D\",\n      \"name\": \"Oversight and Adjudication\",\n      \"families\": [\n        \"AFMR-F013\",\n        \"AFMR-F014\",\n        \"AFMR-F015\",\n        \"AFMR-F016\"\n      ]\n    },\n    {\n      \"key\": \"E\",\n      \"name\": \"Evaluation and Feedback\",\n      \"families\": [\n        \"AFMR-F017\",\n        \"AFMR-F018\",\n        \"AFMR-F019\",\n        \"AFMR-F020\"\n      ]\n    },\n    {\n      \"key\": \"F\",\n      \"name\": \"Coordination and Collusion\",\n      \"families\": [\n        \"AFMR-F021\",\n        \"AFMR-F022\",\n        \"AFMR-F023\",\n        \"AFMR-F024\"\n      ]\n    },\n    {\n      \"key\": \"G\",\n      \"name\": \"Execution and Inputs\",\n      \"families\": [\n        \"AFMR-F025\",\n        \"AFMR-F026\",\n        \"AFMR-F027\",\n        \"AFMR-F028\"\n      ]\n    },\n    {\n      \"key\": \"H\",\n      \"name\": \"Structure and Drift\",\n      \"families\": [\n        \"AFMR-F029\",\n        \"AFMR-F030\",\n        \"AFMR-F031\",\n        \"AFMR-F032\"\n      ]\n    }\n  ],\n  \"counts\": {\n    \"families\": 32,\n    \"classes\": 8,\n    \"trigger_conditions\": 96,\n    \"grounding_claim_links\": 21,\n    \"families_with_institutional_antecedent\": 20,\n    \"corpus_failure_claims_available\": 2037,\n    \"corpus_failure_families_out_of_profile\": 27\n  },\n  \"grounding\": {\n    \"corpus\": \"Kaal Corpus, 124 works, 2004 to 2026\",\n    \"claim_layer\": \"https://wulfkaal.github.io/claims/index.json\",\n    \"failure_index\": \"https://wulfkaal.github.io/failures/index.json\",\n    \"works_metadata\": \"https://wulfkaal.github.io/papers.json\",\n    \"entity_layer\": \"https://wulfkaal.com/knowledge-graph/\",\n    \"verification\": \"sha256 over raw PDF bytes of the source work\"\n  },\n  \"conformance_levels\": [\n    \"referencing\",\n    \"assessing\",\n    \"attesting\"\n  ],\n  \"attestation_registry\": \"https://wulfkaal.github.io/colloquium/\",\n  \"change_process\": \"https://wulfkaal.github.io/afmr/spec-1.0.html#change-process\",\n  \"out_of_profile_corpus_families\": [\n    {\n      \"slug\": \"regulatory-lag\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/regulatory-lag.json\"\n    },\n    {\n      \"slug\": \"valuation-and-pricing-failure\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/valuation-and-pricing-failure.json\"\n    },\n    {\n      \"slug\": \"research-design-limitation\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/research-design-limitation.json\"\n    },\n    {\n      \"slug\": \"investor-protection-gap\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/investor-protection-gap.json\"\n    },\n    {\n      \"slug\": \"innovation-chilling\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/innovation-chilling.json\"\n    },\n    {\n      \"slug\": \"liquidity-and-market-structure-failure\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/liquidity-and-market-structure-failure.json\"\n    },\n    {\n      \"slug\": \"disclosure-ineffectiveness\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/disclosure-ineffectiveness.json\"\n    },\n    {\n      \"slug\": \"jurisdictional-conflict\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/jurisdictional-conflict.json\"\n    },\n    {\n      \"slug\": \"harmonization-and-standardization-failure\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/harmonization-and-standardization-failure.json\"\n    },\n    {\n      \"slug\": \"compliance-cost-and-barrier-to-entry\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/compliance-cost-and-barrier-to-entry.json\"\n    },\n    {\n      \"slug\": \"incumbent-resistance-to-adoption\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/incumbent-resistance-to-adoption.json\"\n    },\n    {\n      \"slug\": \"inequality-and-access-divide\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/inequality-and-access-divide.json\"\n    },\n    {\n      \"slug\": \"fraud-and-misconduct\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/fraud-and-misconduct.json\"\n    },\n    {\n      \"slug\": \"regulatory-arbitrage\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/regulatory-arbitrage.json\"\n    },\n    {\n      \"slug\": \"systemic-risk-transmission\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/systemic-risk-transmission.json\"\n    },\n    {\n      \"slug\": \"sample-and-selection-bias\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/sample-and-selection-bias.json\"\n    },\n    {\n      \"slug\": \"regulatory-capture-and-incumbent-advantage\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/regulatory-capture-and-incumbent-advantage.json\"\n    },\n    {\n      \"slug\": \"privacy-and-surveillance-risk\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/privacy-and-surveillance-risk.json\"\n    },\n    {\n      \"slug\": \"transition-and-migration-risk\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/transition-and-migration-risk.json\"\n    },\n    {\n      \"slug\": \"interoperability-and-fragmentation\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/interoperability-and-fragmentation.json\"\n    },\n    {\n      \"slug\": \"short-termism\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/short-termism.json\"\n    },\n    {\n      \"slug\": \"disclosure-cost-and-burden\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/disclosure-cost-and-burden.json\"\n    },\n    {\n      \"slug\": \"environmental-and-resource-cost\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/environmental-and-resource-cost.json\"\n    },\n    {\n      \"slug\": \"scalability-and-throughput-limit\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/scalability-and-throughput-limit.json\"\n    },\n    {\n      \"slug\": \"adoption-and-usability-barrier\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/adoption-and-usability-barrier.json\"\n    },\n    {\n      \"slug\": \"information-asymmetry\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/information-asymmetry.json\"\n    },\n    {\n      \"slug\": \"other\",\n      \"url\": \"https://wulfkaal.github.io/failures/by-name/other.json\"\n    }\n  ],\n  \"families\": [\n    {\n      \"id\": \"AFMR-F001\",\n      \"class\": \"A\",\n      \"class_name\": \"Identity and Standing\",\n      \"name\": \"Sybil and Identity Multiplication\",\n      \"definition\": \"One party operates many apparent agents, defeating any assumption the design makes per identity.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Creating an additional agent identity costs less than the influence one identity carries\",\n        \"Any quorum, sampling, average, or one-vote-per-identity rule is in use\",\n        \"No proof of distinctness is required at registration\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:6192998-031\",\n          \"url\": \"https://wulfkaal.github.io/claims/6192998-031\"\n        }\n      ],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:3125822-049\",\n        \"url\": \"https://wulfkaal.github.io/claims/3125822-049\",\n        \"year\": \"2018\",\n        \"mechanism\": \"domain specific issuance per competence tag\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"sybil-and-identity-attack\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/sybil-and-identity-attack.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F001\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F002\",\n      \"class\": \"A\",\n      \"class_name\": \"Identity and Standing\",\n      \"name\": \"Identity Discontinuity and Whitewashing\",\n      \"definition\": \"An agent abandons a degraded identity and resumes with a clean one, so history stops constraining behavior.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Identity creation is costless or near costless\",\n        \"Standing is not portable to a new identity and history is not retained on exit\",\n        \"The population is pseudonymous or unattested\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:6192998-001\",\n          \"url\": \"https://wulfkaal.github.io/claims/6192998-001\"\n        }\n      ],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:1428387-025\",\n        \"url\": \"https://wulfkaal.github.io/claims/1428387-025\",\n        \"year\": \"2009\",\n        \"mechanism\": \"actors accept known problems to protect standing, which presumes standing persists\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"sybil-and-identity-attack\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/sybil-and-identity-attack.json\"\n        },\n        {\n          \"slug\": \"reputation-system-gaming\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/reputation-system-gaming.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F002\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F003\",\n      \"class\": \"A\",\n      \"class_name\": \"Identity and Standing\",\n      \"name\": \"Cold Start and Bootstrapping\",\n      \"definition\": \"The design requires accumulated standing, participants, or history that it provides no way to acquire.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Participation requires staking standing the new entrant cannot yet have earned\",\n        \"Initial population is zero or below the quorum the mechanism assumes\",\n        \"No provisional, sponsored, or probationary entry path exists\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:3125822-043\",\n        \"url\": \"https://wulfkaal.github.io/claims/3125822-043\",\n        \"year\": \"2018\",\n        \"mechanism\": \"entry problem where adjudication requires staking reputation one does not yet hold\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"cold-start-and-bootstrapping\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/cold-start-and-bootstrapping.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F003\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F004\",\n      \"class\": \"A\",\n      \"class_name\": \"Identity and Standing\",\n      \"name\": \"Standing Transferability Defect\",\n      \"definition\": \"Standing can be bought, sold, delegated, or pooled, so it stops measuring the performance it was meant to represent.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"The standing instrument is fungible or transferable between identities\",\n        \"Capital and earned standing are staked in the same act\",\n        \"Delegation moves standing rather than only voice\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:3981021-029\",\n          \"url\": \"https://wulfkaal.github.io/claims/3981021-029\"\n        },\n        {\n          \"id\": \"kaal:claim:3962614-030\",\n          \"url\": \"https://wulfkaal.github.io/claims/3962614-030\"\n        },\n        {\n          \"id\": \"kaal:claim:3799320-028\",\n          \"url\": \"https://wulfkaal.github.io/claims/3799320-028\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"token-transferability-defect\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/token-transferability-defect.json\"\n        },\n        {\n          \"slug\": \"staking-and-incentive-misalignment\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/staking-and-incentive-misalignment.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F004\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F005\",\n      \"class\": \"B\",\n      \"class_name\": \"Stake and Incentive\",\n      \"name\": \"Staking and Incentive Misalignment\",\n      \"definition\": \"What an agent risks diverges from what the system needs it to care about.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"The stake is smaller than the value at issue in a single decision\",\n        \"Loss from a bad outcome falls on a party other than the decider\",\n        \"Stake is denominated in something the agent can reacquire faster than it can be slashed\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:5887242-017\",\n          \"url\": \"https://wulfkaal.github.io/claims/5887242-017\"\n        }\n      ],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:1558614-013\",\n        \"url\": \"https://wulfkaal.github.io/claims/1558614-013\",\n        \"year\": \"2010\",\n        \"mechanism\": \"actors capture upside of excessive risk without bearing all of its cost\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"staking-and-incentive-misalignment\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/staking-and-incentive-misalignment.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F005\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F006\",\n      \"class\": \"B\",\n      \"class_name\": \"Stake and Incentive\",\n      \"name\": \"Missing Reward Channel\",\n      \"definition\": \"An action surface exists with no reward attached, so rational agents will not allocate compute to it.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"The behavior the system needs is not on any reward path\",\n        \"Agents are economically rational over standing or utility flows\",\n        \"Contribution and selection are rewarded asymmetrically\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:6655138-007\",\n          \"url\": \"https://wulfkaal.github.io/claims/6655138-007\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"staking-and-incentive-misalignment\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/staking-and-incentive-misalignment.json\"\n        },\n        {\n          \"slug\": \"governance-participation-collapse\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/governance-participation-collapse.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F006\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F007\",\n      \"class\": \"B\",\n      \"class_name\": \"Stake and Incentive\",\n      \"name\": \"Plutocratic Capture\",\n      \"definition\": \"Influence tracks holdings rather than earned standing, so the largest holders determine outcomes.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Weight is a function of balance, stake size, or compute rather than validated performance\",\n        \"Holdings are acquirable on an open market\",\n        \"No cap, curve, or quadratic dampening applies to concentration\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:5887242-017\",\n          \"url\": \"https://wulfkaal.github.io/claims/5887242-017\"\n        }\n      ],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2097160-019\",\n        \"url\": \"https://wulfkaal.github.io/claims/2097160-019\",\n        \"year\": \"2012\",\n        \"mechanism\": \"instrument design changing whose interests a decider serves\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"plutocratic-capture\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/plutocratic-capture.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F007\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F008\",\n      \"class\": \"B\",\n      \"class_name\": \"Stake and Incentive\",\n      \"name\": \"Moral Hazard and Backstop Expectation\",\n      \"definition\": \"An expectation of rescue, retry, or rollback changes risk taking before any rescue occurs.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Failed actions can be retried at no cost to standing\",\n        \"A human or protocol operator is expected to reverse bad outcomes\",\n        \"Slashing is discretionary rather than automatic\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:1558614-013\",\n        \"url\": \"https://wulfkaal.github.io/claims/1558614-013\",\n        \"year\": \"2010\",\n        \"mechanism\": \"limited liability as a driver of excessive risk taking\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"moral-hazard-and-bailout-expectation\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/moral-hazard-and-bailout-expectation.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F008\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F009\",\n      \"class\": \"C\",\n      \"class_name\": \"Objective and Specification\",\n      \"name\": \"Specification Incompleteness\",\n      \"definition\": \"The principal cannot enumerate every action and inaction in advance, so the agent's mandate is necessarily underspecified.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"The action space is open ended or tool mediated\",\n        \"The agent operates without per-action approval\",\n        \"The instruction set is stated as goals rather than as permitted operations\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:3373393-008\",\n        \"url\": \"https://wulfkaal.github.io/claims/3373393-008\",\n        \"year\": \"2019\",\n        \"mechanism\": \"bounded rationality and incomplete foresight make complete contracting over agent action impossible\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"definitional-ambiguity\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/definitional-ambiguity.json\"\n        },\n        {\n          \"slug\": \"agency-cost-and-managerial-opportunism\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/agency-cost-and-managerial-opportunism.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F009\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F010\",\n      \"class\": \"C\",\n      \"class_name\": \"Objective and Specification\",\n      \"name\": \"Reward Hacking and Proxy Capture\",\n      \"definition\": \"The agent raises the measured objective without producing the outcome the objective stood for.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"The objective is a learned or aggregated proxy rather than the outcome itself\",\n        \"The agent can observe and iterate against the measure\",\n        \"No held-out or adversarial check is applied to the measure\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:4855607-015\",\n          \"url\": \"https://wulfkaal.github.io/claims/4855607-015\"\n        }\n      ],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2486570-024\",\n        \"url\": \"https://wulfkaal.github.io/claims/2486570-024\",\n        \"year\": \"2014\",\n        \"mechanism\": \"reputational and market proxies standing in for direct incentives\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"reputation-system-gaming\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/reputation-system-gaming.json\"\n        },\n        {\n          \"slug\": \"measurement-and-metric-failure\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/measurement-and-metric-failure.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F010\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F011\",\n      \"class\": \"C\",\n      \"class_name\": \"Objective and Specification\",\n      \"name\": \"Metric Capture and Measurement Failure\",\n      \"definition\": \"The chosen metric ceases to track the property it stands for once it becomes the target.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Standing or reward is computed from a single scalar\",\n        \"The metric is disclosed to the parties it scores\",\n        \"No periodic revalidation of the metric against outcomes occurs\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2629451-031\",\n        \"url\": \"https://wulfkaal.github.io/claims/2629451-031\",\n        \"year\": \"2015\",\n        \"mechanism\": \"market pricing of governance change as a proxy for governance quality\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"measurement-and-metric-failure\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/measurement-and-metric-failure.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F011\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F012\",\n      \"class\": \"C\",\n      \"class_name\": \"Objective and Specification\",\n      \"name\": \"Definitional Ambiguity in Machine Applied Rules\",\n      \"definition\": \"A term carrying operational weight has no settled boundary, so automated application produces outcomes no party intended.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Rules are applied by code without a human interpretive layer\",\n        \"Terms are inherited from natural language instruments\",\n        \"No authority is named to settle meaning when application is contested\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:5886342-009\",\n          \"url\": \"https://wulfkaal.github.io/claims/5886342-009\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"definitional-ambiguity\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/definitional-ambiguity.json\"\n        },\n        {\n          \"slug\": \"smart-contract-rigidity\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/smart-contract-rigidity.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F012\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F013\",\n      \"class\": \"D\",\n      \"class_name\": \"Oversight and Adjudication\",\n      \"name\": \"Oversight Capacity Gap\",\n      \"definition\": \"Agent behavior exceeds the resources, expertise, or access of whoever is nominally supervising it.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Action volume exceeds what the supervisor can sample meaningfully\",\n        \"The supervisor lacks access to the agent's inputs or intermediate reasoning\",\n        \"Supervision is assigned but not resourced\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:5245185-025\",\n          \"url\": \"https://wulfkaal.github.io/claims/5245185-025\"\n        }\n      ],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:1806252-031\",\n        \"url\": \"https://wulfkaal.github.io/claims/1806252-031\",\n        \"year\": \"2011\",\n        \"mechanism\": \"monitoring capacity as the binding constraint on oversight\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"ai-oversight-and-alignment-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/ai-oversight-and-alignment-gap.json\"\n        },\n        {\n          \"slug\": \"supervisory-capacity-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/supervisory-capacity-gap.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F013\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F014\",\n      \"class\": \"D\",\n      \"class_name\": \"Oversight and Adjudication\",\n      \"name\": \"Oversight Latency\",\n      \"definition\": \"Review is slower than action, so by the time a judgment lands the state it judged is gone.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Agent action rate exceeds adjudication rate\",\n        \"Actions are not reversible after the review window\",\n        \"Review is batched or scheduled rather than gating\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:5245185-025\",\n          \"url\": \"https://wulfkaal.github.io/claims/5245185-025\"\n        },\n        {\n          \"id\": \"kaal:claim:4755632-023\",\n          \"url\": \"https://wulfkaal.github.io/claims/4755632-023\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"ai-oversight-and-alignment-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/ai-oversight-and-alignment-gap.json\"\n        },\n        {\n          \"slug\": \"enforcement-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/enforcement-gap.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F014\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F015\",\n      \"class\": \"D\",\n      \"class_name\": \"Oversight and Adjudication\",\n      \"name\": \"Alignment Tax and Exogenous Constraint Scaling\",\n      \"definition\": \"External control scales against capability, so oversight cost rises faster than the capability it constrains.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Alignment relies on constraint imposed from outside the agent's incentive structure\",\n        \"Agent capability is expected to increase\",\n        \"No endogenous stake grows with capability\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:6244278-016\",\n          \"url\": \"https://wulfkaal.github.io/claims/6244278-016\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"ai-oversight-and-alignment-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/ai-oversight-and-alignment-gap.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F015\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F016\",\n      \"class\": \"D\",\n      \"class_name\": \"Oversight and Adjudication\",\n      \"name\": \"Absent Human Backstop\",\n      \"definition\": \"No human authority can halt, reverse, or reinterpret automated execution, so cryptographic or procedural correctness substitutes for trust and fails to produce it.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"No named party can halt execution\",\n        \"No escalation path exists from automated outcome to human judgment\",\n        \"Human interpretation is not stated to prevail where the two diverge\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:3808873-042\",\n          \"url\": \"https://wulfkaal.github.io/claims/3808873-042\"\n        },\n        {\n          \"id\": \"kaal:claim:5886342-009\",\n          \"url\": \"https://wulfkaal.github.io/claims/5886342-009\"\n        }\n      ],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:3373393-038\",\n        \"url\": \"https://wulfkaal.github.io/claims/3373393-038\",\n        \"year\": \"2019\",\n        \"mechanism\": \"without a decentralized human backstop to code, cryptographic security does not create trust between principals and agents\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"legal-personality-and-liability-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/legal-personality-and-liability-gap.json\"\n        },\n        {\n          \"slug\": \"smart-contract-rigidity\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/smart-contract-rigidity.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F016\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F017\",\n      \"class\": \"E\",\n      \"class_name\": \"Evaluation and Feedback\",\n      \"name\": \"Feedback Degradation Above Evaluator Capability\",\n      \"definition\": \"Human or agent evaluation degrades precisely where the evaluated system is hardest to evaluate, including where it exceeds the evaluator.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Evaluators score outputs they cannot independently verify\",\n        \"The evaluated system is at or above evaluator capability in the domain\",\n        \"Evaluator agreement is used as the quality signal\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:4855607-018\",\n          \"url\": \"https://wulfkaal.github.io/claims/4855607-018\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"ai-oversight-and-alignment-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/ai-oversight-and-alignment-gap.json\"\n        },\n        {\n          \"slug\": \"measurement-and-metric-failure\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/measurement-and-metric-failure.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F017\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F018\",\n      \"class\": \"E\",\n      \"class_name\": \"Evaluation and Feedback\",\n      \"name\": \"Unstaked Adjudication\",\n      \"definition\": \"Whoever judges a contribution risks nothing on the judgment, so judgment is cheap and drifts.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Validators or reviewers stake nothing on their verdict\",\n        \"Verdicts are not contestable within a stated window\",\n        \"No standing consequence follows from a verdict later shown wrong\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:5245185-036\",\n          \"url\": \"https://wulfkaal.github.io/claims/5245185-036\"\n        }\n      ],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2486570-031\",\n        \"url\": \"https://wulfkaal.github.io/claims/2486570-031\",\n        \"year\": \"2014\",\n        \"mechanism\": \"consequence attaching to the adjudicating party as the source of care\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"reputation-system-gaming\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/reputation-system-gaming.json\"\n        },\n        {\n          \"slug\": \"board-and-oversight-failure\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/board-and-oversight-failure.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F018\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F019\",\n      \"class\": \"E\",\n      \"class_name\": \"Evaluation and Feedback\",\n      \"name\": \"Training and Annotation Bias Propagation\",\n      \"definition\": \"Bias in annotators or automated labeling propagates into the model and then into every decision the agent makes.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Labels are produced by a narrow annotator pool or by another model\",\n        \"No demographic or scenario stratification is checked\",\n        \"Label provenance is not recorded\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:5095633-019\",\n          \"url\": \"https://wulfkaal.github.io/claims/5095633-019\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"ai-model-and-training-failure\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/ai-model-and-training-failure.json\"\n        },\n        {\n          \"slug\": \"data-quality-and-comparability\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/data-quality-and-comparability.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F019\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F020\",\n      \"class\": \"E\",\n      \"class_name\": \"Evaluation and Feedback\",\n      \"name\": \"Human Judgment Displacement\",\n      \"definition\": \"Automation replaces judgment in a setting that required judgment, and the loss is not detected because the output still looks well formed.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Output is fluent and confident regardless of correctness\",\n        \"No sampled human review of accepted outputs occurs\",\n        \"The prior human process left no record to compare against\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2267560-025\",\n        \"url\": \"https://wulfkaal.github.io/claims/2267560-025\",\n        \"year\": \"2013\",\n        \"mechanism\": \"decision makers relying on presumptively optimal rules for want of decentralized information\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"human-judgment-displacement\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/human-judgment-displacement.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F020\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F021\",\n      \"class\": \"F\",\n      \"class_name\": \"Coordination and Collusion\",\n      \"name\": \"Mutual Audit Capture\",\n      \"definition\": \"Agents assigned to oversee one another converge on mutual approval, so peer monitoring devolves into self serving behavior.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Agents both audit and are audited by the same population\",\n        \"No anti collusion constraint or randomized assignment applies\",\n        \"Approval is cheaper for the auditor than refusal\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:5245185-010\",\n          \"url\": \"https://wulfkaal.github.io/claims/5245185-010\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"reputation-system-gaming\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/reputation-system-gaming.json\"\n        },\n        {\n          \"slug\": \"board-and-oversight-failure\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/board-and-oversight-failure.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F021\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F022\",\n      \"class\": \"F\",\n      \"class_name\": \"Coordination and Collusion\",\n      \"name\": \"Collusion Rings and Reciprocal Validation\",\n      \"definition\": \"A subset of agents validates one another to manufacture standing, and formal mechanism design alone does not detect it.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Validation is reciprocal or citation-like\",\n        \"One party can field several competing agents per task\",\n        \"No ring detection or downranking of reciprocal patterns is applied\"\n      ],\n      \"grounding_claims\": [\n        {\n          \"id\": \"kaal:claim:6192998-031\",\n          \"url\": \"https://wulfkaal.github.io/claims/6192998-031\"\n        }\n      ],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"reputation-system-gaming\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/reputation-system-gaming.json\"\n        },\n        {\n          \"slug\": \"consensus-and-protocol-attack\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/consensus-and-protocol-attack.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F022\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F023\",\n      \"class\": \"F\",\n      \"class_name\": \"Coordination and Collusion\",\n      \"name\": \"Collective Action and Coordination Failure\",\n      \"definition\": \"Individually rational agent behavior produces a collectively worse outcome and no mechanism reconciles the two.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Payoff to defection exceeds payoff to cooperation in a single interaction\",\n        \"Interactions are not expected to repeat, or identity does not persist across them\",\n        \"No mechanism prices the externality\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2267560-027\",\n        \"url\": \"https://wulfkaal.github.io/claims/2267560-027\",\n        \"year\": \"2013\",\n        \"mechanism\": \"private parties acting on decentralized information without a reconciling mechanism\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"collective-action-and-coordination-failure\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/collective-action-and-coordination-failure.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F023\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F024\",\n      \"class\": \"F\",\n      \"class_name\": \"Coordination and Collusion\",\n      \"name\": \"Delegation Opportunism\",\n      \"definition\": \"An agent acting for a principal, or for another agent, captures private benefit at the principal's expense, and monitoring costs more than it recovers.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"The delegation chain is more than one link deep\",\n        \"The principal cannot observe intermediate actions\",\n        \"The agent's objective is not identical to the principal's\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:3373393-003\",\n        \"url\": \"https://wulfkaal.github.io/claims/3373393-003\",\n        \"year\": \"2019\",\n        \"mechanism\": \"agency conflicts from separation of ownership and control cannot be fully addressed because monitoring is costly\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"agency-cost-and-managerial-opportunism\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/agency-cost-and-managerial-opportunism.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F024\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F025\",\n      \"class\": \"G\",\n      \"class_name\": \"Execution and Inputs\",\n      \"name\": \"Oracle and Input Corruption\",\n      \"definition\": \"The mechanism executes correctly on an input that is wrong, stale, manipulated, or injected.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Any input crosses a trust boundary without attestation\",\n        \"A single source can determine an input value\",\n        \"No staleness bound or sanity range is enforced\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"oracle-and-input-corruption\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/oracle-and-input-corruption.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F025\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F026\",\n      \"class\": \"G\",\n      \"class_name\": \"Execution and Inputs\",\n      \"name\": \"Automated Execution Rigidity\",\n      \"definition\": \"Execution cannot accommodate circumstances the code did not anticipate, and cannot be amended in time to matter.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Execution is irreversible once triggered\",\n        \"Amendment requires a process slower than the harm\",\n        \"No circuit breaker or pause authority exists\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2267560-012\",\n        \"url\": \"https://wulfkaal.github.io/claims/2267560-012\",\n        \"year\": \"2013\",\n        \"mechanism\": \"rules are adaptable only where the process producing them integrates dynamic elements\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"smart-contract-rigidity\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/smart-contract-rigidity.json\"\n        },\n        {\n          \"slug\": \"rule-obsolescence-and-ossification\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/rule-obsolescence-and-ossification.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F026\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F027\",\n      \"class\": \"G\",\n      \"class_name\": \"Execution and Inputs\",\n      \"name\": \"Code Defect Exploitation\",\n      \"definition\": \"A defect in deployed code is exercised by an adversary before it is found by its authors.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Code holds value or authority and is publicly reachable\",\n        \"No independent audit or adversarial review preceded deployment\",\n        \"Upgrade path is absent or itself unguarded\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"smart-contract-bug-and-exploit\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/smart-contract-bug-and-exploit.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F027\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F028\",\n      \"class\": \"G\",\n      \"class_name\": \"Execution and Inputs\",\n      \"name\": \"Custody and Key Compromise\",\n      \"definition\": \"Control of an agent's identity, assets, or authority is lost or captured through key or custody failure.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"An agent holds signing authority without threshold or rotation\",\n        \"Key material is reachable by the same process that uses it\",\n        \"No recovery path distinguishes loss from theft\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": null,\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"custody-and-key-loss\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/custody-and-key-loss.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F028\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F029\",\n      \"class\": \"H\",\n      \"class_name\": \"Structure and Drift\",\n      \"name\": \"Recentralization Drift\",\n      \"definition\": \"A system designed to distribute authority concentrates it again through tooling, delegation, capital, or expertise asymmetry.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"A small number of operators run most infrastructure or most agents\",\n        \"Delegation is permitted and defaults are sticky\",\n        \"Participation cost rises with system maturity\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2273857-062\",\n        \"url\": \"https://wulfkaal.github.io/claims/2273857-062\",\n        \"year\": \"2013\",\n        \"mechanism\": \"concentration of institution specific information in few hands\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"recentralization-drift\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/recentralization-drift.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F029\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F030\",\n      \"class\": \"H\",\n      \"class_name\": \"Structure and Drift\",\n      \"name\": \"Rule Obsolescence and Ossification\",\n      \"definition\": \"A rule persists after the conditions that justified it have changed, and resists revision.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Amendment requires a supermajority of a population that has stopped participating\",\n        \"No scheduled review of parameters against outcomes exists\",\n        \"Parameters were set once at launch\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2267560-012\",\n        \"url\": \"https://wulfkaal.github.io/claims/2267560-012\",\n        \"year\": \"2013\",\n        \"mechanism\": \"adaptability requires dynamic elements in the rulemaking process itself\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"rule-obsolescence-and-ossification\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/rule-obsolescence-and-ossification.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F030\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F031\",\n      \"class\": \"H\",\n      \"class_name\": \"Structure and Drift\",\n      \"name\": \"Participation Collapse\",\n      \"definition\": \"Eligible participants stop participating, leaving decisions to a small, self selected, or unrepresentative remainder.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"Participation is unrewarded or costs more than it returns\",\n        \"Quorum is defined against eligible rather than active population\",\n        \"Decision volume exceeds attention available\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:2715083-020\",\n        \"url\": \"https://wulfkaal.github.io/claims/2715083-020\",\n        \"year\": \"2016\",\n        \"mechanism\": \"board independence contingent on who actually exercises the function\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"governance-participation-collapse\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/governance-participation-collapse.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F031\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    },\n    {\n      \"id\": \"AFMR-F032\",\n      \"class\": \"H\",\n      \"class_name\": \"Structure and Drift\",\n      \"name\": \"Enforcement and Liability Gap\",\n      \"definition\": \"A rule exists and cannot be enforced, or no recognized person bears the obligation, so liability has nowhere to attach.\",\n      \"status\": \"stable\",\n      \"trigger_conditions\": [\n        \"No legal person is identifiable behind the agent\",\n        \"The obligated party is outside the reach of any enforcing authority\",\n        \"Sanction depends on a party that can exit at will\"\n      ],\n      \"grounding_claims\": [],\n      \"institutional_antecedent\": {\n        \"id\": \"kaal:claim:3373393-038\",\n        \"url\": \"https://wulfkaal.github.io/claims/3373393-038\",\n        \"year\": \"2019\",\n        \"mechanism\": \"procedural correctness failing to substitute for an accountable party\"\n      },\n      \"corpus_failure_families\": [\n        {\n          \"slug\": \"enforcement-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/enforcement-gap.json\"\n        },\n        {\n          \"slug\": \"legal-personality-and-liability-gap\",\n          \"url\": \"https://wulfkaal.github.io/failures/by-name/legal-personality-and-liability-gap.json\"\n        }\n      ],\n      \"canonical_url\": \"https://wulfkaal.github.io/afmr/AFMR-F032\",\n      \"crosswalk\": {\n        \"nist_ai_rmf\": [],\n        \"iso_42001\": [],\n        \"eu_ai_act\": [],\n        \"mit_ai_risk_repository\": [],\n        \"owasp_llm\": [],\n        \"mitre_atlas\": []\n      }\n    }\n  ]\n}\n"}]}},"http_status":200,"headers":{"content-type":"application/json","mcp-protocol-version":"2025-11-25"},"resource_uri":"https://wulfkaal.github.io/afmr/index.json"}},"probe_noise_resilience":{"status":"ok","latency_ms":45.41,"details":{"url":"https://afmr.ai/robots.txt","http_status":200,"headers":{"content-type":"text/plain"}}},"determinism_probe":{"status":"ok","latency_ms":48.05,"details":{"attempts":2,"successful":2,"matches":2,"stable_ratio":1.0,"baseline_signature":"f70ec5351a008209d88e3f0be501b82e5cdfedb6b528997503e0c15ec1e0f474","errors":[]}},"session_resume_probe":{"status":"warning","latency_ms":null,"details":{"reason":"no_session_id","transport":"streamable-http","resume_expected":true,"protocol_version":"2025-03-26"}},"step_up_auth_probe":{"status":"missing","latency_ms":null,"details":{"oauth_present":false,"auth_required_checks":[],"supported_scopes":[],"scope_specificity_ratio":0.0,"broad_scopes":[],"challenge_headers":[],"step_up_signals":[],"minimal_scope_documented":false}},"transport_compliance_probe":{"status":"error","latency_ms":53.12,"details":{"transport":"streamable-http","session_id_present":false,"protocol_header_present":true,"last_event_id_visible":false,"requested_protocol_version":"2025-03-26","bad_protocol_status_code":200,"bad_protocol_payload":{"jsonrpc":"2.0","id":410,"result":{"tools":[{"name":"discover_afmr","title":"Discover AFMR resources","description":"Return canonical AFMR specifications, registries, schemas, endpoints, and scope boundaries.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"lookup_failure_mode","title":"Look up AFMR failure modes","description":"Find exact AFMR 1.0 failure-mode records by permanent ID or bounded text query.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^AFMR-F[0-9]{3}$","description":"Exact permanent family identifier, for example AFMR-F010."},"query":{"type":"string","minLength":2,"maxLength":100,"description":"Text matched against ID, name, definition, and class."},"limit":{"type":"integer","minimum":1,"maximum":10,"default":5}},"anyOf":[{"required":["id"]},{"required":["query"]}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_reputation_attestation_contract","title":"Get the reputation-attestation contract","description":"Return the portable attestation, trust-profile, verifier-result, endpoint-registry, and lifecycle contracts.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_lift_evidence_contract","title":"Get the Lift Evidence public-card contract","description":"Return the stable configuration-scoped public-card schema and empty public index; no results are asserted.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}]}},"bad_protocol_headers":{"content-type":"application/json","mcp-protocol-version":"2025-11-25"},"bad_protocol_error":null,"delete_status_code":null,"delete_error":null,"expired_session_status_code":null,"expired_session_error":null,"issues":["missing_session_id","bad_protocol_not_rejected"]}},"utility_coverage_probe":{"status":"missing","latency_ms":56.05,"details":{"completions":{"advertised":false,"sample_target":{"type":"resource","uri":"https://wulfkaal.github.io/afmr/index.json"},"live_probe":"not_executed"},"pagination":{"supported":false,"next_cursor_methods":[],"metadata_signal":false},"tasks":{"advertised":false,"probe_status":"missing","http_status":200},"initialize_capability_keys":["resources","tools"]}},"advanced_capabilities_probe":{"status":"warning","latency_ms":null,"details":{"capabilities":{"prompts":false,"resources":true,"completions":false,"roots":false,"sampling":false,"elicitation":false,"structured_outputs":false,"resource_links":true},"enabled_count":2,"enabled":["resource_links","resources"],"initialize_capability_keys":["resources","tools"]}},"tool_snapshot_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_historical_snapshot","current_tool_count":4}},"connector_replay_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_historical_snapshot"}},"request_association_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_request_association_capabilities_advertised"}},"interactive_flow_probe":{"status":"missing","latency_ms":null,"details":{"risk_hits":[],"safe_hits":[],"oauth_supported":false,"prompt_available":false}},"action_safety_probe":{"status":"error","latency_ms":null,"details":{"summary":{"tool_count":4,"high_risk_tools":1,"destructive_tools":0,"exec_tools":1,"egress_tools":0,"secret_tools":0,"bulk_access_tools":1,"risk_distribution":{"low":2,"medium":1,"high":1,"critical":0},"capability_distribution":{"other":1,"read":3,"exec":1,"export":1,"write":1,"filesystem":1}},"auth_present":false,"safeguard_count":1,"confirmation_signals":[]}},"official_registry_probe":{"status":"ok","latency_ms":null,"details":{"registry_source":"official_registry","registry_identifier":"ai.afmr/discovery","direct_match":true,"official_peer_count":1}},"provenance_divergence_probe":{"status":"ok","latency_ms":null,"details":{"direct_official_match":true,"registry_title":null,"server_card_title":null,"registry_version":null,"server_card_version":null,"registry_homepage":null,"server_card_homepage":null,"registry_repository":null,"server_card_repository":null,"drift_fields":[],"metadata_document_count":2}},"connector_publishability_probe":{"status":"warning","latency_ms":null,"details":{"transport":"streamable-http","tool_count":4,"high_risk_tools":1,"blockers":["transport_compliance","action_safety","server_card"],"criteria":{"remote_transport":true,"initialize":true,"tools_list":true,"protocol_version":true,"session_resume":true,"step_up_auth":true,"transport_compliance":false,"connector_replay":true,"request_association":true,"action_safety":false,"server_card":false,"tool_surface":true,"auth_flow":true}}}},"score_components":{"auth_operability_score":2.0,"error_contract_score":1.7,"rate_limit_semantics_score":2.0,"schema_completeness_score":3.0,"backward_compatibility_score":2.0,"slo_health_score":4.0,"security_hygiene_score":4.0,"task_success_score":4.0,"trust_confidence_score":1.75,"abuse_noise_ratio_score":4.0,"prompt_contract_score":2.0,"resource_contract_score":4.0,"discovery_metadata_score":4.0,"registry_consistency_score":2.0,"installability_score":4.0,"session_semantics_score":4.0,"tool_surface_design_score":3.0,"result_shape_stability_score":2.0,"oauth_interop_score":3.0,"recovery_semantics_score":0.0,"maintenance_signal_score":3.0,"adoption_signal_score":3.0,"freshness_confidence_score":3.0,"transport_fidelity_score":4.0,"spec_recency_score":2.0,"session_resume_score":3.0,"step_up_auth_score":3.0,"transport_compliance_score":2.5,"utility_coverage_score":2.0,"advanced_capability_coverage_score":3.0,"connector_publishability_score":3.0,"tool_snapshot_churn_score":3.0,"connector_replay_score":3.0,"request_association_score":3.0,"interactive_flow_safety_score":3.0,"action_safety_score":2.0,"official_registry_presence_score":4.0,"provenance_divergence_score":4.0,"safety_transparency_score":2.0,"tool_capability_clarity_score":3.0,"destructive_operation_safety_score":3.0,"egress_ssrf_resilience_score":3.0,"execution_sandbox_safety_score":2.0,"data_exfiltration_resilience_score":2.0,"least_privilege_scope_score":2.0,"secret_handling_hygiene_score":3.0,"dependency_supply_chain_signal_score":2.5,"input_sanitization_safety_score":3.0,"tool_namespace_clarity_score":4.0},"validation_schema_version":"16d1d270090d6c8f","started_at":"2026-07-31T05:24:26.830162+00:00","completed_at":"2026-07-31T05:24:28.944532+00:00"},"current_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_b0e245dfc58b2808","generated_at":"2026-07-31T06:32:48.994980+00:00","source":"current_snapshot","server":"ai.afmr/discovery","last_validated_at":"2026-07-31T05:24:28.944532+00:00","validation_age_hours":1.14,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-07-31T05:24:28.944532+00:00","age_hours":1.14,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":168.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":71.15,"raw_score":71.15,"confidence_score":76.2,"confidence_weighted_score":54.3,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":71.15,"display_score":71.15,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Allow with approval","why":"exec-capable tools + no confirmation safeguards + high-risk tools need review","next_action":"export policy, require approval for writes, add authenticated validation","reason_count":2},"production_readiness_class":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use."},"evidence_confidence":{"score":76.25,"label":"high","validation_age_hours":1.14,"live_check_count":26},"active_alerts":[]},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_b0e245dfc58b2808","generated_at":"2026-07-31T06:32:48.994980+00:00","source":"current_snapshot","server":"ai.afmr/discovery","last_validated_at":"2026-07-31T05:24:28.944532+00:00","validation_age_hours":1.14,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-07-31T05:24:28.944532+00:00","age_hours":1.14,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":168.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":71.15,"raw_score":71.15,"confidence_score":76.2,"confidence_weighted_score":54.3,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":71.15,"display_score":71.15,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Allow with approval","why":"exec-capable tools + no confirmation safeguards + high-risk tools need review","next_action":"export policy, require approval for writes, add authenticated validation","reason_count":2},"production_readiness_class":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use."},"evidence_confidence":{"score":76.25,"label":"high","validation_age_hours":1.14,"live_check_count":26},"active_alerts":[]},"snapshot_invariant":{"schema_version":"verify.snapshot_invariant.v1","server":"ai.afmr/discovery","ok":true,"surface_snapshot_ids":{"page":"trustsnap_b0e245dfc58b2808","badge":null,"report":"trustsnap_b0e245dfc58b2808","policy":null},"checked_at":"2026-07-31T06:32:49.115945+00:00"},"history":{"points":[{"timestamp":"2026-07-31T05:24:28.944532+00:00","score":71.15,"status":"healthy","latency_ms":2113.1,"tool_count":4,"prompt_count":0,"resource_count":8}],"status_counts":{"healthy":1},"score_delta_7d":null,"score_delta_30d":null,"avg_latency_ms":2113.1,"healthy_ratio_recent":1.0,"freshness_hours":1.14,"latest_status":"healthy"},"production_readiness":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use.","badge":"score-medium","critical_alerts":0},"evidence_confidence":{"score":76.25,"label":"high","reason":"Based on 1 recent validations, 26 captured checks, and validation age of 1.1 hours.","live_check_count":26,"validation_age_hours":1.14},"recommended_for":[{"label":"Claude Desktop","reason":"Claude Desktop is marked compatible with score 83."},{"label":"Smithery","reason":"Smithery is marked compatible with score 80."},{"label":"Generic Streamable HTTP","reason":"Generic Streamable HTTP is marked compatible with score 100."}],"active_alerts":[],"remediations":[{"code":"add_confirmation_semantics","severity":"high","title":"Add confirmation and dry-run semantics for risky actions","why":"High-risk write, delete, exec, or egress tools should communicate safeguards clearly.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"fix_transport_compliance","severity":"high","title":"Align session and protocol behavior with Streamable HTTP expectations","why":"Clients increasingly rely on MCP-Protocol-Version, session teardown, and expired-session semantics.","action":"Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.","playbook":["Return `Mcp-Session-Id` and `Mcp-Protocol-Version` headers consistently on streamable HTTP responses.","Honor `DELETE` session teardown and return `404` when a deleted session is reused.","Reject invalid protocol-version headers with `400 Bad Request`."],"maintainer_context":null},{"code":"enforce_request_association","severity":"high","title":"Associate roots, sampling, and elicitation with active client requests","why":"Modern MCP guidance expects roots, sampling, and elicitation traffic to be tied to an active client request instead of arriving unsolicited on idle sessions.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"publish_oauth_protected_resource","severity":"high","title":"Expose /.well-known/oauth-protected-resource","why":"Without a protected-resource document, OAuth clients cannot discover auth requirements reliably.","action":"Serve /.well-known/oauth-protected-resource and point it at your authorization server metadata.","playbook":["Serve `/.well-known/oauth-protected-resource` from the same host as the MCP endpoint.","Point it at the authorization server metadata URL.","Confirm clients receive consistent auth hints before tool execution."],"maintainer_context":null},{"code":"protect_connector_refreshes","severity":"high","title":"Keep connector refreshes backward compatible","why":"Managed connector clients freeze tool snapshots, so removed tools, new required args, and breaking output changes can break published integrations after refresh.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"publish_oauth_authorization_server","severity":"high","title":"Publish OAuth authorization-server metadata","why":"Clients need authorization-server metadata to discover issuer, endpoints, and DCR support.","action":"Publish /.well-known/oauth-authorization-server from your issuer and include registration_endpoint when supported.","playbook":["Publish `/.well-known/oauth-authorization-server` from the issuer.","Add `registration_endpoint` if DCR is supported.","Verify issuer, authorization, token, and jwks metadata are all reachable."],"maintainer_context":null},{"code":"publish_server_card","severity":"high","title":"Publish a complete server card","why":"Missing or incomplete server-card metadata weakens discovery, documentation, and trust signals.","action":"Serve /.well-known/mcp/server-card.json and include tools, prompts/resources, homepage, and support links.","playbook":["Publish `/.well-known/mcp/server-card.json`.","Include homepage, repository, support, tools, prompts/resources, and auth metadata.","Revalidate the server after publishing the card."],"maintainer_context":null},{"code":"harden_interactive_flows","severity":"high","title":"Stop asking users to paste secrets directly","why":"Public MCP servers should prefer OAuth or browser-based auth guidance over in-band secret collection.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"update_protocol_version","severity":"medium","title":"Adopt a current MCP protocol revision","why":"Older protocol revisions reduce compatibility with newer clients and registry programs.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"improve_connector_publishability","severity":"medium","title":"Close connector-publishing gaps","why":"Connector catalogs care about protocol recency, session behavior, auth clarity, and tool-surface stability.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"tighten_step_up_auth","severity":"medium","title":"Document minimal scopes and return cleaner auth challenges","why":"Modern clients expect granular scopes and step-up auth signals such as WWW-Authenticate scope hints.","action":"Return granular scopes and WWW-Authenticate challenge hints instead of forcing overly broad auth upfront.","playbook":["Advertise the narrowest viable scopes in OAuth metadata.","Return `WWW-Authenticate` challenges with scope or insufficient-scope hints when additional consent is needed.","Revalidate with both public discovery and auth-required flows."],"maintainer_context":null},{"code":"publish_openid_configuration","severity":"medium","title":"Publish OpenID configuration","why":"OIDC metadata improves token validation and client compatibility.","action":"Expose /.well-known/openid-configuration with issuer, jwks_uri, and supported grants.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"stabilize_tool_surface","severity":"medium","title":"Reduce tool-surface churn","why":"Frequent add/remove or output-shape drift makes published connectors and cached tool snapshots brittle.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"fix_prompts_list","severity":"medium","title":"Repair prompts/list or stop advertising prompts","why":"Prompt metadata should either work live or be removed from the advertised capability set.","action":"Only advertise prompts if prompts/list works and prompt arguments are documented.","playbook":["Only advertise prompts that are actually accessible.","Add prompt descriptions and argument docs.","Run a live `prompts/list` check after any prompt changes."],"maintainer_context":null},{"code":"repair_session_resume","severity":"medium","title":"Support resumable HTTP sessions cleanly","why":"Modern MCP clients increasingly expect resumable session behavior on streamable HTTP transports.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"expand_utility_coverage","severity":"low","title":"Expose modern utility surfaces like completions, pagination, or tasks","why":"Utility coverage improves interoperability with larger clients and long-lived agent workflows.","action":"Expose completions, pagination, and task metadata where supported so larger clients can plan and resume work safely.","playbook":["Advertise `completions`, pagination cursors, and `tasks` only when they are actually supported.","Return `nextCursor` on large list operations when pagination is available.","Document task support and whether it requires step-up auth."],"maintainer_context":null},{"code":"expand_advanced_capabilities","severity":"low","title":"Publish newer MCP capability signals","why":"Roots, sampling, elicitation, structured outputs, and related metadata improve client understanding and ranking.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null}],"publisher_claim":{"verified":false,"status":"unclaimed","claim_url":"https://verify.sentinelsignal.io/claim?server=ai.afmr%2Fdiscovery&source=report_json","reason_code":"machine_attention_detected","reason":"Agents and crawlers are already evaluating this server. Claim to publish authoritative owner, security, trust, and integration metadata.","score_neutral":true},"observed_attention":{"schema":"verify.observed_attention.v1","window_days":30,"level":"high","label":"High observed attention","summary":"Recent machine-readable trust and discovery activity observed for this server.","segments":{"useful_ai_user":{"level":"none","observed":false,"description":"AI-assisted user sessions such as ChatGPT/User or Claude/User."},"machine_trust_evaluator":{"level":"moderate","observed":true,"description":"Synthetic sessions inspecting multiple trust surfaces such as report, policy, ledger, badge, trust-summary, or compare."},"possible_agent_or_script":{"level":"moderate","observed":true,"description":"Structured direct sessions with rapid profile, compare, report, policy, badge, or trust-surface fan-out."},"isolated_machine_surface":{"level":"none","observed":false,"description":"Aged-out direct synthetic singleton sessions that touched a machine-readable trust surface without becoming a broader evaluator."},"ai_crawler":{"level":"none","observed":false,"description":"Known AI crawler activity such as ClaudeBot, GPTBot, or similar crawlers."},"search_crawler":{"level":"none","observed":false,"description":"Search and SEO crawler activity."},"browser_like_automation":{"level":"none","observed":false,"description":"Browser-like synthetic sessions with rapid structured endpoint activity."},"confirmed_human":{"level":"none","observed":false,"description":"Confirmed browser-session human activity."}},"surfaces_observed":{"server_profile":true,"compare":true,"compare_json":false,"compare_api":true,"report_json":false,"policy":true,"ledger":true,"badge_metadata":true,"badge_svg":false,"trust_summary":true,"mcp_tool":false},"claim_prompt":{"recommended":true,"reason":"This server has recent machine attention. A verified publisher claim can improve owner, policy, security, and trust metadata available to agents."},"notes":["Observed attention is based on segmented first-party telemetry.","Crawler and evaluator activity is not treated as confirmed human demand.","Public levels are bucketed to avoid exposing raw traffic counts."]},"owner_activation":{"claim_recommended":true,"reason":"ai_discovery_detected","headline":"AI discovery detected","message":"This server is being discovered by AI users, crawlers, or machine trust evaluators on Verify. Claim this profile to add publisher metadata, official links, a security contact, and machine-readable trust details agents can use.","claim_url":"https://verify.sentinelsignal.io/claim?server=ai.afmr%2Fdiscovery&source=report_json","trust_summary_url":"https://verify.sentinelsignal.io/v1/servers/ai.afmr/discovery/trust-summary"},"related_machine_surfaces":{"compare_index":"/compare.json","compare_api":"/v1/compare?server=ai.afmr%2Fdiscovery","trust_summary":"/v1/servers/ai.afmr/discovery/trust-summary","ledger":"/v1/servers/ai.afmr/discovery/ledger","policy":"/v1/servers/ai.afmr/discovery/policy","report":"/v1/servers/ai.afmr/discovery/report"},"intelligence_api":{"available":true,"signup_url":"https://verify.sentinelsignal.io/verify-intelligence-api","use_case":"Programmatic MCP server trust, comparison, policy, and evidence enrichment."}}