Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": false,
"confirmation_signals": [],
"safeguard_count": 1,
"summary": {
"bulk_access_tools": 1,
"capability_distribution": {
"exec": 1,
"export": 1,
"filesystem": 1,
"other": 1,
"read": 3,
"write": 1
},
"destructive_tools": 0,
"egress_tools": 0,
"exec_tools": 1,
"high_risk_tools": 1,
"risk_distribution": {
"critical": 0,
"high": 1,
"low": 2,
"medium": 1
},
"secret_tools": 0,
"tool_count": 4
}
},
"latency_ms": null,
"status": "error"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": false,
"elicitation": false,
"prompts": false,
"resource_links": true,
"resources": true,
"roots": false,
"sampling": false,
"structured_outputs": false
},
"enabled": [
"resource_links",
"resources"
],
"enabled_count": 2,
"initialize_capability_keys": [
"resources",
"tools"
]
},
"latency_ms": null,
"status": "warning"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"transport_compliance",
"action_safety",
"server_card"
],
"criteria": {
"action_safety": false,
"auth_flow": true,
"connector_replay": true,
"initialize": true,
"protocol_version": true,
"remote_transport": true,
"request_association": true,
"server_card": false,
"session_resume": true,
"step_up_auth": true,
"tool_surface": true,
"tools_list": true,
"transport_compliance": false
},
"high_risk_tools": 1,
"tool_count": 4,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"connector_replay_probe": {
"details": {
"reason": "no_historical_snapshot"
},
"latency_ms": null,
"status": "missing"
},
"determinism_probe": {
"details": {
"attempts": 2,
"baseline_signature": "f70ec5351a008209d88e3f0be501b82e5cdfedb6b528997503e0c15ec1e0f474",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 48.05,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "application/json",
"mcp-protocol-version": "2025-11-25"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"resources": {
"listChanged": false
},
"tools": {
"listChanged": false
}
},
"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.",
"protocolVersion": "2025-03-26",
"serverInfo": {
"name": "ai.afmr/discovery",
"title": "AFMR Discovery",
"version": "1.0.0",
"websiteUrl": "https://afmr.ai/"
}
}
},
"url": "https://afmr.ai/api/rpc"
},
"latency_ms": 97.85,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": false,
"prompt_available": false,
"risk_hits": [],
"safe_hits": []
},
"latency_ms": null,
"status": "missing"
},
"oauth_authorization_server": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"oauth_protected_resource": {
"details": {
"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",
"url": "https://afmr.ai/.well-known/oauth-protected-resource"
},
"latency_ms": 204.0,
"status": "error"
},
"official_registry_probe": {
"details": {
"direct_match": true,
"official_peer_count": 1,
"registry_identifier": "ai.afmr/discovery",
"registry_source": "official_registry"
},
"latency_ms": null,
"status": "ok"
},
"openid_configuration": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"probe_noise_resilience": {
"details": {
"headers": {
"content-type": "text/plain"
},
"http_status": 200,
"url": "https://afmr.ai/robots.txt"
},
"latency_ms": 45.41,
"status": "ok"
},
"prompt_get": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"prompts_list": {
"details": {
"headers": {
"content-type": "application/json",
"mcp-protocol-version": "2025-11-25"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method not found"
},
"id": 3,
"jsonrpc": "2.0"
},
"reason": "not_supported",
"url": "https://afmr.ai/api/rpc"
},
"latency_ms": 524.31,
"status": "missing"
},
"protocol_version_probe": {
"details": {
"claimed_version": "2025-03-26",
"lag_days": 244,
"latest_known_version": "2025-11-25",
"releases_behind": 2,
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "warning"
},
"provenance_divergence_probe": {
"details": {
"direct_official_match": true,
"drift_fields": [],
"metadata_document_count": 2,
"registry_homepage": null,
"registry_repository": null,
"registry_title": null,
"registry_version": null,
"server_card_homepage": null,
"server_card_repository": null,
"server_card_title": null,
"server_card_version": null
},
"latency_ms": null,
"status": "ok"
},
"request_association_probe": {
"details": {
"reason": "no_request_association_capabilities_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resource_read": {
"details": {
"headers": {
"content-type": "application/json",
"mcp-protocol-version": "2025-11-25"
},
"http_status": 200,
"payload": {
"id": 6,
"jsonrpc": "2.0",
"result": {
"contents": [
{
"mimeType": "application/json; charset=utf-8",
"name": "Canonical AFMR failure-mode registry",
"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",
"uri": "https://wulfkaal.github.io/afmr/index.json"
}
]
}
},
"resource_uri": "https://wulfkaal.github.io/afmr/index.json",
"url": "https://afmr.ai/api/rpc"
},
"latency_ms": 116.77,
"status": "ok"
},
"resources_list": {
"details": {
"headers": {
"content-type": "application/json",
"mcp-protocol-version": "2025-11-25"
},
"http_status": 200,
"payload": {
"id": 5,
"jsonrpc": "2.0",
"result": {
"resources": [
{
"description": "AFMR 1.0 machine index: 32 permanent failure-mode families in eight classes.",
"mimeType": "application/json",
"name": "Canonical AFMR failure-mode registry",
"uri": "https://wulfkaal.github.io/afmr/index.json"
},
{
"description": "Normative AFMR 1.0 specification.",
"mimeType": "text/html",
"name": "AFMR 1.0 specification",
"uri": "https://wulfkaal.github.io/afmr/spec-1.0.html"
},
{
"description": "Authoritative discovery links for AFMR.ai.",
"mimeType": "application/json",
"name": "AFMR discovery document",
"uri": "https://afmr.ai/.well-known/afmr.json"
},
{
"description": "Working Draft 0.1 schema for a signed, scoped, lifecycle-aware AFMR reputation attestation.",
"mimeType": "application/schema+json",
"name": "Reputation attestation schema",
"uri": "https://afmr.ai/standards/reputation-attestation/0.1/schema.json"
},
{
"description": "Deterministic validation, proof, scope, evidence, and lifecycle requirements.",
"mimeType": "application/json",
"name": "Reputation attestation verifier requirements",
"uri": "https://afmr.ai/standards/reputation-attestation/0.1/verifier.json"
},
{
"description": "Intentionally empty pre-publication registry; no endpoint conformance is currently claimed.",
"mimeType": "application/json",
"name": "Conforming governance-endpoint registry",
"uri": "https://afmr.ai/registries/endpoints/v0.1/index.json"
},
{
"description": "Configuration-only empty index. No measured lift results or safety claims are published.",
"mimeType": "application/json",
"name": "Lift evidence public-card index",
"uri": "https://afmr.ai/lift-evidence/index.json"
},
{
"description": "Canonical stable redacted public-card contract for configuration-scoped cohort comparisons.",
"mimeType": "application/schema+json",
"name": "Lift comparison public-card schema",
"uri": "https://wulfkaal.github.io/afmr/schemas/lift-comparison-public-card-v1.schema.json"
}
]
}
},
"url": "https://afmr.ai/api/rpc"
},
"latency_ms": 565.43,
"status": "ok"
},
"server_card": {
"details": {
"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",
"url": "https://afmr.ai/.well-known/mcp/server-card.json"
},
"latency_ms": 302.05,
"status": "error"
},
"session_resume_probe": {
"details": {
"protocol_version": "2025-03-26",
"reason": "no_session_id",
"resume_expected": true,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"step_up_auth_probe": {
"details": {
"auth_required_checks": [],
"broad_scopes": [],
"challenge_headers": [],
"minimal_scope_documented": false,
"oauth_present": false,
"scope_specificity_ratio": 0.0,
"step_up_signals": [],
"supported_scopes": []
},
"latency_ms": null,
"status": "missing"
},
"tool_snapshot_probe": {
"details": {
"current_tool_count": 4,
"reason": "no_historical_snapshot"
},
"latency_ms": null,
"status": "missing"
},
"tools_list": {
"details": {
"headers": {
"content-type": "application/json",
"mcp-protocol-version": "2025-11-25"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "Return canonical AFMR specifications, registries, schemas, endpoints, and scope boundaries.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "discover_afmr",
"title": "Discover AFMR resources"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Find exact AFMR 1.0 failure-mode records by permanent ID or bounded text query.",
"inputSchema": {
"additionalProperties": false,
"anyOf": [
{
"required": [
"id"
]
},
{
"required": [
"query"
]
}
],
"properties": {
"id": {
"description": "Exact permanent family identifier, for example AFMR-F010.",
"pattern": "^AFMR-F[0-9]{3}$",
"type": "string"
},
"limit": {
"default": 5,
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Text matched against ID, name, definition, and class.",
"maxLength": 100,
"minLength": 2,
"type": "string"
}
},
"type": "object"
},
"name": "lookup_failure_mode",
"title": "Look up AFMR failure modes"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "Return the portable attestation, trust-profile, verifier-result, endpoint-registry, and lifecycle contracts.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_reputation_attestation_contract",
"title": "Get the reputation-attestation contract"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "Return the stable configuration-scoped public-card schema and empty public index; no results are asserted.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_lift_evidence_contract",
"title": "Get the Lift Evidence public-card contract"
}
]
}
},
"url": "https://afmr.ai/api/rpc"
},
"latency_ms": 47.67,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json",
"mcp-protocol-version": "2025-11-25"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "Return canonical AFMR specifications, registries, schemas, endpoints, and scope boundaries.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "discover_afmr",
"title": "Discover AFMR resources"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Find exact AFMR 1.0 failure-mode records by permanent ID or bounded text query.",
"inputSchema": {
"additionalProperties": false,
"anyOf": [
{
"required": [
"id"
]
},
{
"required": [
"query"
]
}
],
"properties": {
"id": {
"description": "Exact permanent family identifier, for example AFMR-F010.",
"pattern": "^AFMR-F[0-9]{3}$",
"type": "string"
},
"limit": {
"default": 5,
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Text matched against ID, name, definition, and class.",
"maxLength": 100,
"minLength": 2,
"type": "string"
}
},
"type": "object"
},
"name": "lookup_failure_mode",
"title": "Look up AFMR failure modes"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "Return the portable attestation, trust-profile, verifier-result, endpoint-registry, and lifecycle contracts.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_reputation_attestation_contract",
"title": "Get the reputation-attestation contract"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "Return the stable configuration-scoped public-card schema and empty public index; no results are asserted.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_lift_evidence_contract",
"title": "Get the Lift Evidence public-card contract"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": true,
"requested_protocol_version": "2025-03-26",
"session_id_present": false,
"transport": "streamable-http"
},
"latency_ms": 53.12,
"status": "error"
},
"utility_coverage_probe": {
"details": {
"completions": {
"advertised": false,
"live_probe": "not_executed",
"sample_target": {
"type": "resource",
"uri": "https://wulfkaal.github.io/afmr/index.json"
}
},
"initialize_capability_keys": [
"resources",
"tools"
],
"pagination": {
"metadata_signal": false,
"next_cursor_methods": [],
"supported": false
},
"tasks": {
"advertised": false,
"http_status": 200,
"probe_status": "missing"
}
},
"latency_ms": 56.05,
"status": "missing"
}
},
"failures": {
"oauth_authorization_server": {
"reason": "no_authorization_server"
},
"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",
"url": "https://afmr.ai/.well-known/oauth-protected-resource"
},
"openid_configuration": {
"reason": "no_authorization_server"
},
"server_card": {
"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",
"url": "https://afmr.ai/.well-known/mcp/server-card.json"
},
"transport_compliance_probe": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json",
"mcp-protocol-version": "2025-11-25"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "Return canonical AFMR specifications, registries, schemas, endpoints, and scope boundaries.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "discover_afmr",
"title": "Discover AFMR resources"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Find exact AFMR 1.0 failure-mode records by permanent ID or bounded text query.",
"inputSchema": {
"additionalProperties": false,
"anyOf": [
{
"required": [
"id"
]
},
{
"required": [
"query"
]
}
],
"properties": {
"id": {
"description": "Exact permanent family identifier, for example AFMR-F010.",
"pattern": "^AFMR-F[0-9]{3}$",
"type": "string"
},
"limit": {
"default": 5,
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Text matched against ID, name, definition, and class.",
"maxLength": 100,
"minLength": 2,
"type": "string"
}
},
"type": "object"
},
"name": "lookup_failure_mode",
"title": "Look up AFMR failure modes"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "Return the portable attestation, trust-profile, verifier-result, endpoint-registry, and lifecycle contracts.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_reputation_attestation_contract",
"title": "Get the reputation-attestation contract"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "Return the stable configuration-scoped public-card schema and empty public index; no results are asserted.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_lift_evidence_contract",
"title": "Get the Lift Evidence public-card contract"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": true,
"requested_protocol_version": "2025-03-26",
"session_id_present": false,
"transport": "streamable-http"
}
},
"remote_url": "https://afmr.ai/api/rpc",
"server_card_payload": null,
"server_identifier": "ai.afmr/discovery"
}