{
  "contract": "sourcey.site-record/v1alpha1",
  "release_id": "sha256:1042b2f7b6130b564b0059e00560960c50db2d7578dfa5178d401e5d14d9b11f",
  "snapshot_id": "sha256:696d9730d13ebc723115e4a92f695a0f26345d4350d440a417805b69d1b209e4",
  "artifact_sha256": "sha256:a695609a4d6872bd447e3125d912e7f84e605d0f064df0b08e62a9f24d9d2e80",
  "data": {
    "entity_id": "ent_01kyh8fpe5dk9hex187x4g03fn",
    "entity_slug": "vercel",
    "profile": {
      "projection_contract": "sourcey.agent-readiness-projection/v1alpha1",
      "agent_readiness_profile_id": "arp_01kzf0m4xn2p7wd9g3a5rt8zq6",
      "entity_id": "ent_01kyh8fpe5dk9hex187x4g03fn",
      "scope": {
        "product": {
          "key": "vercel-rest-api",
          "name": "Vercel REST API"
        },
        "funnel": {
          "key": "deployment-operations",
          "name": "Deployment operations"
        }
      },
      "catalog_binding": {
        "base_release_id": "sha256:5082ec07047a2324648f569d234cc64342ce2707b2f3d77fde8fc06af517cee6",
        "entity_revision_digest": "sha256:2ca7db4f429b3bb813bb1ac6d59c8cb5213e3c16a9096dfaa1455909f7b73e13"
      },
      "declaration_revision_digest": "sha256:4b4e8a8ae478a2b10c8900ecf48d1d72ae4beeaaca7f871cf536347067a06ce5",
      "declaration": {
        "declaration_id": "declaration_vercel_api_deployment_operations",
        "provenance": {
          "repository": "sourcey/agent-ready-services",
          "commit": "00f00edd170194cc1cf3081b97b218474537ffdb",
          "path": "vendors/ve/vercel.yaml",
          "git_blob_oid": "20fb7eb45616d36c394b32af06c6ba62937ea4c4",
          "blob_digest": "sha256:850bd6411c37b6b4c1bffe8b1683090a8c715fdd2293bf0ab4d92a41787e902a"
        },
        "status": "community_declared"
      },
      "surface_catalog": {
        "participants": [
          {
            "participant_id": "vercel",
            "roles": [
              "access_operator",
              "identity_provider",
              "operations_provider",
              "payment_provider",
              "provisioning_provider",
              "subject"
            ],
            "identity": {
              "entity_id": "ent_01kyh8fpe5dk9hex187x4g03fn"
            }
          }
        ],
        "resources": [
          {
            "resource_id": "access-tokens",
            "uri": "https://vercel.com/guides/how-do-i-use-a-vercel-api-access-token",
            "roles": [
              "descriptor",
              "documentation",
              "provisioning"
            ],
            "operated_by_participant_id": "vercel",
            "standard_bindings": []
          },
          {
            "resource_id": "account-signup",
            "uri": "https://vercel.com/signup",
            "roles": [
              "checkout",
              "provisioning",
              "sign_up"
            ],
            "operated_by_participant_id": "vercel",
            "standard_bindings": []
          },
          {
            "resource_id": "api-errors",
            "uri": "https://vercel.com/docs/rest-api/errors",
            "roles": [
              "documentation",
              "operations",
              "recovery",
              "status"
            ],
            "operated_by_participant_id": "vercel",
            "standard_bindings": []
          },
          {
            "resource_id": "api-reference",
            "uri": "https://vercel.com/docs/rest-api",
            "roles": [
              "discovery",
              "documentation",
              "operations"
            ],
            "operated_by_participant_id": "vercel",
            "standard_bindings": []
          },
          {
            "resource_id": "deployment-operations",
            "uri": "https://vercel.com/docs/rest-api/reference/endpoints/deployments/create-a-new-deployment",
            "roles": [
              "documentation",
              "operations",
              "provisioning",
              "status"
            ],
            "operated_by_participant_id": "vercel",
            "standard_bindings": []
          },
          {
            "resource_id": "pricing",
            "uri": "https://vercel.com/pricing",
            "roles": [
              "pricing"
            ],
            "operated_by_participant_id": "vercel",
            "standard_bindings": []
          },
          {
            "resource_id": "service-terms",
            "uri": "https://vercel.com/legal/terms",
            "roles": [
              "terms"
            ],
            "operated_by_participant_id": "vercel",
            "standard_bindings": []
          },
          {
            "resource_id": "support",
            "uri": "https://vercel.com/help",
            "roles": [
              "documentation",
              "recovery"
            ],
            "operated_by_participant_id": "vercel",
            "standard_bindings": []
          }
        ],
        "endpoints": [
          {
            "endpoint_id": "vercel-api",
            "uri": "https://api.vercel.com",
            "transport": "http",
            "roles": [
              "service",
              "status"
            ],
            "operated_by_participant_id": "vercel",
            "standard_bindings": []
          }
        ],
        "interfaces": [
          {
            "interface_id": "api-authentication",
            "capabilities": [
              "authentication"
            ],
            "endpoint_ids": [],
            "resource_ids": [
              "access-tokens"
            ],
            "operated_by_participant_id": "vercel",
            "standard_bindings": []
          },
          {
            "interface_id": "deployment-api",
            "capabilities": [
              "api",
              "tools"
            ],
            "endpoint_ids": [
              "vercel-api"
            ],
            "resource_ids": [
              "api-errors",
              "api-reference",
              "deployment-operations"
            ],
            "operated_by_participant_id": "vercel",
            "standard_bindings": []
          }
        ],
        "relations": [
          {
            "relation_id": "authentication-authenticates-api",
            "kind": "authenticates",
            "from": {
              "node_kind": "interface",
              "node_id": "api-authentication"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "deployment-api"
            }
          },
          {
            "relation_id": "deployments-describe-api",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "deployment-operations"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "deployment-api"
            }
          },
          {
            "relation_id": "reference-describes-api",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "api-reference"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "deployment-api"
            }
          },
          {
            "relation_id": "signup-precedes-authentication",
            "kind": "precedes",
            "from": {
              "node_kind": "resource",
              "node_id": "account-signup"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "api-authentication"
            }
          }
        ]
      },
      "lifecycle": "active",
      "effective_from": "2026-08-08T02:07:16.689Z",
      "revision_digest": "sha256:362bb4b1cb9969420eff5732182d92192820b7334f2d5d70519f267a15917474",
      "policy_digest": "sha256:334e56852b5c38e178fcea839cfba680fb82dd96693842d933776baed21d63df",
      "policy_version": "service-lifecycle-2026-08-08-calibrated",
      "policy_as_of": "2026-08-06T00:00:00Z",
      "overall_outcome": "fail",
      "public_state": "blocked",
      "state_label": "Blocked",
      "grade": "D",
      "grade_derivation": {
        "label": "Agent Readiness service-use grade",
        "explanation": "Complete, fresh evidence for the core service lifecycle first applies hard stage severity, then grades the share of applicable evidenced signals that are constrained. Optional blocker probes affect the grade when established and remain visible as unknown when public evidence cannot establish them.",
        "coverage_rule": "Any incomplete, contradictory, unsupported, or non-fresh required evidence produces an unrated profile.",
        "outcome_rule": "A failed Evaluate, Sign up, or Pay stage derives D; a failed Provision or Operate stage derives F; otherwise constrained-signal ratio derives A+ through C."
      },
      "publication": {
        "visibility": "discoverable",
        "reasons": []
      },
      "first_autonomy_break": {
        "stage": "evaluate",
        "stage_label": "Evaluate",
        "public_state": "limited",
        "finding": {
          "signal_code": "structured_terms",
          "condition": "Structured terms limited",
          "finding": "Only part of the applicable terms is machine-readable."
        }
      },
      "stages": [
        {
          "stage": "evaluate",
          "stage_label": "Evaluate",
          "outcome": "constrained",
          "public_state": "limited",
          "state_label": "Limited",
          "primary_finding": {
            "signal_code": "structured_terms",
            "condition": "Structured terms limited",
            "finding": "Only part of the applicable terms is machine-readable."
          },
          "secondary_context": [
            {
              "signal_code": "ard_declaration",
              "condition": "ARD declaration unknown",
              "finding": "An ARD declaration has not been established."
            },
            {
              "signal_code": "machine_discovery",
              "condition": "Machine discovery",
              "finding": "An agent can discover the product and funnel from the tested public entrypoints."
            },
            {
              "signal_code": "decidable_eligibility",
              "condition": "Decidable eligibility",
              "finding": "Eligibility can be decided from explicit public criteria."
            },
            {
              "signal_code": "readable_pricing",
              "condition": "Readable pricing",
              "finding": "Pricing or the absence of a charge is explicit and machine-readable."
            }
          ],
          "signals": [
            {
              "signal_code": "ard_declaration",
              "evaluation_role": "informational",
              "required": false,
              "value": "unknown",
              "value_label": "Unknown",
              "outcome": "unknown",
              "public_state": "unknown",
              "condition": "ARD declaration unknown",
              "finding": "An ARD declaration has not been established.",
              "evidence_status": "missing",
              "freshness": "unknown",
              "tested_surfaces": []
            },
            {
              "signal_code": "decidable_eligibility",
              "evaluation_role": "graded",
              "required": false,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Decidable eligibility",
              "finding": "Eligibility can be decided from explicit public criteria.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:15.138Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "service-terms"
                }
              ],
              "assessment_method": {
                "name": "http",
                "version": "1",
                "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
              },
              "note": "Vercel's Terms of Service explicitly specify public eligibility criteria, including an age requirement of at least 16 years and mandatory valid account information during sign-up."
            },
            {
              "signal_code": "machine_discovery",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Machine discovery",
              "finding": "An agent can discover the product and funnel from the tested public entrypoints.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:16.264Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "api-reference"
                }
              ],
              "assessment_method": {
                "name": "http",
                "version": "1",
                "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
              },
              "note": "The Vercel REST API documentation and its deployment endpoints are fully discoverable and documented at the public REST API entrypoint."
            },
            {
              "signal_code": "readable_pricing",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Readable pricing",
              "finding": "Pricing or the absence of a charge is explicit and machine-readable.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:17.125Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "pricing"
                }
              ],
              "assessment_method": {
                "name": "http",
                "version": "1",
                "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
              },
              "note": "Pricing details across Hobby ($0/mo), Pro ($20/mo), and Enterprise plans are explicitly published and machine-readable on the Vercel pricing page."
            },
            {
              "signal_code": "structured_terms",
              "evaluation_role": "graded",
              "required": true,
              "value": "partial",
              "value_label": "Limited",
              "outcome": "constrained",
              "public_state": "limited",
              "condition": "Structured terms limited",
              "finding": "Only part of the applicable terms is machine-readable.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:15.138Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "service-terms"
                }
              ],
              "assessment_method": {
                "name": "http",
                "version": "1",
                "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
              },
              "negative_coverage": {
                "kind": "complete-response-inspection",
                "scope": "exact-resource",
                "covered_surfaces": [
                  {
                    "node_kind": "resource",
                    "node_id": "service-terms"
                  }
                ]
              },
              "note": "Vercel's Terms of Service are available as readable HTML web pages but are not published as a dedicated structured data format.",
              "remediation": {
                "signal_code": "structured_terms",
                "code": "improve.evaluate.structured_terms",
                "instruction": "Publish complete applicable terms in a stable machine-readable document."
              }
            }
          ],
          "blockers": [],
          "remediations": [
            {
              "signal_code": "structured_terms",
              "code": "improve.evaluate.structured_terms",
              "instruction": "Publish complete applicable terms in a stable machine-readable document."
            }
          ]
        },
        {
          "stage": "sign_up",
          "stage_label": "Sign up",
          "outcome": "fail",
          "public_state": "blocked",
          "state_label": "Blocked",
          "primary_finding": {
            "signal_code": "machine_operable_form",
            "condition": "Machine-operable signup unavailable",
            "finding": "The signup flow could not be operated by an agent."
          },
          "secondary_context": [
            {
              "signal_code": "captcha_free",
              "condition": "CAPTCHA-free signup unknown",
              "finding": "Whether CAPTCHA blocks signup has not been established."
            },
            {
              "signal_code": "phone_verification_free",
              "condition": "Phone-free signup unknown",
              "finding": "Whether phone verification is required has not been established."
            },
            {
              "signal_code": "stable_entrypoint",
              "condition": "Stable signup entrypoint",
              "finding": "A stable signup entrypoint is available."
            },
            {
              "signal_code": "supported_identity_flow",
              "condition": "Supported identity flow",
              "finding": "A scoped, revocable machine identity flow is documented, including explicit human authorization boundaries."
            }
          ],
          "signals": [
            {
              "signal_code": "captcha_free",
              "evaluation_role": "graded",
              "required": false,
              "value": "unknown",
              "value_label": "Unknown",
              "outcome": "unknown",
              "public_state": "unknown",
              "condition": "CAPTCHA-free signup unknown",
              "finding": "Whether CAPTCHA blocks signup has not been established.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:29.179Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "account-signup"
                }
              ],
              "assessment_method": {
                "name": "headless",
                "version": "1",
                "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
              },
              "note": "The headless rendering of the Vercel signup page encountered an error page, so the presence or absence of a CAPTCHA on the signup flow could not be verified from the captured DOM text."
            },
            {
              "signal_code": "machine_operable_form",
              "evaluation_role": "graded",
              "required": false,
              "value": "no",
              "value_label": "Blocked",
              "outcome": "fail",
              "public_state": "blocked",
              "condition": "Machine-operable signup unavailable",
              "finding": "The signup flow could not be operated by an agent.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:29.179Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "account-signup"
                }
              ],
              "assessment_method": {
                "name": "headless",
                "version": "1",
                "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
              },
              "negative_coverage": {
                "kind": "bounded-rendered-flow-inspection",
                "scope": "tested-surfaces",
                "covered_surfaces": [
                  {
                    "node_kind": "resource",
                    "node_id": "account-signup"
                  }
                ]
              },
              "note": "The headless capture of the signup page failed to render controls and displayed 'Something went wrong', preventing machine operation.",
              "blocker": {
                "signal_code": "machine_operable_form",
                "code": "sign_up.machine_operable_form",
                "explanation": "The signup flow could not be operated by an agent."
              },
              "remediation": {
                "signal_code": "machine_operable_form",
                "code": "improve.sign_up.machine_operable_form",
                "instruction": "Expose labelled, deterministic controls and documented validation without requiring hidden human interaction."
              }
            },
            {
              "signal_code": "phone_verification_free",
              "evaluation_role": "graded",
              "required": false,
              "value": "unknown",
              "value_label": "Unknown",
              "outcome": "unknown",
              "public_state": "unknown",
              "condition": "Phone-free signup unknown",
              "finding": "Whether phone verification is required has not been established.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:29.179Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "account-signup"
                }
              ],
              "assessment_method": {
                "name": "headless",
                "version": "1",
                "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
              },
              "note": "Because the headless signup render failed with an error, whether phone verification is required during registration cannot be determined."
            },
            {
              "signal_code": "stable_entrypoint",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Stable signup entrypoint",
              "finding": "A stable signup entrypoint is available.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:51.933Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "account-signup"
                }
              ],
              "assessment_method": {
                "name": "http",
                "version": "1",
                "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
              },
              "note": "The signup HTTP entrypoint at https://vercel.com/signup renders successfully and presents login and signup options including email and social providers."
            },
            {
              "signal_code": "supported_identity_flow",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Supported identity flow",
              "finding": "A scoped, revocable machine identity flow is documented, including explicit human authorization boundaries.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:50.537Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "access-tokens"
                }
              ],
              "assessment_method": {
                "name": "headless",
                "version": "1",
                "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
              },
              "note": "Vercel documents a supported identity flow using API access tokens created under account settings, with support for scoping access to personal accounts or specific teams and passing the token as a Bearer header."
            }
          ],
          "blockers": [
            {
              "signal_code": "machine_operable_form",
              "code": "sign_up.machine_operable_form",
              "explanation": "The signup flow could not be operated by an agent."
            }
          ],
          "remediations": [
            {
              "signal_code": "machine_operable_form",
              "code": "improve.sign_up.machine_operable_form",
              "instruction": "Expose labelled, deterministic controls and documented validation without requiring hidden human interaction."
            }
          ]
        },
        {
          "stage": "pay",
          "stage_label": "Pay",
          "outcome": "pass",
          "public_state": "ready",
          "state_label": "Ready",
          "primary_finding": {
            "signal_code": "explicit_price",
            "condition": "Explicit price",
            "finding": "The required price or no-charge status is explicit before commitment."
          },
          "secondary_context": [
            {
              "signal_code": "machine_operable_checkout",
              "condition": "Machine-operable checkout unknown",
              "finding": "Machine-operable checkout has not been established."
            },
            {
              "signal_code": "supported_payment_rail",
              "condition": "Supported payment rail unknown",
              "finding": "A supported payment rail has not been established."
            },
            {
              "signal_code": "sales_intervention_free",
              "condition": "Sales-free purchase unknown",
              "finding": "Whether sales intervention is required has not been established."
            }
          ],
          "signals": [
            {
              "signal_code": "explicit_price",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Explicit price",
              "finding": "The required price or no-charge status is explicit before commitment.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:17.125Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "pricing"
                }
              ],
              "assessment_method": {
                "name": "http",
                "version": "1",
                "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
              },
              "note": "Vercel explicitly details plan pricing on its pricing page, including a $0 Hobby plan, $20/month Pro plan, and usage-based component pricing."
            },
            {
              "signal_code": "machine_operable_checkout",
              "evaluation_role": "graded",
              "required": false,
              "value": "unknown",
              "value_label": "Unknown",
              "outcome": "unknown",
              "public_state": "unknown",
              "condition": "Machine-operable checkout unknown",
              "finding": "Machine-operable checkout has not been established.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:29.179Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "account-signup"
                }
              ],
              "assessment_method": {
                "name": "headless",
                "version": "1",
                "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
              },
              "note": "The signup page rendered an error during headless testing, preventing observation of machine-operable checkout capabilities."
            },
            {
              "signal_code": "sales_intervention_free",
              "evaluation_role": "graded",
              "required": false,
              "value": "unknown",
              "value_label": "Unknown",
              "outcome": "unknown",
              "public_state": "unknown",
              "condition": "Sales-free purchase unknown",
              "finding": "Whether sales intervention is required has not been established.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:29.179Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "account-signup"
                }
              ],
              "assessment_method": {
                "name": "headless",
                "version": "1",
                "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
              },
              "note": "The signup page produced an error during headless execution, leaving sales intervention requirements unverified in the tested flow."
            },
            {
              "signal_code": "supported_payment_rail",
              "evaluation_role": "graded",
              "required": false,
              "value": "unknown",
              "value_label": "Unknown",
              "outcome": "unknown",
              "public_state": "unknown",
              "condition": "Supported payment rail unknown",
              "finding": "A supported payment rail has not been established.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:29.179Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "account-signup"
                }
              ],
              "assessment_method": {
                "name": "headless",
                "version": "1",
                "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
              },
              "note": "Headless testing of the signup route encountered an error, preventing verification of supported payment rails."
            }
          ],
          "blockers": [],
          "remediations": []
        },
        {
          "stage": "provision",
          "stage_label": "Provision",
          "outcome": "pass",
          "public_state": "ready",
          "state_label": "Ready",
          "primary_finding": {
            "signal_code": "automatic_activation",
            "condition": "Automatic activation",
            "finding": "Successful onboarding automatically activates usable access."
          },
          "secondary_context": [
            {
              "signal_code": "bounded_delay",
              "condition": "Bounded provisioning delay unknown",
              "finding": "A bounded provisioning delay has not been established."
            },
            {
              "signal_code": "credential_delivery",
              "condition": "Credential delivery",
              "finding": "Usable credentials or delegated access are delivered through a documented flow."
            },
            {
              "signal_code": "machine_readable_status",
              "condition": "Machine-readable provisioning status",
              "finding": "Provisioning exposes machine-readable progress, terminal states, and reconciliation."
            }
          ],
          "signals": [
            {
              "signal_code": "automatic_activation",
              "evaluation_role": "graded",
              "required": false,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Automatic activation",
              "finding": "Successful onboarding automatically activates usable access.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:41.091Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "deployment-operations"
                }
              ],
              "assessment_method": {
                "name": "headless",
                "version": "1",
                "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
              },
              "note": "Calling the POST /v13/deployments endpoint immediately creates and activates a new deployment resource, transitioning automatically through QUEUED, INITIALIZING, and BUILDING to READY or ERROR."
            },
            {
              "signal_code": "bounded_delay",
              "evaluation_role": "graded",
              "required": false,
              "value": "unknown",
              "value_label": "Unknown",
              "outcome": "unknown",
              "public_state": "unknown",
              "condition": "Bounded provisioning delay unknown",
              "finding": "A bounded provisioning delay has not been established.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:19.841Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "deployment-operations"
                }
              ],
              "assessment_method": {
                "name": "http",
                "version": "1",
                "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
              },
              "note": "The REST API documentation describes the build state lifecycle but does not provide a specific, documented bound or SLA for provisioning completion time."
            },
            {
              "signal_code": "credential_delivery",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Credential delivery",
              "finding": "Usable credentials or delegated access are delivered through a documented flow.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:50.537Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "access-tokens"
                }
              ],
              "assessment_method": {
                "name": "headless",
                "version": "1",
                "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
              },
              "note": "Vercel API Access Tokens can be created and scoped within Account Settings and used as Bearer tokens in the Authorization header for API requests."
            },
            {
              "signal_code": "machine_readable_status",
              "evaluation_role": "graded",
              "required": false,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Machine-readable provisioning status",
              "finding": "Provisioning exposes machine-readable progress, terminal states, and reconciliation.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:19.841Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "deployment-operations"
                }
              ],
              "assessment_method": {
                "name": "http",
                "version": "1",
                "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
              },
              "note": "The API response includes a machine-readable `readyState` field indicating the deployment state along with structured error codes and fields."
            }
          ],
          "blockers": [],
          "remediations": []
        },
        {
          "stage": "operate",
          "stage_label": "Operate",
          "outcome": "constrained",
          "public_state": "limited",
          "state_label": "Limited",
          "primary_finding": {
            "signal_code": "delegated_recovery",
            "condition": "Delegated recovery limited",
            "finding": "Recovery is available only for some failure modes or requires human intervention."
          },
          "secondary_context": [
            {
              "signal_code": "agent_protocol_interface",
              "condition": "Agent protocol interface unknown",
              "finding": "An agent protocol interface has not been established."
            },
            {
              "signal_code": "api_tool_access",
              "condition": "API or tool access",
              "finding": "A documented API or tool interface is available for operation."
            },
            {
              "signal_code": "usable_authentication",
              "condition": "Usable authentication",
              "finding": "Authentication is documented and usable within an agent authorization boundary."
            },
            {
              "signal_code": "documented_limits_errors",
              "condition": "Documented limits and errors",
              "finding": "Limits, structured errors, retry behavior, and idempotency semantics are documented where applicable."
            }
          ],
          "signals": [
            {
              "signal_code": "agent_protocol_interface",
              "evaluation_role": "informational",
              "required": false,
              "value": "unknown",
              "value_label": "Unknown",
              "outcome": "unknown",
              "public_state": "unknown",
              "condition": "Agent protocol interface unknown",
              "finding": "An agent protocol interface has not been established.",
              "evidence_status": "missing",
              "freshness": "unknown",
              "tested_surfaces": []
            },
            {
              "signal_code": "api_tool_access",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "API or tool access",
              "finding": "A documented API or tool interface is available for operation.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:16.264Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "api-reference"
                }
              ],
              "assessment_method": {
                "name": "http",
                "version": "1",
                "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
              },
              "note": "Vercel REST API provides a fully documented direct HTTP REST service and SDK interface under api.vercel.com for managing deployments and project resources programmatically."
            },
            {
              "signal_code": "delegated_recovery",
              "evaluation_role": "graded",
              "required": true,
              "value": "partial",
              "value_label": "Limited",
              "outcome": "constrained",
              "public_state": "limited",
              "condition": "Delegated recovery limited",
              "finding": "Recovery is available only for some failure modes or requires human intervention.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:18.374Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "api-errors"
                }
              ],
              "assessment_method": {
                "name": "http",
                "version": "1",
                "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
              },
              "negative_coverage": {
                "kind": "complete-response-inspection",
                "scope": "exact-resource",
                "covered_surfaces": [
                  {
                    "node_kind": "resource",
                    "node_id": "api-errors"
                  }
                ]
              },
              "note": "Deployment operations include recovery endpoints such as deployment cancellation via REST API, but complex failure paths like domain purchase additions require contacting support.",
              "remediation": {
                "signal_code": "delegated_recovery",
                "code": "improve.operate.delegated_recovery",
                "instruction": "Provide delegated credential rotation, revocation, retry, and recovery paths without requiring unrestricted human intervention."
              }
            },
            {
              "signal_code": "documented_limits_errors",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Documented limits and errors",
              "finding": "Limits, structured errors, retry behavior, and idempotency semantics are documented where applicable.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:19.841Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "deployment-operations"
                }
              ],
              "assessment_method": {
                "name": "http",
                "version": "1",
                "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
              },
              "note": "Vercel REST API documents specific error structures, HTTP error codes, rate-limit response headers, and deployment limits across endpoints."
            },
            {
              "signal_code": "usable_authentication",
              "evaluation_role": "graded",
              "required": true,
              "value": "yes",
              "value_label": "Ready",
              "outcome": "pass",
              "public_state": "ready",
              "condition": "Usable authentication",
              "finding": "Authentication is documented and usable within an agent authorization boundary.",
              "evidence_status": "supported",
              "freshness": "fresh",
              "observed_at": "2026-08-07T21:15:21.376Z",
              "tested_surfaces": [
                {
                  "node_kind": "resource",
                  "node_id": "access-tokens"
                }
              ],
              "assessment_method": {
                "name": "http",
                "version": "1",
                "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
              },
              "note": "Vercel Access Tokens are created in account settings with support for team scoping and can be passed directly via standard HTTP Authorization Bearer headers."
            }
          ],
          "blockers": [],
          "remediations": [
            {
              "signal_code": "delegated_recovery",
              "code": "improve.operate.delegated_recovery",
              "instruction": "Provide delegated credential rotation, revocation, retry, and recovery paths without requiring unrestricted human intervention."
            }
          ]
        }
      ],
      "coverage": {
        "status": "complete",
        "required_signals": 11,
        "covered_signals": 11,
        "ratio": 1
      },
      "last_tested_at": "2026-08-07T21:15:51.933Z",
      "freshness": "fresh",
      "provenance": {
        "tier": "observed",
        "freshness": "fresh",
        "dispute": "none",
        "coverage_policy_digest": "sha256:334e56852b5c38e178fcea839cfba680fb82dd96693842d933776baed21d63df",
        "freshness_policy_digest": "sha256:f4e31a29c2ce994bb8c3009207294ffa086e82b8e0d695abc95d6d6bdb30c2e5",
        "basis_event_ids": [
          "sha256:104922e870be69919ce551494fd13108e11f6c130fed8deaaf8e22b567397071",
          "sha256:2b94ed117f512c21ef92ca4b0d73b8d4237b3979c1c800012616e25d00c5aa7a",
          "sha256:3691c2655d73ba0a3b508187b21696f02a6d229532b2c86d258476c96fe3cee9",
          "sha256:5ae7f8ad2c31b7e1da56b91a8aa5df010f388ef820875bc95e598e66b96d02db",
          "sha256:719002429cd9c1f00fbec1e3807a94037d223f82b8d7c108b68e70f4527b4e0a",
          "sha256:72bf2e2379918dd4b83554f82dfc8096eb2722dbcf6558077099cd7aa298af87",
          "sha256:7685cf53e1b6f42f754de1b7b2d041d74e76756560031e3e41bcbf53d0122ff0",
          "sha256:78f853951657689ead14b962d11a6a76274c464fafb961fde7526b71ed9c8ecd",
          "sha256:7c621394338384a4cfff7d2430f80f0dbb7ba863dc534690d5371cb8de2a2498",
          "sha256:89830dd588e732d0fc779be837319157795f6c00e4d2317e21c6c945124f177c",
          "sha256:8da836b25443b06622c7dc6f2735fe89df59b12b7929ae9a42cd9ce8919eac93",
          "sha256:913999d1929d13f23d56c4982d1fb6b6ed2d68e6c5a321884c6fc56fe2040178",
          "sha256:9a8f6cf8e7b08dfc867a5caa88e37795d9d777eca0366cd689612af0ec011859",
          "sha256:aee3b971e824b6bcc663e81a0d844c31a8da8a114d93ce0a09c7f12c6a51b80e",
          "sha256:b0e2107cc79e80b60d74d7be8e6172ab7eebc0b73ccd01e8eb7ff96ecf2f77c5",
          "sha256:c1c0c3159cf3bbd89c7a76c085c7cfee6c49bbb0ee840362997ba5992cfbb26d",
          "sha256:d19823b7aded8925b5ce1244479850b19b35375e3d374239b7ba6d3e8a02abc9",
          "sha256:d2aed53a008c3f4e0d842c0a9ce67abcfb8b3a49bbcd41a634b843c13ee5f942",
          "sha256:dca16d110b8311da5c60b1464c05960dd2c500aebe29e1fb507fd3fdb0141d66",
          "sha256:efe7990f3b89211ddb46e736b81b47c9d1669f045130b2335a4e6990e29142f8",
          "sha256:f6a9e864d26d936099a325474a365d36d3069511a5cec6b42b15e58f75593cca"
        ],
        "fields": [
          {
            "path": "/signals/0",
            "supporting_event_ids": [
              "sha256:c1c0c3159cf3bbd89c7a76c085c7cfee6c49bbb0ee840362997ba5992cfbb26d"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:15.138Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/1",
            "supporting_event_ids": [
              "sha256:dca16d110b8311da5c60b1464c05960dd2c500aebe29e1fb507fd3fdb0141d66"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:16.264Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/2",
            "supporting_event_ids": [
              "sha256:d19823b7aded8925b5ce1244479850b19b35375e3d374239b7ba6d3e8a02abc9"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:17.125Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/3",
            "supporting_event_ids": [
              "sha256:5ae7f8ad2c31b7e1da56b91a8aa5df010f388ef820875bc95e598e66b96d02db"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:15.138Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/4",
            "supporting_event_ids": [
              "sha256:3691c2655d73ba0a3b508187b21696f02a6d229532b2c86d258476c96fe3cee9"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:29.179Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/5",
            "supporting_event_ids": [
              "sha256:aee3b971e824b6bcc663e81a0d844c31a8da8a114d93ce0a09c7f12c6a51b80e"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:29.179Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/6",
            "supporting_event_ids": [
              "sha256:2b94ed117f512c21ef92ca4b0d73b8d4237b3979c1c800012616e25d00c5aa7a"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:29.179Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/7",
            "supporting_event_ids": [
              "sha256:913999d1929d13f23d56c4982d1fb6b6ed2d68e6c5a321884c6fc56fe2040178"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:51.933Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/8",
            "supporting_event_ids": [
              "sha256:d2aed53a008c3f4e0d842c0a9ce67abcfb8b3a49bbcd41a634b843c13ee5f942"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:50.537Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/9",
            "supporting_event_ids": [
              "sha256:72bf2e2379918dd4b83554f82dfc8096eb2722dbcf6558077099cd7aa298af87"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:17.125Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/10",
            "supporting_event_ids": [
              "sha256:719002429cd9c1f00fbec1e3807a94037d223f82b8d7c108b68e70f4527b4e0a"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:29.179Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/11",
            "supporting_event_ids": [
              "sha256:7c621394338384a4cfff7d2430f80f0dbb7ba863dc534690d5371cb8de2a2498"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:29.179Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/12",
            "supporting_event_ids": [
              "sha256:b0e2107cc79e80b60d74d7be8e6172ab7eebc0b73ccd01e8eb7ff96ecf2f77c5"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:29.179Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/13",
            "supporting_event_ids": [
              "sha256:89830dd588e732d0fc779be837319157795f6c00e4d2317e21c6c945124f177c"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:41.091Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/14",
            "supporting_event_ids": [
              "sha256:efe7990f3b89211ddb46e736b81b47c9d1669f045130b2335a4e6990e29142f8"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:19.841Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/15",
            "supporting_event_ids": [
              "sha256:7685cf53e1b6f42f754de1b7b2d041d74e76756560031e3e41bcbf53d0122ff0"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:50.537Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/16",
            "supporting_event_ids": [
              "sha256:8da836b25443b06622c7dc6f2735fe89df59b12b7929ae9a42cd9ce8919eac93"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:19.841Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/17",
            "supporting_event_ids": [
              "sha256:78f853951657689ead14b962d11a6a76274c464fafb961fde7526b71ed9c8ecd"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:16.264Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/18",
            "supporting_event_ids": [
              "sha256:9a8f6cf8e7b08dfc867a5caa88e37795d9d777eca0366cd689612af0ec011859"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:18.374Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/19",
            "supporting_event_ids": [
              "sha256:104922e870be69919ce551494fd13108e11f6c130fed8deaaf8e22b567397071"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:19.841Z",
            "freshness": "fresh"
          },
          {
            "path": "/signals/20",
            "supporting_event_ids": [
              "sha256:f6a9e864d26d936099a325474a365d36d3069511a5cec6b42b15e58f75593cca"
            ],
            "contradicting_event_ids": [],
            "accepted_proof_kinds": [
              "observed"
            ],
            "evidence_proof_kinds": [
              "observed"
            ],
            "latest_observation_at": "2026-08-07T21:15:21.376Z",
            "freshness": "fresh"
          }
        ]
      },
      "canonical_url": "https://sourcey.com/agent-readiness/vercel/vercel-rest-api/deployment-operations",
      "projection_digest": "sha256:baae76e0f0f34f416b053dd661fb54beb3fd0df2fd35ebc0eb7d4f17927f98da"
    }
  }
}
