{
  "contract": "sourcey.site-record/v1alpha1",
  "release_id": "sha256:f54ae5559bef1aae2cdbacb1c26d5860eeb4459221b4469e67117cc1d09a01b8",
  "snapshot_id": "sha256:9283c6c15050ec11215130918f946bc4be315920af934cec7e7128036341b6b1",
  "artifact_sha256": "sha256:3e2a90bdf650c99c288c291c45a4a1e9e0402539ca6eb3935df1ef19991519be",
  "data": {
    "entity_id": "ent_01kyh8fpe15bvn8rdb84vmk85d",
    "entity_slug": "anthropic",
    "profile": {
      "projection_contract": "sourcey.agent-readiness-projection/v1alpha1",
      "agent_readiness_profile_id": "arp_01kzf0m4x54qzpnr923g24x6x8",
      "entity_id": "ent_01kyh8fpe15bvn8rdb84vmk85d",
      "scope": {
        "product": {
          "key": "anthropic-api",
          "name": "Anthropic API"
        },
        "funnel": {
          "key": "api-service-lifecycle",
          "name": "API service lifecycle"
        }
      },
      "catalog_binding": {
        "base_release_id": "sha256:cad9f851ab1bb553246eb2fb2b2803a4741814a33ccf28997014247439b9013d",
        "entity_revision_digest": "sha256:06855089158761b10dd4a9920f4ede26ea126b0c8bb98eee8c8ac47ee36be9a4"
      },
      "declaration_revision_digest": "sha256:ace6b82971bab9d12b79eefdec2952b7e786d13a366f81f64820ed87f635b13c",
      "declaration": {
        "declaration_id": "declaration_anthropic_api_service_lifecycle",
        "provenance": {
          "repository": "sourcey/agent-ready-services",
          "commit": "62b512f0c49352e55a399ba53866a5effa431d71",
          "path": "vendors/an/anthropic.yaml",
          "git_blob_oid": "6303424b698fca745a56c9d7d28aedccf17c0d37",
          "blob_digest": "sha256:ebef97ef3bd2b3049f2b7424ddafe28eab7f8136614b17464fcb869b32957c4f"
        },
        "status": "community_declared"
      },
      "surface_catalog": {
        "assessment_targets": [
          {
            "target_id": "service-use",
            "name": "Submit Messages API requests and receive model responses",
            "interface_ids": [
              "api-service"
            ]
          }
        ],
        "participants": [
          {
            "participant_id": "anthropic",
            "roles": [
              "access_operator",
              "identity_provider",
              "operations_provider",
              "payment_provider",
              "provisioning_provider",
              "subject"
            ],
            "identity": {
              "entity_id": "ent_01kyh8fpe15bvn8rdb84vmk85d"
            }
          }
        ],
        "resources": [
          {
            "resource_id": "api-errors",
            "uri": "https://platform.claude.com/docs/en/api/errors",
            "roles": [
              "documentation",
              "operations",
              "recovery",
              "status"
            ],
            "operated_by_participant_id": "anthropic",
            "standard_bindings": []
          },
          {
            "resource_id": "api-overview",
            "uri": "https://platform.claude.com/docs/en/cli-sdks-libraries/overview",
            "roles": [
              "discovery",
              "documentation",
              "operations"
            ],
            "operated_by_participant_id": "anthropic",
            "standard_bindings": []
          },
          {
            "resource_id": "authentication",
            "uri": "https://platform.claude.com/docs/en/api/overview",
            "roles": [
              "authentication",
              "descriptor",
              "documentation"
            ],
            "operated_by_participant_id": "anthropic",
            "standard_bindings": []
          },
          {
            "resource_id": "billing-checkout",
            "uri": "https://support.claude.com/en/articles/8977456-how-do-i-pay-for-my-claude-api-usage",
            "roles": [
              "checkout",
              "documentation"
            ],
            "operated_by_participant_id": "anthropic",
            "standard_bindings": []
          },
          {
            "resource_id": "console-access",
            "uri": "https://platform.claude.com/login?returnTo=%2Fsettings%2Fkeys",
            "roles": [
              "access"
            ],
            "operated_by_participant_id": "anthropic",
            "standard_bindings": []
          },
          {
            "resource_id": "messages-create",
            "uri": "https://platform.claude.com/docs/en/api/messages/create",
            "roles": [
              "documentation",
              "provisioning",
              "status"
            ],
            "operated_by_participant_id": "anthropic",
            "standard_bindings": []
          },
          {
            "resource_id": "messages-create-response",
            "uri": "https://platform.claude.com/docs/en/api/typescript/messages/create",
            "roles": [
              "documentation",
              "provisioning",
              "status"
            ],
            "operated_by_participant_id": "anthropic",
            "standard_bindings": []
          },
          {
            "resource_id": "messages-request-response-guide",
            "uri": "https://platform.claude.com/docs/en/build-with-claude/working-with-messages",
            "roles": [
              "documentation",
              "provisioning",
              "status"
            ],
            "operated_by_participant_id": "anthropic",
            "standard_bindings": []
          },
          {
            "resource_id": "pricing",
            "uri": "https://platform.claude.com/docs/en/about-claude/pricing",
            "roles": [
              "pricing"
            ],
            "operated_by_participant_id": "anthropic",
            "standard_bindings": []
          },
          {
            "resource_id": "rate-limits",
            "uri": "https://platform.claude.com/docs/en/api/rate-limits",
            "roles": [
              "documentation",
              "operations",
              "status"
            ],
            "operated_by_participant_id": "anthropic",
            "standard_bindings": []
          },
          {
            "resource_id": "service-terms",
            "uri": "https://www.anthropic.com/legal/commercial-terms",
            "roles": [
              "terms"
            ],
            "operated_by_participant_id": "anthropic",
            "standard_bindings": []
          },
          {
            "resource_id": "support",
            "uri": "https://support.claude.com/en/articles/8114535-where-can-i-go-for-claude-api-support-and-assistance",
            "roles": [
              "documentation",
              "recovery"
            ],
            "operated_by_participant_id": "anthropic",
            "standard_bindings": []
          }
        ],
        "endpoints": [
          {
            "endpoint_id": "messages-api",
            "uri": "https://api.anthropic.com/v1/messages",
            "transport": "http",
            "roles": [
              "service"
            ],
            "operated_by_participant_id": "anthropic",
            "standard_bindings": []
          },
          {
            "endpoint_id": "registration",
            "uri": "https://platform.claude.com/login?returnTo=%2Fsettings%2Fkeys",
            "transport": "http",
            "roles": [
              "registration"
            ],
            "operated_by_participant_id": "anthropic",
            "standard_bindings": []
          }
        ],
        "interfaces": [
          {
            "interface_id": "api-authentication",
            "modality": "network_api",
            "functions": [
              "authentication"
            ],
            "endpoint_ids": [],
            "resource_ids": [
              "authentication"
            ],
            "operated_by_participant_id": "anthropic",
            "standard_bindings": []
          },
          {
            "interface_id": "api-service",
            "modality": "network_api",
            "functions": [
              "service_operation"
            ],
            "endpoint_ids": [
              "messages-api"
            ],
            "resource_ids": [
              "api-errors",
              "api-overview",
              "rate-limits"
            ],
            "operated_by_participant_id": "anthropic",
            "standard_bindings": []
          }
        ],
        "relations": [
          {
            "relation_id": "authentication-authenticates-api",
            "kind": "authenticates",
            "from": {
              "node_kind": "interface",
              "node_id": "api-authentication"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "api-service"
            }
          },
          {
            "relation_id": "console-precedes-authentication",
            "kind": "precedes",
            "from": {
              "node_kind": "resource",
              "node_id": "console-access"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "api-authentication"
            }
          },
          {
            "relation_id": "errors-describe-api",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "api-errors"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "api-service"
            }
          },
          {
            "relation_id": "messages-create-describes-api",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "messages-create"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "api-service"
            }
          },
          {
            "relation_id": "messages-create-response-describes-api",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "messages-create-response"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "api-service"
            }
          },
          {
            "relation_id": "messages-guide-describes-api",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "messages-request-response-guide"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "api-service"
            }
          },
          {
            "relation_id": "overview-describes-api",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "api-overview"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "api-service"
            }
          }
        ],
        "surface_exclusions": [
          {
            "exclusion_id": "separate-eligibility-resource",
            "role": "eligibility",
            "rationale": "Applicable access conditions are published within the service terms; no separate eligibility resource is declared."
          }
        ]
      },
      "lifecycle": "active",
      "effective_from": "2026-08-20T14:33:24.000Z",
      "revision_digest": "sha256:f211e8bf4fc625010c0e14ab99ac29e8d6b57aceba59455114a801d2e542c6f3",
      "policy_digest": "sha256:57bf95fd6d0fe6fe9173a68b60e8d8dc2179b357c88ff4349675a72d0e1d4139",
      "policy_version": "service-use-2026-08-20-public-evidence-r9",
      "policy_as_of": "2026-08-20T00:00:00Z",
      "assessment_basis": {
        "principal": "authorized_human_or_organization",
        "initial_state": {
          "product_specific_account": false,
          "product_credentials": false,
          "paid_subscription": false,
          "provisioned_resource": false,
          "external_identity": "only_when_declared_by_exact_funnel"
        },
        "permitted_human_boundaries": [
          "account_ownership_confirmation",
          "delegated_identity_consent",
          "regulated_approval",
          "final_payment_or_irreversible_commitment"
        ],
        "required_handoff_properties": [
          "exact_disclosure",
          "resumable_handoff",
          "deterministic_continuation"
        ],
        "forbidden_substitutions": [
          "captcha_solving",
          "human_password_or_session_sharing",
          "concealed_agent_identity",
          "invented_eligibility",
          "unbound_out_of_band_code",
          "vendor_policy_bypass",
          "unapproved_consequential_action"
        ],
        "success": {
          "target_coverage": "every_declared_target",
          "interface_coverage": "at_least_one_declared_alternative",
          "authority": "scoped",
          "failure_semantics": "documented",
          "recovery": "supported"
        },
        "observed_assessment": {
          "allowed_sources": [
            "public_documentation",
            "public_metadata",
            "public_endpoints",
            "non_mutating_interaction",
            "operator_attested_public_observation"
          ],
          "consequential_claims": "certification_required"
        }
      },
      "overall_outcome": "constrained",
      "public_state": "limited",
      "state_label": "Limited",
      "grade": "B+",
      "grade_derivation": {
        "label": "Five-stage Agent Readiness report card",
        "explanation": "A through C grades count Limited stages; D and F reflect actual Blocked stages by lifecycle severity.",
        "coverage_rule": "Every core graded metric must have supported, fresh, non-conflicting evidence. Barrier checks constrain the report when verified and cap an otherwise higher grade at B+ while unverified.",
        "outcome_rule": "Each stage takes its worst core metric or verified barrier, and the overall grade is derived from the five stage states plus the explicit unverified-barrier cap."
      },
      "publication": {
        "visibility": "discoverable",
        "reasons": []
      },
      "primary_finding": {
        "stage": "evaluate",
        "stage_label": "Evaluate",
        "public_state": "limited",
        "finding": {
          "signal_code": "eligibility_decidability",
          "condition": "Can an agent decide every material eligibility condition before commitment?",
          "finding": "Only some material eligibility conditions are decidable before commitment.",
          "context": "Anthropic's Commercial Terms identify governed users and material restrictions, but the retained evidence does not make every service-access condition decidable before commitment."
        }
      },
      "limitations": [
        {
          "stage": "evaluate",
          "stage_label": "Evaluate",
          "finding": {
            "signal_code": "eligibility_decidability",
            "condition": "Can an agent decide every material eligibility condition before commitment?",
            "finding": "Only some material eligibility conditions are decidable before commitment.",
            "context": "Anthropic's Commercial Terms identify governed users and material restrictions, but the retained evidence does not make every service-access condition decidable before commitment."
          },
          "remediation": {
            "signal_code": "eligibility_decidability",
            "code": "improve.evaluate.eligibility_decidability",
            "instruction": "State every material eligibility condition and required input explicitly."
          }
        },
        {
          "stage": "operate",
          "stage_label": "Operate",
          "finding": {
            "signal_code": "failure_contract",
            "condition": "Can an agent handle applicable failure modes safely?",
            "finding": "Safe failure handling is documented only partially.",
            "context": "Anthropic documents errors, timeouts, and retry guidance, but not complete idempotency, cancellation, and reconciliation semantics for the assessed operations."
          },
          "remediation": {
            "signal_code": "failure_contract",
            "code": "improve.operate.failure_contract",
            "instruction": "Document applicable structured errors, retry, cancellation, and reconciliation semantics."
          }
        },
        {
          "stage": "operate",
          "stage_label": "Operate",
          "finding": {
            "signal_code": "credential_lifecycle",
            "condition": "Can an agent manage credential expiry, rotation, revocation, compromise, and recovery?",
            "finding": "Only part of the credential lifecycle is agent-operable.",
            "context": "The retained documentation lists API lifecycle operations including POST /v1/oauth/token for obtaining short-lived access tokens, alongside Console management and API key usage. However, full programmatically actionable credential rotation, revocation, compromise handling, and recovery procedures are not fully detailed in the provided body text."
          },
          "remediation": {
            "signal_code": "credential_lifecycle",
            "code": "improve.operate.credential_lifecycle",
            "instruction": "Provide scoped expiry, rotation, revocation, compromise, and recovery operations."
          }
        }
      ],
      "stages": [
        {
          "stage": "evaluate",
          "stage_label": "Evaluate",
          "outcome": "constrained",
          "public_state": "limited",
          "state_label": "Limited",
          "primary_finding": {
            "signal_code": "eligibility_decidability",
            "condition": "Can an agent decide every material eligibility condition before commitment?",
            "finding": "Only some material eligibility conditions are decidable before commitment.",
            "context": "Anthropic's Commercial Terms identify governed users and material restrictions, but the retained evidence does not make every service-access condition decidable before commitment."
          },
          "secondary_context": [
            {
              "signal_code": "structured_evaluation_discovery",
              "condition": "Are verified structured discovery artifacts available?",
              "finding": "Current admissible evidence does not resolve this finding."
            },
            {
              "signal_code": "verified_web_agent_access",
              "condition": "Does the vendor deliberately describe access for web agents?",
              "finding": "Current admissible evidence does not resolve this finding."
            },
            {
              "signal_code": "service_discovery",
              "condition": "Can an agent find the exact service and its stable entrypoints?",
              "finding": "The exact service and stable evaluation or access entrypoints are publicly discoverable.",
              "context": "Anthropic provides public documentation for the Claude API, detailing stable tools including the ant CLI, client SDKs (Python, TypeScript, C#, Go, Java, PHP, Ruby), and a link to the full API reference."
            },
            {
              "signal_code": "terms_access",
              "condition": "Can an agent retrieve and understand the applicable commitment terms?",
              "finding": "Applicable terms are stable, readable, retrievable, and materially complete.",
              "context": "The applicable Commercial Terms of Service for Anthropic API offerings are retrievable, readable, and materially complete, incorporating the Usage Policy, Supported Regions Policy, Service Specific Terms, DPA, and Model Pricing Page."
            },
            {
              "signal_code": "pricing_decidability",
              "condition": "Can an agent estimate cost or confirm no-charge status before commitment?",
              "finding": "Price or no-charge status, variables, currency, and material conditions are explicit.",
              "context": "Pricing documentation explicitly details the billing structure, variables, currency (USD), CCU conversion rates ($0.01 per CCU), metering cadence, and payment models for the Claude platform and API."
            }
          ],
          "signals": [
            {
              "signal_code": "eligibility_decidability",
              "evaluation_role": "graded",
              "required": true,
              "value": "partial",
              "value_label": "Limited",
              "outcome": "constrained",
              "public_state": "limited",
              "condition": "Can an agent decide every material eligibility condition before commitment?",
              "finding": "Only some material eligibility conditions are decidable before commitment.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:56:45.993Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "service-terms"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:13089226495440faaad9594573cd4fc9e9d1afe252b020a7884f1b6b9417efac",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:320d7d9c341c295e204d73de2bd98a2ff972e2e5823a135f618c78dcdb0d049b",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:5b6f18dd2e11f6b7c2902632d64d6b839c8ac050c4ce0ebd1f1bb1c6656e5294",
                    "sha256:fc0d19b6819c6ab4ffffdca6d0f39bfeb4c33c33f5b6a56c94f954dc6023536c"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "service-terms"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:320d7d9c341c295e204d73de2bd98a2ff972e2e5823a135f618c78dcdb0d049b",
                      "start_byte": 6441,
                      "end_byte": 7259,
                      "value_digest": "sha256:7b12ebfeacfd31dd8a2c3815658b15222a2455e47e83675e4e35f69bd49de453"
                    },
                    {
                      "artifact_digest": "sha256:320d7d9c341c295e204d73de2bd98a2ff972e2e5823a135f618c78dcdb0d049b",
                      "start_byte": 7260,
                      "end_byte": 8070,
                      "value_digest": "sha256:993fc060315fa82edd82647ef9f71e8aa563ea5943f6afc5bb3eb424ebc9446b"
                    }
                  ]
                }
              ],
              "note": "Anthropic's Commercial Terms identify governed users and material restrictions, but the retained evidence does not make every service-access condition decidable before commitment.",
              "remediation": {
                "signal_code": "eligibility_decidability",
                "code": "improve.evaluate.eligibility_decidability",
                "instruction": "State every material eligibility condition and required input explicitly."
              }
            },
            {
              "signal_code": "pricing_decidability",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Can an agent estimate cost or confirm no-charge status before commitment?",
              "finding": "Price or no-charge status, variables, currency, and material conditions are explicit.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:56:27.347Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "pricing"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:e4a37e9db7ed58d94e189f5928d7718494800d367555c7fb618b8fb6983d51b0",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:34333155f07ef4dd1cccedd5b41c51e06f0d0b49d0a18678b48db510addf52ba",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:9c224c9d37efd6f1c44959466b46f5c47099843b6a80c2a8483083b8263918e5",
                    "sha256:a512f6ca611e46b66a0fb8f26917ca9b5500de167529f1511df223a67ed5e4f7"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "pricing"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:a512f6ca611e46b66a0fb8f26917ca9b5500de167529f1511df223a67ed5e4f7",
                      "start_byte": 13022,
                      "end_byte": 13804,
                      "value_digest": "sha256:ad67c454d06c14739619ac18ece32d61b8c3cd8968aaeb893884b9c5ffbbf95a"
                    },
                    {
                      "artifact_digest": "sha256:a512f6ca611e46b66a0fb8f26917ca9b5500de167529f1511df223a67ed5e4f7",
                      "start_byte": 13805,
                      "end_byte": 14601,
                      "value_digest": "sha256:0e64f5c2d94c3cab19a4126064e130a210ebe02f65ede5e566d49eaf1fa57632"
                    }
                  ]
                }
              ],
              "note": "Pricing documentation explicitly details the billing structure, variables, currency (USD), CCU conversion rates ($0.01 per CCU), metering cadence, and payment models for the Claude platform and API."
            },
            {
              "signal_code": "service_discovery",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Can an agent find the exact service and its stable entrypoints?",
              "finding": "The exact service and stable evaluation or access entrypoints are publicly discoverable.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:56:12.105Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "api-overview"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:cd4add54ad6b5db1b8b032f93552712bf7c62d965724cb26603811a23ae55252",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:135e007c5ec9ca934a4fab9a84c6a28e7f14cbdc28f000b0db99c74bfcc35c0c",
                    "sha256:209160597ca736775a5c08324f7f3f6170dffba734fac6fa96510862b9f406f8",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:a34e4bd7d0dbb245e7d90b946ffe135f47e7469e19a97755df6679b6e7d90450"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "api-overview"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:209160597ca736775a5c08324f7f3f6170dffba734fac6fa96510862b9f406f8",
                      "start_byte": 6853,
                      "end_byte": 7655,
                      "value_digest": "sha256:9e5165c908bfb3066e5ca2487e0a7bbbd0d77140d26b6f033c524916ef2b88c0"
                    },
                    {
                      "artifact_digest": "sha256:209160597ca736775a5c08324f7f3f6170dffba734fac6fa96510862b9f406f8",
                      "start_byte": 7656,
                      "end_byte": 8455,
                      "value_digest": "sha256:0f4cce58175dc961d05e3e9478ad085e9e4d6df5dea01148d79bf0c64a6093a0"
                    }
                  ]
                }
              ],
              "note": "Anthropic provides public documentation for the Claude API, detailing stable tools including the ant CLI, client SDKs (Python, TypeScript, C#, Go, Java, PHP, Ruby), and a link to the full API reference."
            },
            {
              "signal_code": "structured_evaluation_discovery",
              "evaluation_role": "informational",
              "required": false,
              "value": "unknown",
              "value_label": "Unknown",
              "outcome": "unknown",
              "public_state": "unknown",
              "condition": "Are verified structured discovery artifacts available?",
              "finding": "Current admissible evidence does not resolve this finding.",
              "evidence_status": "missing",
              "freshness": "unknown",
              "tested_surfaces": [],
              "determination_bases": []
            },
            {
              "signal_code": "terms_access",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Can an agent retrieve and understand the applicable commitment terms?",
              "finding": "Applicable terms are stable, readable, retrievable, and materially complete.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:56:45.993Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "service-terms"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:13089226495440faaad9594573cd4fc9e9d1afe252b020a7884f1b6b9417efac",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:320d7d9c341c295e204d73de2bd98a2ff972e2e5823a135f618c78dcdb0d049b",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:5b6f18dd2e11f6b7c2902632d64d6b839c8ac050c4ce0ebd1f1bb1c6656e5294",
                    "sha256:f14ec62ca7a56a21da38f65a7df3a4ebeae88394f69f6116a815abd7a5cb8670"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "service-terms"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:320d7d9c341c295e204d73de2bd98a2ff972e2e5823a135f618c78dcdb0d049b",
                      "start_byte": 30524,
                      "end_byte": 31325,
                      "value_digest": "sha256:242a3ca21150e7d2c2a9c28411e671d8fe47fa4c0786ec8f32fab1b95559f004"
                    },
                    {
                      "artifact_digest": "sha256:320d7d9c341c295e204d73de2bd98a2ff972e2e5823a135f618c78dcdb0d049b",
                      "start_byte": 6441,
                      "end_byte": 7259,
                      "value_digest": "sha256:7b12ebfeacfd31dd8a2c3815658b15222a2455e47e83675e4e35f69bd49de453"
                    }
                  ]
                }
              ],
              "note": "The applicable Commercial Terms of Service for Anthropic API offerings are retrievable, readable, and materially complete, incorporating the Usage Policy, Supported Regions Policy, Service Specific Terms, DPA, and Model Pricing Page."
            },
            {
              "signal_code": "verified_web_agent_access",
              "evaluation_role": "informational",
              "required": false,
              "value": "unknown",
              "value_label": "Unknown",
              "outcome": "unknown",
              "public_state": "unknown",
              "condition": "Does the vendor deliberately describe access for web agents?",
              "finding": "Current admissible evidence does not resolve this finding.",
              "evidence_status": "missing",
              "freshness": "unknown",
              "tested_surfaces": [],
              "determination_bases": []
            }
          ],
          "blockers": [],
          "remediations": [
            {
              "signal_code": "eligibility_decidability",
              "code": "improve.evaluate.eligibility_decidability",
              "instruction": "State every material eligibility condition and required input explicitly."
            }
          ]
        },
        {
          "stage": "sign_up",
          "stage_label": "Sign up",
          "outcome": "pass",
          "public_state": "ready",
          "state_label": "Ready",
          "primary_finding": {
            "signal_code": "access_entrypoint_stability",
            "condition": "Is there a stable route to begin obtaining service access?",
            "finding": "A stable canonical route begins the required access bootstrap.",
            "context": "A stable entrypoint is established by the Sign In page displaying options for 'Console login' and 'Log in'."
          },
          "secondary_context": [
            {
              "signal_code": "access_control_operability",
              "condition": "Can an agent operate the access controls and safe handoffs deterministically?",
              "finding": "Current admissible evidence does not resolve this finding.",
              "context": "The retained page displays sign-in navigation and links to the console, but does not provide access control forms or validation state to evaluate deterministic operability."
            },
            {
              "signal_code": "captcha_compatible_access",
              "condition": "Can an agent obtain access without an unsupported CAPTCHA boundary?",
              "finding": "Current admissible evidence does not resolve this finding.",
              "context": "The evaluated public entrypoints do not expose a CAPTCHA, but the retained non-consequential capture does not establish the complete access flow or a verified-agent alternative."
            },
            {
              "signal_code": "phone_verification_compatible",
              "condition": "Can required phone verification be completed through a supported boundary?",
              "finding": "Current admissible evidence does not resolve this finding.",
              "context": "The retained evidence does not mention phone verification requirements or supported resumable handoffs."
            },
            {
              "signal_code": "delegated_identity_access",
              "condition": "Can an agent obtain scoped, revocable authority for this service?",
              "finding": "Scoped revocable credentials or delegated authorization have explicit consent and resumption boundaries.",
              "context": "The Claude API supports scoped programmatic authorization via API keys or short-lived Bearer access tokens obtained through Workload Identity Federation using POST /v1/oauth/token."
            }
          ],
          "signals": [
            {
              "signal_code": "access_control_operability",
              "evaluation_role": "barrier",
              "required": false,
              "value": "unknown",
              "value_label": "Unknown",
              "outcome": "unknown",
              "public_state": "unknown",
              "condition": "Can an agent operate the access controls and safe handoffs deterministically?",
              "finding": "Current admissible evidence does not resolve this finding.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:57:01.315Z",
              "tested_surfaces": [
                {
                  "node_kind": "endpoint",
                  "node_id": "registration"
                }
              ],
              "assessment_method": {
                "name": "bounded-headless-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f1212e8cd082308cfde3c097bc933c4a4b72046b1f242205c3e27a3b020b3311"
              },
              "determination_bases": [],
              "note": "The retained page displays sign-in navigation and links to the console, but does not provide access control forms or validation state to evaluate deterministic operability."
            },
            {
              "signal_code": "access_entrypoint_stability",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Is there a stable route to begin obtaining service access?",
              "finding": "A stable canonical route begins the required access bootstrap.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:57:01.315Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "console-access"
                }
              ],
              "assessment_method": {
                "name": "bounded-headless-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f1212e8cd082308cfde3c097bc933c4a4b72046b1f242205c3e27a3b020b3311"
              },
              "determination_bases": [
                {
                  "kind": "direct_observation",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:47fe60252673e7cfa12cd81575a8aadc47de981e7c8e68c7fc2f3f096f06c374",
                      "capture_rung": "headless"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:62604c034df1eaaf6f98fff217f85cea9f453c876e96f6622bebec355c347c36",
                    "sha256:72f3fc72abb80022fc36e5557cbb194e9626d3b10ac448ffcfa2a735b9e5ba65",
                    "sha256:82188ad56a39354c69601a8bad0bc0abf1005896e808bf004d046a7044ff278f",
                    "sha256:83a8d100e28b2ba962aee10273052c140655b2d067e14884cf7b556f0f1f67aa",
                    "sha256:fea9ac14ecc4b9e843c472c7908a5b67ce05767760c4ad827fb6dce2ac81de66"
                  ],
                  "locators": [
                    {
                      "artifact_digest": "sha256:fea9ac14ecc4b9e843c472c7908a5b67ce05767760c4ad827fb6dce2ac81de66",
                      "start_byte": 5046,
                      "end_byte": 5849,
                      "value_digest": "sha256:e868ee5372d7cc720d2c283e4182e38f9acb6fc0b7e8070d33ff4ba7cac9343f"
                    }
                  ]
                }
              ],
              "note": "A stable entrypoint is established by the Sign In page displaying options for 'Console login' and 'Log in'."
            },
            {
              "signal_code": "captcha_compatible_access",
              "evaluation_role": "barrier",
              "required": false,
              "value": "unknown",
              "value_label": "Unknown",
              "outcome": "unknown",
              "public_state": "unknown",
              "condition": "Can an agent obtain access without an unsupported CAPTCHA boundary?",
              "finding": "Current admissible evidence does not resolve this finding.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:57:01.315Z",
              "tested_surfaces": [
                {
                  "node_kind": "endpoint",
                  "node_id": "registration"
                },
                {
                  "node_kind": "resource",
                  "node_id": "console-access"
                }
              ],
              "assessment_method": {
                "name": "bounded-headless-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f1212e8cd082308cfde3c097bc933c4a4b72046b1f242205c3e27a3b020b3311"
              },
              "determination_bases": [],
              "note": "The evaluated public entrypoints do not expose a CAPTCHA, but the retained non-consequential capture does not establish the complete access flow or a verified-agent alternative."
            },
            {
              "signal_code": "delegated_identity_access",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Can an agent obtain scoped, revocable authority for this service?",
              "finding": "Scoped revocable credentials or delegated authorization have explicit consent and resumption boundaries.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:56:20.971Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "authentication"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:b9818d3bc057aad16bbf7ab7b956531a348d87c9e64e52ebd6a6f1619c471844",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:3facac81209ec9ed618cfe7848c4f7a20f8de9ef6c19e42bc2d40ffc0b781126",
                    "sha256:49870b90747b00264358cbd84b185be952af05d27e5164b00a5b1ed23a59fa22",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:d05646f71cf3a1db3288620b59fee744fde0687e7eb7317712eacd4aa024f1ee"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "authentication"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:d05646f71cf3a1db3288620b59fee744fde0687e7eb7317712eacd4aa024f1ee",
                      "start_byte": 11058,
                      "end_byte": 11870,
                      "value_digest": "sha256:441dbecd60516afb48f7910eda8f77d406d9d7409a94e937673810975ad4c591"
                    },
                    {
                      "artifact_digest": "sha256:d05646f71cf3a1db3288620b59fee744fde0687e7eb7317712eacd4aa024f1ee",
                      "start_byte": 13472,
                      "end_byte": 14274,
                      "value_digest": "sha256:93b5b59635c0d96ea11a43e9258bff688b1c73bc081c061e5ccb4f9615859f1d"
                    }
                  ]
                }
              ],
              "note": "The Claude API supports scoped programmatic authorization via API keys or short-lived Bearer access tokens obtained through Workload Identity Federation using POST /v1/oauth/token."
            },
            {
              "signal_code": "phone_verification_compatible",
              "evaluation_role": "barrier",
              "required": false,
              "value": "unknown",
              "value_label": "Unknown",
              "outcome": "unknown",
              "public_state": "unknown",
              "condition": "Can required phone verification be completed through a supported boundary?",
              "finding": "Current admissible evidence does not resolve this finding.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:57:01.315Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "console-access"
                }
              ],
              "assessment_method": {
                "name": "bounded-headless-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f1212e8cd082308cfde3c097bc933c4a4b72046b1f242205c3e27a3b020b3311"
              },
              "determination_bases": [],
              "note": "The retained evidence does not mention phone verification requirements or supported resumable handoffs."
            }
          ],
          "blockers": [],
          "remediations": []
        },
        {
          "stage": "pay",
          "stage_label": "Pay",
          "outcome": "pass",
          "public_state": "ready",
          "state_label": "Ready",
          "primary_finding": {
            "signal_code": "commitment_disclosure",
            "condition": "Is the exact commercial commitment disclosed before authorization?",
            "finding": "Charge or no-charge status, currency, recurrence, and material conditions are disclosed.",
            "context": "Anthropic discloses its pricing commitments for Claude Platform on AWS, detailing the $0.01 per CCU billing unit price, hourly metering billing cadence to AWS Marketplace, and postpaid payment model."
          },
          "secondary_context": [
            {
              "signal_code": "checkout_operability",
              "condition": "Can an agent construct checkout, hand off approval safely, and resume?",
              "finding": "Current admissible evidence does not resolve this finding.",
              "context": "The retained evidence describes buying prepaid usage credits and configuring auto-reload within the Console settings, but it does not establish deterministic checkout construction, handoff approval, or automated resumption mechanics for an agent."
            },
            {
              "signal_code": "payment_authorization",
              "condition": "Can payment be authorized within scoped agent or explicit human authority?",
              "finding": "Current admissible evidence does not resolve this finding.",
              "context": "The evidence outlines options for updating Console payment card details or paying Stripe invoices, but it does not document a delegated payment authority rail or explicit human-confirmed authorization workflow with receipts."
            },
            {
              "signal_code": "self_service_purchase",
              "condition": "Is a direct self-service path to paid access documented?",
              "finding": "A documented direct purchase path reaches paid access without a vendor decision point.",
              "context": "Anthropic documents a self-service purchase path for Claude API access where Console users with Admin or Billing roles can directly buy prepaid usage credits under Settings > Billing without a vendor decision point."
            }
          ],
          "signals": [
            {
              "signal_code": "checkout_operability",
              "evaluation_role": "barrier",
              "required": false,
              "value": "unknown",
              "value_label": "Unknown",
              "outcome": "unknown",
              "public_state": "unknown",
              "condition": "Can an agent construct checkout, hand off approval safely, and resume?",
              "finding": "Current admissible evidence does not resolve this finding.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:56:07.353Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "billing-checkout"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [],
              "note": "The retained evidence describes buying prepaid usage credits and configuring auto-reload within the Console settings, but it does not establish deterministic checkout construction, handoff approval, or automated resumption mechanics for an agent."
            },
            {
              "signal_code": "commitment_disclosure",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Is the exact commercial commitment disclosed before authorization?",
              "finding": "Charge or no-charge status, currency, recurrence, and material conditions are disclosed.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:56:27.347Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "pricing"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:e4a37e9db7ed58d94e189f5928d7718494800d367555c7fb618b8fb6983d51b0",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:34333155f07ef4dd1cccedd5b41c51e06f0d0b49d0a18678b48db510addf52ba",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:9c224c9d37efd6f1c44959466b46f5c47099843b6a80c2a8483083b8263918e5",
                    "sha256:a512f6ca611e46b66a0fb8f26917ca9b5500de167529f1511df223a67ed5e4f7"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "pricing"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:a512f6ca611e46b66a0fb8f26917ca9b5500de167529f1511df223a67ed5e4f7",
                      "start_byte": 13022,
                      "end_byte": 13804,
                      "value_digest": "sha256:ad67c454d06c14739619ac18ece32d61b8c3cd8968aaeb893884b9c5ffbbf95a"
                    },
                    {
                      "artifact_digest": "sha256:a512f6ca611e46b66a0fb8f26917ca9b5500de167529f1511df223a67ed5e4f7",
                      "start_byte": 13805,
                      "end_byte": 14601,
                      "value_digest": "sha256:0e64f5c2d94c3cab19a4126064e130a210ebe02f65ede5e566d49eaf1fa57632"
                    }
                  ]
                }
              ],
              "note": "Anthropic discloses its pricing commitments for Claude Platform on AWS, detailing the $0.01 per CCU billing unit price, hourly metering billing cadence to AWS Marketplace, and postpaid payment model."
            },
            {
              "signal_code": "payment_authorization",
              "evaluation_role": "barrier",
              "required": false,
              "value": "unknown",
              "value_label": "Unknown",
              "outcome": "unknown",
              "public_state": "unknown",
              "condition": "Can payment be authorized within scoped agent or explicit human authority?",
              "finding": "Current admissible evidence does not resolve this finding.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:56:07.353Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "billing-checkout"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [],
              "note": "The evidence outlines options for updating Console payment card details or paying Stripe invoices, but it does not document a delegated payment authority rail or explicit human-confirmed authorization workflow with receipts."
            },
            {
              "signal_code": "self_service_purchase",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Is a direct self-service path to paid access documented?",
              "finding": "A documented direct purchase path reaches paid access without a vendor decision point.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:56:07.353Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "billing-checkout"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:b4e6f04cdf3c4569636381ac1ca34f0af89e70bb4bf61ac2a71e486170a27d85",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:259f19a07e43c4b24ed18ed52d6ff9520c0118cd151b294f6caeab5fd384cdd9",
                    "sha256:4b369a94c0d865b16ab07baa6794d5ebd39721d84b9ec1d0d9678cb7260a503e",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:b541cbf25cef8b2b905a2550f506ce4be073a2170236e86ee2822eb47c61e0c3"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "billing-checkout"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:4b369a94c0d865b16ab07baa6794d5ebd39721d84b9ec1d0d9678cb7260a503e",
                      "start_byte": 69177,
                      "end_byte": 69976,
                      "value_digest": "sha256:3b4cd8c0aa0baec9a7374592856f12e4e3abb131d9a5315bb9bf802fc68a4737"
                    },
                    {
                      "artifact_digest": "sha256:4b369a94c0d865b16ab07baa6794d5ebd39721d84b9ec1d0d9678cb7260a503e",
                      "start_byte": 70774,
                      "end_byte": 71568,
                      "value_digest": "sha256:98da0381b40237994834898163334e3ffc7402990ee70c678787a720930fd9ae"
                    }
                  ]
                }
              ],
              "note": "Anthropic documents a self-service purchase path for Claude API access where Console users with Admin or Billing roles can directly buy prepaid usage credits under Settings > Billing without a vendor decision point."
            }
          ],
          "blockers": [],
          "remediations": []
        },
        {
          "stage": "provision",
          "stage_label": "Provision",
          "outcome": "pass",
          "public_state": "ready",
          "state_label": "Ready",
          "primary_finding": {
            "signal_code": "provisioning_operability",
            "condition": "Can provisioning be initiated within supported agent authority?",
            "finding": "Provisioning is machine-triggerable or follows deterministically from an allowed handoff.",
            "context": "Message creation can be initiated programmatically via direct model prompting using supported SDKs and API calls like anthropic.Anthropic().messages.create()."
          },
          "secondary_context": [
            {
              "signal_code": "access_material_delivery",
              "condition": "Can usable access material be delivered securely to an authorized agent?",
              "finding": "Credentials, grants, or configuration are delivered through a documented agent-usable flow.",
              "context": "A documented Workload Identity Federation token endpoint returns short-lived bearer access material programmatically."
            },
            {
              "signal_code": "provisioning_completion",
              "condition": "Can an agent determine successful provisioning completion and reconcile asynchronous failure?",
              "finding": "A synchronous success response returns a usable created resource or access material; otherwise asynchronous work exposes progress, terminal state, reconciliation, and a documented bound.",
              "context": "Creating a message via the Messages API is a synchronous request that directly returns a created message object containing a usable result, identifier, and execution usage."
            }
          ],
          "signals": [
            {
              "signal_code": "access_material_delivery",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Can usable access material be delivered securely to an authorized agent?",
              "finding": "Credentials, grants, or configuration are delivered through a documented agent-usable flow.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:56:20.971Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "authentication"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:b9818d3bc057aad16bbf7ab7b956531a348d87c9e64e52ebd6a6f1619c471844",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:49870b90747b00264358cbd84b185be952af05d27e5164b00a5b1ed23a59fa22",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:d05646f71cf3a1db3288620b59fee744fde0687e7eb7317712eacd4aa024f1ee",
                    "sha256:d12546e5d92f55e36a99c29c9e895fd3d2f713f4e28637e8543faf621b87f8f2"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "authentication"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:d05646f71cf3a1db3288620b59fee744fde0687e7eb7317712eacd4aa024f1ee",
                      "start_byte": 12671,
                      "end_byte": 13471,
                      "value_digest": "sha256:56af9ce1b9671ce24ca8f67676be6b357c508eccfe56a5f996624a6f23c6f0cd"
                    },
                    {
                      "artifact_digest": "sha256:d05646f71cf3a1db3288620b59fee744fde0687e7eb7317712eacd4aa024f1ee",
                      "start_byte": 13472,
                      "end_byte": 14274,
                      "value_digest": "sha256:93b5b59635c0d96ea11a43e9258bff688b1c73bc081c061e5ccb4f9615859f1d"
                    }
                  ]
                }
              ],
              "note": "A documented Workload Identity Federation token endpoint returns short-lived bearer access material programmatically."
            },
            {
              "signal_code": "provisioning_completion",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Can an agent determine successful provisioning completion and reconcile asynchronous failure?",
              "finding": "A synchronous success response returns a usable created resource or access material; otherwise asynchronous work exposes progress, terminal state, reconciliation, and a documented bound.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:57:07.091Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "messages-create"
                },
                {
                  "node_kind": "resource",
                  "node_id": "messages-create-response"
                },
                {
                  "node_kind": "resource",
                  "node_id": "messages-request-response-guide"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:1f19ede776a25ba0313784898113638f03c7329dd4776d1495388db094676838",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:07ca339500d2228e84c99b6b5e92d8deaa65f5ac6ab181b3218eb9836057a2ac",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:5e9ad873ec1ac94f42f7e672a4fb9f82d53304fecb3094e215affbaa8458b213",
                    "sha256:b4cfda1a8878ac02af90a0686336b1cd06cbef822af5122a950681d2af54678f"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "messages-request-response-guide"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:5e9ad873ec1ac94f42f7e672a4fb9f82d53304fecb3094e215affbaa8458b213",
                      "start_byte": 12697,
                      "end_byte": 13376,
                      "value_digest": "sha256:02a211a7435b5e05f113ff9fd20776a8ddbc8556db040810736d06382cae2524"
                    },
                    {
                      "artifact_digest": "sha256:5e9ad873ec1ac94f42f7e672a4fb9f82d53304fecb3094e215affbaa8458b213",
                      "start_byte": 13377,
                      "end_byte": 14177,
                      "value_digest": "sha256:1ffbfb09c78496646446eebddd7610b08f635720e1270c2b3f07eb5f8b22ae27"
                    }
                  ]
                }
              ],
              "note": "Creating a message via the Messages API is a synchronous request that directly returns a created message object containing a usable result, identifier, and execution usage."
            },
            {
              "signal_code": "provisioning_operability",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Can provisioning be initiated within supported agent authority?",
              "finding": "Provisioning is machine-triggerable or follows deterministically from an allowed handoff.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:57:07.091Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "messages-create"
                },
                {
                  "node_kind": "resource",
                  "node_id": "messages-create-response"
                },
                {
                  "node_kind": "resource",
                  "node_id": "messages-request-response-guide"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:1f19ede776a25ba0313784898113638f03c7329dd4776d1495388db094676838",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:32730d64e382b531f55f990a1a90afee3dd4f60a1bd4d432b17ff44f85661c13",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:5e9ad873ec1ac94f42f7e672a4fb9f82d53304fecb3094e215affbaa8458b213",
                    "sha256:b4cfda1a8878ac02af90a0686336b1cd06cbef822af5122a950681d2af54678f"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "messages-request-response-guide"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:5e9ad873ec1ac94f42f7e672a4fb9f82d53304fecb3094e215affbaa8458b213",
                      "start_byte": 13377,
                      "end_byte": 14177,
                      "value_digest": "sha256:1ffbfb09c78496646446eebddd7610b08f635720e1270c2b3f07eb5f8b22ae27"
                    },
                    {
                      "artifact_digest": "sha256:5e9ad873ec1ac94f42f7e672a4fb9f82d53304fecb3094e215affbaa8458b213",
                      "start_byte": 14178,
                      "end_byte": 14982,
                      "value_digest": "sha256:70dcf5b3add4a1415b7ed70781ba1cf4843da48c4bd5db1784c560e06c3216e7"
                    }
                  ]
                }
              ],
              "note": "Message creation can be initiated programmatically via direct model prompting using supported SDKs and API calls like anthropic.Anthropic().messages.create()."
            }
          ],
          "blockers": [],
          "remediations": []
        },
        {
          "stage": "operate",
          "stage_label": "Operate",
          "outcome": "constrained",
          "public_state": "limited",
          "state_label": "Limited",
          "primary_finding": {
            "signal_code": "failure_contract",
            "condition": "Can an agent handle applicable failure modes safely?",
            "finding": "Safe failure handling is documented only partially.",
            "context": "Anthropic documents errors, timeouts, and retry guidance, but not complete idempotency, cancellation, and reconciliation semantics for the assessed operations."
          },
          "secondary_context": [
            {
              "signal_code": "agent_protocol_interface",
              "condition": "Is an agent-native protocol interface verified against the essential targets?",
              "finding": "Current admissible evidence does not resolve this finding."
            },
            {
              "signal_code": "credential_lifecycle",
              "condition": "Can an agent manage credential expiry, rotation, revocation, compromise, and recovery?",
              "finding": "Only part of the credential lifecycle is agent-operable.",
              "context": "The retained documentation lists API lifecycle operations including POST /v1/oauth/token for obtaining short-lived access tokens, alongside Console management and API key usage. However, full programmatically actionable credential rotation, revocation, compromise handling, and recovery procedures are not fully detailed in the provided body text."
            },
            {
              "signal_code": "target_interface_access",
              "condition": "Can an agent perform every essential assessment target through a usable interface?",
              "finding": "Every essential target has a stable documented agent-usable interface alternative.",
              "context": "The Claude API provides documented machine-operable interfaces including direct REST API endpoints, the ant command-line tool (CLI), and official client SDKs across Python, TypeScript, C#, Go, Java, PHP, and Ruby."
            },
            {
              "signal_code": "operation_authentication",
              "condition": "Can an agent authenticate service operations with scoped authority?",
              "finding": "Request-time authentication is documented and usable under scoped agent authority.",
              "context": "Operations are authenticated using either the x-api-key header or the Authorization header with a Bearer token obtained via Workload Identity Federation from POST /v1/oauth/token, alongside the required anthropic-version header."
            },
            {
              "signal_code": "operation_contract",
              "condition": "Are essential operation inputs, outputs, and effects stable and decidable?",
              "finding": "Essential operations have stable readable request, response, and effect semantics.",
              "context": "Essential API operations across Messages, Batches, Files, and Managed Agents have stable, decidable request and response formats, JSON error shapes, request size limits, and rate limit header feedback documented across resources."
            }
          ],
          "signals": [
            {
              "signal_code": "agent_protocol_interface",
              "evaluation_role": "informational",
              "required": false,
              "value": "unknown",
              "value_label": "Unknown",
              "outcome": "unknown",
              "public_state": "unknown",
              "condition": "Is an agent-native protocol interface verified against the essential targets?",
              "finding": "Current admissible evidence does not resolve this finding.",
              "evidence_status": "missing",
              "freshness": "unknown",
              "tested_surfaces": [],
              "determination_bases": []
            },
            {
              "signal_code": "credential_lifecycle",
              "evaluation_role": "graded",
              "required": true,
              "value": "partial",
              "value_label": "Limited",
              "outcome": "constrained",
              "public_state": "limited",
              "condition": "Can an agent manage credential expiry, rotation, revocation, compromise, and recovery?",
              "finding": "Only part of the credential lifecycle is agent-operable.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:56:20.971Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "authentication"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:b9818d3bc057aad16bbf7ab7b956531a348d87c9e64e52ebd6a6f1619c471844",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:49870b90747b00264358cbd84b185be952af05d27e5164b00a5b1ed23a59fa22",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:b0768e708d6c9e7230775e5bfd6cb5d60ac7fed55f8813fdc62681c5f7040dc9",
                    "sha256:d05646f71cf3a1db3288620b59fee744fde0687e7eb7317712eacd4aa024f1ee"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "authentication"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:d05646f71cf3a1db3288620b59fee744fde0687e7eb7317712eacd4aa024f1ee",
                      "start_byte": 13472,
                      "end_byte": 14274,
                      "value_digest": "sha256:93b5b59635c0d96ea11a43e9258bff688b1c73bc081c061e5ccb4f9615859f1d"
                    },
                    {
                      "artifact_digest": "sha256:d05646f71cf3a1db3288620b59fee744fde0687e7eb7317712eacd4aa024f1ee",
                      "start_byte": 8747,
                      "end_byte": 9573,
                      "value_digest": "sha256:1b8e6070175a50d1552fe4ada0cf072159eb7f3c028235b2784df9c41ec7ae8d"
                    }
                  ]
                }
              ],
              "note": "The retained documentation lists API lifecycle operations including POST /v1/oauth/token for obtaining short-lived access tokens, alongside Console management and API key usage. However, full programmatically actionable credential rotation, revocation, compromise handling, and recovery procedures are not fully detailed in the provided body text.",
              "remediation": {
                "signal_code": "credential_lifecycle",
                "code": "improve.operate.credential_lifecycle",
                "instruction": "Provide scoped expiry, rotation, revocation, compromise, and recovery operations."
              }
            },
            {
              "signal_code": "failure_contract",
              "evaluation_role": "graded",
              "required": true,
              "value": "partial",
              "value_label": "Limited",
              "outcome": "constrained",
              "public_state": "limited",
              "condition": "Can an agent handle applicable failure modes safely?",
              "finding": "Safe failure handling is documented only partially.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:56:30.338Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "api-errors"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:30d0e137f6ec2f538d9c78564c4cc9bb900dc2ea7787f91a536ed9384a9bc67c",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:1c79ae48ba16d7362b492ee28b352a9d8a053da3afffe2913c3508fc2b7b26fb",
                    "sha256:4e2d8741975fab9e6ef8ab1363889f4c0267fbd59e98d2124d0a3de0ffca3b46",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:7cd2303a4d6bd5f9e1ecc0594cb7fae445901e13ad108e454a2aff252b7fb8e1"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "api-errors"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:1c79ae48ba16d7362b492ee28b352a9d8a053da3afffe2913c3508fc2b7b26fb",
                      "start_byte": 11486,
                      "end_byte": 12294,
                      "value_digest": "sha256:9a8aeb7f5a9bf9435dce43b982696393b2eb413de3e9b0457503ea4ca4a9e36c"
                    },
                    {
                      "artifact_digest": "sha256:1c79ae48ba16d7362b492ee28b352a9d8a053da3afffe2913c3508fc2b7b26fb",
                      "start_byte": 13897,
                      "end_byte": 14687,
                      "value_digest": "sha256:3cca829593d3beee0dd13ad007366a2a584f376909216eb730f7ea0b4d8e969d"
                    }
                  ]
                }
              ],
              "note": "Anthropic documents errors, timeouts, and retry guidance, but not complete idempotency, cancellation, and reconciliation semantics for the assessed operations.",
              "remediation": {
                "signal_code": "failure_contract",
                "code": "improve.operate.failure_contract",
                "instruction": "Document applicable structured errors, retry, cancellation, and reconciliation semantics."
              }
            },
            {
              "signal_code": "operation_authentication",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Can an agent authenticate service operations with scoped authority?",
              "finding": "Request-time authentication is documented and usable under scoped agent authority.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:56:20.971Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "authentication"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:b9818d3bc057aad16bbf7ab7b956531a348d87c9e64e52ebd6a6f1619c471844",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:49870b90747b00264358cbd84b185be952af05d27e5164b00a5b1ed23a59fa22",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:d05646f71cf3a1db3288620b59fee744fde0687e7eb7317712eacd4aa024f1ee",
                    "sha256:d12546e5d92f55e36a99c29c9e895fd3d2f713f4e28637e8543faf621b87f8f2"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "authentication"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:d05646f71cf3a1db3288620b59fee744fde0687e7eb7317712eacd4aa024f1ee",
                      "start_byte": 12671,
                      "end_byte": 13471,
                      "value_digest": "sha256:56af9ce1b9671ce24ca8f67676be6b357c508eccfe56a5f996624a6f23c6f0cd"
                    },
                    {
                      "artifact_digest": "sha256:d05646f71cf3a1db3288620b59fee744fde0687e7eb7317712eacd4aa024f1ee",
                      "start_byte": 13472,
                      "end_byte": 14274,
                      "value_digest": "sha256:93b5b59635c0d96ea11a43e9258bff688b1c73bc081c061e5ccb4f9615859f1d"
                    }
                  ]
                }
              ],
              "note": "Operations are authenticated using either the x-api-key header or the Authorization header with a Bearer token obtained via Workload Identity Federation from POST /v1/oauth/token, alongside the required anthropic-version header."
            },
            {
              "signal_code": "operation_contract",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Are essential operation inputs, outputs, and effects stable and decidable?",
              "finding": "Essential operations have stable readable request, response, and effect semantics.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:56:30.338Z",
              "tested_surfaces": [
                {
                  "node_kind": "interface",
                  "node_id": "api-service"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:30d0e137f6ec2f538d9c78564c4cc9bb900dc2ea7787f91a536ed9384a9bc67c",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:1c79ae48ba16d7362b492ee28b352a9d8a053da3afffe2913c3508fc2b7b26fb",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:7cd2303a4d6bd5f9e1ecc0594cb7fae445901e13ad108e454a2aff252b7fb8e1",
                    "sha256:d762025909f03e4ff003d76c890e987b0d050ddd37a613ad61bd963c65239a2c"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "api-errors"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:1c79ae48ba16d7362b492ee28b352a9d8a053da3afffe2913c3508fc2b7b26fb",
                      "start_byte": 14688,
                      "end_byte": 15491,
                      "value_digest": "sha256:c81fc638f551554897a6da1e4a66032d268cf44fa384224ebe360a45ed241776"
                    }
                  ]
                },
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:aac0ae71034a9dd57591d791af379d25250366890780cdec474be05bf4493fd2",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:2ebd382c623bf4e4dd6f58ff6a52870151798a92f37e69d0f83ef575a419cd49",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:610c7bd2cdae6b843da08611e4bc62ad774dbfaeb3a414a6d51e198a2bc0afca",
                    "sha256:e18ae99c64ba8a733e7c128457b69eba256ce18940e4aadd45639977f2c6486c"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "rate-limits"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:610c7bd2cdae6b843da08611e4bc62ad774dbfaeb3a414a6d51e198a2bc0afca",
                      "start_byte": 16990,
                      "end_byte": 17788,
                      "value_digest": "sha256:3df718a8a1320f0cfe40980998d8b37e565e5a6e30b59e69d6eb0c9668c7a400"
                    }
                  ]
                },
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:cd4add54ad6b5db1b8b032f93552712bf7c62d965724cb26603811a23ae55252",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:0ce2de2666b03f868e9de523e167b7307f18dab7256816adad02617124d45769",
                    "sha256:135e007c5ec9ca934a4fab9a84c6a28e7f14cbdc28f000b0db99c74bfcc35c0c",
                    "sha256:209160597ca736775a5c08324f7f3f6170dffba734fac6fa96510862b9f406f8",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "api-overview"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:209160597ca736775a5c08324f7f3f6170dffba734fac6fa96510862b9f406f8",
                      "start_byte": 6853,
                      "end_byte": 7655,
                      "value_digest": "sha256:9e5165c908bfb3066e5ca2487e0a7bbbd0d77140d26b6f033c524916ef2b88c0"
                    }
                  ]
                }
              ],
              "note": "Essential API operations across Messages, Batches, Files, and Managed Agents have stable, decidable request and response formats, JSON error shapes, request size limits, and rate limit header feedback documented across resources."
            },
            {
              "signal_code": "target_interface_access",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Can an agent perform every essential assessment target through a usable interface?",
              "finding": "Every essential target has a stable documented agent-usable interface alternative.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-20T15:56:30.338Z",
              "tested_surfaces": [
                {
                  "node_kind": "interface",
                  "node_id": "api-service"
                }
              ],
              "assessment_method": {
                "name": "public-http-semantic-assessment",
                "version": "2026-08-20",
                "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
              },
              "determination_bases": [
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:aac0ae71034a9dd57591d791af379d25250366890780cdec474be05bf4493fd2",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:2ebd382c623bf4e4dd6f58ff6a52870151798a92f37e69d0f83ef575a419cd49",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:610c7bd2cdae6b843da08611e4bc62ad774dbfaeb3a414a6d51e198a2bc0afca",
                    "sha256:c54f0fcfd17537b8106f4038af276a8728d85d2befc057f13bd2ec1bf6978b54"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "rate-limits"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:610c7bd2cdae6b843da08611e4bc62ad774dbfaeb3a414a6d51e198a2bc0afca",
                      "start_byte": 18590,
                      "end_byte": 19362,
                      "value_digest": "sha256:63f6ae24a6a0f0d65c394386536815b456d0c224cbe6e8a82505a530f6f61f90"
                    }
                  ]
                },
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:30d0e137f6ec2f538d9c78564c4cc9bb900dc2ea7787f91a536ed9384a9bc67c",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:1c79ae48ba16d7362b492ee28b352a9d8a053da3afffe2913c3508fc2b7b26fb",
                    "sha256:20a1b74777395960c74e6ddc51f4e0d95deeece0a6c827d16a4df6ba78539a74",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "sha256:7cd2303a4d6bd5f9e1ecc0594cb7fae445901e13ad108e454a2aff252b7fb8e1"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "api-errors"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:1c79ae48ba16d7362b492ee28b352a9d8a053da3afffe2913c3508fc2b7b26fb",
                      "start_byte": 13897,
                      "end_byte": 14687,
                      "value_digest": "sha256:3cca829593d3beee0dd13ad007366a2a584f376909216eb730f7ea0b4d8e969d"
                    }
                  ]
                },
                {
                  "kind": "explicit_first_party_declaration",
                  "captures": [
                    {
                      "retained_capture_digest": "sha256:cd4add54ad6b5db1b8b032f93552712bf7c62d965724cb26603811a23ae55252",
                      "capture_rung": "http"
                    }
                  ],
                  "artifact_digests": [
                    "sha256:0ce2de2666b03f868e9de523e167b7307f18dab7256816adad02617124d45769",
                    "sha256:135e007c5ec9ca934a4fab9a84c6a28e7f14cbdc28f000b0db99c74bfcc35c0c",
                    "sha256:209160597ca736775a5c08324f7f3f6170dffba734fac6fa96510862b9f406f8",
                    "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945"
                  ],
                  "source_surface": {
                    "node_kind": "resource",
                    "node_id": "api-overview"
                  },
                  "locators": [
                    {
                      "artifact_digest": "sha256:209160597ca736775a5c08324f7f3f6170dffba734fac6fa96510862b9f406f8",
                      "start_byte": 6853,
                      "end_byte": 7655,
                      "value_digest": "sha256:9e5165c908bfb3066e5ca2487e0a7bbbd0d77140d26b6f033c524916ef2b88c0"
                    }
                  ]
                }
              ],
              "note": "The Claude API provides documented machine-operable interfaces including direct REST API endpoints, the ant command-line tool (CLI), and official client SDKs across Python, TypeScript, C#, Go, Java, PHP, and Ruby."
            }
          ],
          "blockers": [],
          "remediations": [
            {
              "signal_code": "failure_contract",
              "code": "improve.operate.failure_contract",
              "instruction": "Document applicable structured errors, retry, cancellation, and reconciliation semantics."
            },
            {
              "signal_code": "credential_lifecycle",
              "code": "improve.operate.credential_lifecycle",
              "instruction": "Provide scoped expiry, rotation, revocation, compromise, and recovery operations."
            }
          ]
        }
      ],
      "coverage": {
        "status": "complete",
        "required_signals": 16,
        "covered_signals": 16,
        "ratio": 1,
        "barrier_signals": 5,
        "verified_barrier_signals": 0,
        "barrier_ratio": 0
      },
      "last_tested_at": "2026-08-20T15:57:07.091Z",
      "freshness": "fresh",
      "provenance": {
        "tier": "observed",
        "freshness": "fresh",
        "dispute": "none",
        "coverage_policy_digest": "sha256:57bf95fd6d0fe6fe9173a68b60e8d8dc2179b357c88ff4349675a72d0e1d4139",
        "freshness_policy_digest": "sha256:00f7f2a35f37b184e57ce2cc116f6a5e3feb4813991aacd7e29e322f2d3607a8",
        "basis_event_ids": [
          "sha256:05d27a9576a873bce5682dde55906a0efcfe078dbf639afd4bf58aa626069220",
          "sha256:06a33e4f22f82cc9b16e3ea0e2e8ab2c848549a1dd156be7da980795eaa8a664",
          "sha256:1857f36f8953d03cb545b21ce3ffc54aac31ff8d7116a79cb5be77a49b1948e5",
          "sha256:1a6dcfe16c785b05930f971bd095d71b5f21351522d900bca695c24be835d94d",
          "sha256:20beaeec7324671c2d9aa74a6b46afaf2fbba56032f1b21001d5b406feeadf99",
          "sha256:29d921bd8758a56ae982dd179f79a989916ee529e53cdc8907d45b6a7bf71772",
          "sha256:2ce426588d713b99186a25a42fe6de9e4d2809b23af42aa862b3e6e822b1950b",
          "sha256:393143ff08dc40c435b4385610b6e6978677abfe4a6966c1cebe52fd665c8780",
          "sha256:425e164ccc9fa75f77bda8afaa84069d80ecfcdb10b5e0647bdc8087a2d1abc7",
          "sha256:42af73592bbef14d73f178b7de61baf99e6f51954c09a6ef7f35cb7a8c322922",
          "sha256:5c2924b158c50ed23faf21602fada6cfffaa0ee3e966e2587293e5becdad757e",
          "sha256:62f82bf586da4524f17cfdeb47ccfbed5b852a0e77cfaa38a3882c0fe30fa941",
          "sha256:6da5e662253929c95fb2ad1630373406a86423e53ea4c6c0d41292b102814524",
          "sha256:7151b54dbb29dba9945f58c8e18134427fdf8683b67042066a7770712854fb31",
          "sha256:74eaddd713ea2514c15da999721ad2ff69b4c202718ee38700406f6fade2a0e9",
          "sha256:7778044730311c795553b283ff5248ad17c6d08c8af585f66bce792394adcad9",
          "sha256:8e7b010ae48d6f21d4dbc395e86d9a0099fd9ecac42d6cf9f8e71700d61e269f",
          "sha256:99f3db382976e09506e564f2078e4f1340ac4255e4cc4fba41f602cbc905f3e3",
          "sha256:9d3da37194ba11e14b9dea8824c70e765cb06e5e2330e51749e316d2128ad74a",
          "sha256:b256acd863037e4398293155eed5ae6fc2ed8f57d44423c33d82aed83492e5c9",
          "sha256:b8d0e16e11dfdbc08005918a45995858187dae75714ea587994365cab345b229",
          "sha256:b9718ce4aaa7c7b3c8a7069ebeba889b3ef2c299ec035f026fdaef87c69f03ab",
          "sha256:b9ea4ea8f36ce1b333f7656c984c3a96456afd9809fd0e9d31387945667cab2b",
          "sha256:c1f2e7a5e2ffe85a3be0289920f73321ddbeca0472c0d196f1bceed21a311778",
          "sha256:e013a77ab1612805a3b6b7b3f5e94c409df50f047f65bd098963e460bc1d14f4",
          "sha256:fd8eb19b4a962cd5583ca08af16c89cf14fd519207592c73f7f583662ab9ac97"
        ],
        "fields": [
          {
            "path": "/signals/0",
            "supporting_event_ids": [
              "sha256:b9ea4ea8f36ce1b333f7656c984c3a96456afd9809fd0e9d31387945667cab2b"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:56:45.993Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/1",
            "supporting_event_ids": [
              "sha256:2ce426588d713b99186a25a42fe6de9e4d2809b23af42aa862b3e6e822b1950b"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:56:27.347Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/2",
            "supporting_event_ids": [
              "sha256:e013a77ab1612805a3b6b7b3f5e94c409df50f047f65bd098963e460bc1d14f4"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:56:12.105Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/3",
            "supporting_event_ids": [
              "sha256:c1f2e7a5e2ffe85a3be0289920f73321ddbeca0472c0d196f1bceed21a311778"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:56:45.993Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/4",
            "supporting_event_ids": [
              "sha256:425e164ccc9fa75f77bda8afaa84069d80ecfcdb10b5e0647bdc8087a2d1abc7"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:57:01.315Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/5",
            "supporting_event_ids": [
              "sha256:06a33e4f22f82cc9b16e3ea0e2e8ab2c848549a1dd156be7da980795eaa8a664"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:57:01.315Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/6",
            "supporting_event_ids": [
              "sha256:8e7b010ae48d6f21d4dbc395e86d9a0099fd9ecac42d6cf9f8e71700d61e269f",
              "sha256:b256acd863037e4398293155eed5ae6fc2ed8f57d44423c33d82aed83492e5c9"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:57:01.315Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/7",
            "supporting_event_ids": [
              "sha256:1a6dcfe16c785b05930f971bd095d71b5f21351522d900bca695c24be835d94d"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:56:20.971Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/8",
            "supporting_event_ids": [
              "sha256:393143ff08dc40c435b4385610b6e6978677abfe4a6966c1cebe52fd665c8780"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:57:01.315Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/9",
            "supporting_event_ids": [
              "sha256:9d3da37194ba11e14b9dea8824c70e765cb06e5e2330e51749e316d2128ad74a"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:56:07.353Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/10",
            "supporting_event_ids": [
              "sha256:62f82bf586da4524f17cfdeb47ccfbed5b852a0e77cfaa38a3882c0fe30fa941"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:56:27.347Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/11",
            "supporting_event_ids": [
              "sha256:74eaddd713ea2514c15da999721ad2ff69b4c202718ee38700406f6fade2a0e9"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:56:07.353Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/12",
            "supporting_event_ids": [
              "sha256:42af73592bbef14d73f178b7de61baf99e6f51954c09a6ef7f35cb7a8c322922"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:56:07.353Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/13",
            "supporting_event_ids": [
              "sha256:20beaeec7324671c2d9aa74a6b46afaf2fbba56032f1b21001d5b406feeadf99"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:56:20.971Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/14",
            "supporting_event_ids": [
              "sha256:7151b54dbb29dba9945f58c8e18134427fdf8683b67042066a7770712854fb31"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:57:07.091Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/15",
            "supporting_event_ids": [
              "sha256:6da5e662253929c95fb2ad1630373406a86423e53ea4c6c0d41292b102814524"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:57:07.091Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/16",
            "supporting_event_ids": [
              "sha256:7778044730311c795553b283ff5248ad17c6d08c8af585f66bce792394adcad9"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:56:20.971Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/17",
            "supporting_event_ids": [
              "sha256:5c2924b158c50ed23faf21602fada6cfffaa0ee3e966e2587293e5becdad757e"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:56:30.338Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/18",
            "supporting_event_ids": [
              "sha256:29d921bd8758a56ae982dd179f79a989916ee529e53cdc8907d45b6a7bf71772"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:56:20.971Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/19",
            "supporting_event_ids": [
              "sha256:05d27a9576a873bce5682dde55906a0efcfe078dbf639afd4bf58aa626069220",
              "sha256:99f3db382976e09506e564f2078e4f1340ac4255e4cc4fba41f602cbc905f3e3",
              "sha256:b8d0e16e11dfdbc08005918a45995858187dae75714ea587994365cab345b229"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:56:30.338Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/20",
            "supporting_event_ids": [
              "sha256:1857f36f8953d03cb545b21ce3ffc54aac31ff8d7116a79cb5be77a49b1948e5",
              "sha256:b9718ce4aaa7c7b3c8a7069ebeba889b3ef2c299ec035f026fdaef87c69f03ab",
              "sha256:fd8eb19b4a962cd5583ca08af16c89cf14fd519207592c73f7f583662ab9ac97"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-20T15:56:30.338Z",
            "freshness": "fresh"
          }
        ]
      },
      "canonical_url": "https://sourcey.com/catalog/anthropic/agent-readiness/anthropic-api/api-service-lifecycle",
      "projection_digest": "sha256:85fb2d56885bd9af74392fea9d3a9730fea895dad2fd43f51744694384e6593d"
    }
  }
}
