{
  "contract": "sourcey.site-record/v1alpha1",
  "release_id": "sha256:aee4e70d2be957fa9235c225748a328e4eefc0252882edd6db0342960161d941",
  "snapshot_id": "sha256:08eb1d9271ff13a04300eed2aafb3bf6af0eb4f01b5d5e3daaa8ed2bf2737311",
  "artifact_sha256": "sha256:080dc492f41a47f5d3867feb3411f6cfb6bdc66901f15581220373a644ef392e",
  "data": {
    "entity_id": "ent_01kyh8fpe304e5cj5ef7835m3q",
    "entity_slug": "linear",
    "profile": {
      "projection_contract": "sourcey.agent-readiness-projection/v1alpha1",
      "agent_readiness_profile_id": "arp_01m4t9s32gmkq6njp7hjp7sj23",
      "entity_id": "ent_01kyh8fpe304e5cj5ef7835m3q",
      "scope": {
        "product": {
          "key": "linear-graphql-api",
          "name": "Linear GraphQL API"
        },
        "job": {
          "key": "task-create",
          "name": "Create a task"
        }
      },
      "catalog_binding": {
        "base_release_id": "sha256:b8d2307bdb2bd192cdb6e4a0586bf54e4c306eb8bae6a6f3c48ddff04bcdcee1",
        "entity_revision_digest": "sha256:49ba602fe721d1929358f2024394c71d58cadefbb6bfa55cc43869d4dd8ff703"
      },
      "declaration_revision_digest": "sha256:fadb690f4062d09a642ce6c368c7522a55b0bd3bd6a10d89a3f953c808000bab",
      "declaration": {
        "declaration_id": "declaration_linear_linear_graphql_api_task_create",
        "provenance": {
          "repository": "sourcey/agent-ready-services",
          "commit": "c81ce928117a49d2445637e8da1ced83febf7f27",
          "path": "entities/li/linear.yaml",
          "git_blob_oid": "6a77e787258cd9696ee20e432f10e52911af54ad",
          "blob_digest": "sha256:1036c65165c30a2b857fd76045ba2b8b637467f8e9c015a098739a905055e3d8"
        },
        "status": "community_declared"
      },
      "surface_catalog": {
        "participants": [
          {
            "participant_id": "linear",
            "roles": [
              "access_operator",
              "identity_provider",
              "operations_provider",
              "payment_provider",
              "provisioning_provider",
              "subject"
            ],
            "identity": {
              "entity_id": "ent_01kyh8fpe304e5cj5ef7835m3q"
            }
          }
        ],
        "resources": [
          {
            "resource_id": "account-signup",
            "uri": "https://linear.app/signup",
            "roles": [
              "access"
            ],
            "operated_by_participant_id": "linear",
            "standard_bindings": []
          },
          {
            "resource_id": "api-reference",
            "uri": "https://linear.app/developers/graphql",
            "roles": [
              "authentication",
              "discovery",
              "documentation",
              "operations",
              "provisioning"
            ],
            "operated_by_participant_id": "linear",
            "standard_bindings": []
          },
          {
            "resource_id": "creating-issues",
            "uri": "https://linear.app/docs/creating-issues",
            "roles": [
              "documentation"
            ],
            "operated_by_participant_id": "linear",
            "standard_bindings": []
          },
          {
            "resource_id": "pricing",
            "uri": "https://linear.app/pricing",
            "roles": [
              "pricing"
            ],
            "operated_by_participant_id": "linear",
            "standard_bindings": []
          },
          {
            "resource_id": "service-terms",
            "uri": "https://linear.app/terms",
            "roles": [
              "terms"
            ],
            "operated_by_participant_id": "linear",
            "standard_bindings": []
          }
        ],
        "endpoints": [
          {
            "endpoint_id": "registration",
            "uri": "https://linear.app/signup",
            "transport": "http",
            "roles": [
              "registration"
            ],
            "operated_by_participant_id": "linear",
            "standard_bindings": []
          },
          {
            "endpoint_id": "service-api",
            "uri": "https://api.linear.app/graphql",
            "transport": "http",
            "roles": [
              "service"
            ],
            "operated_by_participant_id": "linear",
            "standard_bindings": []
          }
        ],
        "interfaces": [
          {
            "interface_id": "api-authentication",
            "modality": "network_api",
            "functions": [
              "authentication"
            ],
            "endpoint_ids": [],
            "resource_ids": [
              "api-reference"
            ],
            "operated_by_participant_id": "linear",
            "standard_bindings": []
          },
          {
            "interface_id": "service-api",
            "modality": "network_api",
            "functions": [
              "service_operation"
            ],
            "endpoint_ids": [
              "service-api"
            ],
            "resource_ids": [
              "api-reference"
            ],
            "operated_by_participant_id": "linear",
            "standard_bindings": []
          }
        ],
        "relations": [
          {
            "relation_id": "authentication-authenticates-api",
            "kind": "authenticates",
            "from": {
              "node_kind": "interface",
              "node_id": "api-authentication"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "service-api"
            }
          },
          {
            "relation_id": "reference-describes-api",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "api-reference"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "service-api"
            }
          },
          {
            "relation_id": "signup-precedes-authentication",
            "kind": "precedes",
            "from": {
              "node_kind": "resource",
              "node_id": "account-signup"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "api-authentication"
            }
          }
        ],
        "surface_exclusions": [
          {
            "exclusion_id": "free-job-no-checkout",
            "role": "checkout",
            "rationale": "Linear's Free plan is $0 for everyone, with unlimited members and 250 issues."
          },
          {
            "exclusion_id": "separate-eligibility-resource",
            "role": "eligibility",
            "rationale": "Access conditions are published within the vendor's terms; no separate eligibility resource is declared."
          }
        ]
      },
      "lifecycle": "active",
      "effective_from": "2026-10-13T09:34:44.356Z",
      "revision_digest": "sha256:cfc2015ba8314b79faa20c2ce0e8f56690383d478614fe26d1f0422ef37f59e6",
      "policy_digest": "sha256:b612172aad277b54461de84e006815126f2df566563954b02f4432a39cad89ac",
      "policy_version": "kind-2026-10-12.2",
      "policy_as_of": "2026-10-05T00:00:00Z",
      "job": {
        "job_id": "task-create",
        "job_digest": "sha256:dba897ea4c7a4c5d54fa9d69d8509872e8866c229d062fe6ca8cdfb8d2bd7728",
        "category": "task-tracking",
        "name": "Create a task",
        "statement": "Create a task titled with the run's nonce, then read it back."
      },
      "interface_id": "service-api",
      "label": "probed",
      "label_run_at": null,
      "grade": {
        "letter": "B+",
        "statement": "A person signs up and hands over a key.",
        "steps": [
          {
            "step": "discover",
            "outcome": "machine",
            "timing": null
          },
          {
            "step": "authority",
            "outcome": "workaround",
            "timing": "setup"
          },
          {
            "step": "onboard",
            "outcome": "workaround",
            "timing": "setup"
          },
          {
            "step": "pay",
            "outcome": "not_applicable",
            "timing": null
          },
          {
            "step": "confirm",
            "outcome": "machine",
            "timing": null
          },
          {
            "step": "sustain",
            "outcome": "workaround",
            "timing": "setup"
          }
        ],
        "job": "reachable",
        "approvals": [],
        "workarounds": [
          {
            "step": "authority",
            "timing": "setup"
          },
          {
            "step": "onboard",
            "timing": "setup"
          },
          {
            "step": "sustain",
            "timing": "setup"
          }
        ]
      },
      "discovery": [
        {
          "fact": "agent_documentation",
          "value": "https://linear.app/llms.txt",
          "descriptor_url": "https://linear.app/llms.txt",
          "attempt_digest": "sha256:6a7ed1b311e81045dd1b192640eed67cd7b3b51414783653c8221cc63a7c84c7",
          "adapter": {
            "namespace": "llms.txt",
            "version": "1"
          }
        },
        {
          "fact": "oauth_authorization_server",
          "value": "https://api.linear.app/",
          "descriptor_url": "https://api.linear.app/.well-known/oauth-authorization-server",
          "attempt_digest": "sha256:dcf4c0dc55d3e1cfc76945cd073f2d00cc48660d7126d20a85ab5ae063357285",
          "adapter": {
            "namespace": "rfc8414",
            "version": "1"
          }
        },
        {
          "fact": "documentation_route",
          "value": "https://api.linear.app/",
          "descriptor_url": "https://linear.app/developers/graphql.md",
          "attempt_digest": "sha256:448560da41a61e9b5d075f92d1e712efe70310dfcfe861c267754dec7ce198ec",
          "adapter": {
            "namespace": "llms.txt",
            "version": "route"
          }
        }
      ],
      "discovery_run_at": null,
      "run": {
        "started_at": "2026-10-13T09:34:07.221Z",
        "finished_at": "2026-10-13T09:34:44.356Z",
        "discovery_reads": 29,
        "exchanges": [
          {
            "purpose": "probe_operation",
            "role": "request",
            "method": "POST",
            "url": "https://api.linear.app/graphql",
            "started_at": "2026-10-13T09:34:28.220Z",
            "finished_at": "2026-10-13T09:34:28.316Z",
            "response": {
              "status": 400,
              "media_type": "application/json",
              "content_bytes": 207,
              "content_digest": "sha256:a46e83f12b64de210709da456b1c4d9bc08f7fb8c808fd49a11f9c29ed226b7e"
            },
            "transport_error": null,
            "exchange_digest": "sha256:94cd45dc4095c5118dc91a927c5304a59da1389e76abc429a4c97bf568452be4"
          },
          {
            "purpose": "probe_resource_metadata",
            "role": "request",
            "method": "GET",
            "url": "https://api.linear.app/.well-known/oauth-protected-resource/graphql",
            "started_at": "2026-10-13T09:34:32.378Z",
            "finished_at": "2026-10-13T09:34:32.463Z",
            "response": {
              "status": 404,
              "media_type": "text/html",
              "content_bytes": 183,
              "content_digest": "sha256:0b5f32f07767a06b2e6b883873b845be514c666e9c8661ffdaa9ea31c74cbc83"
            },
            "transport_error": null,
            "exchange_digest": "sha256:b08209bffca64d73eec0dfadbc1f0c27b4098cbc85567bbb0e066bd1d698ff9f"
          },
          {
            "purpose": "probe_resource_metadata",
            "role": "request",
            "method": "GET",
            "url": "https://api.linear.app/.well-known/oauth-protected-resource",
            "started_at": "2026-10-13T09:34:36.480Z",
            "finished_at": "2026-10-13T09:34:36.587Z",
            "response": {
              "status": 404,
              "media_type": "text/html",
              "content_bytes": 175,
              "content_digest": "sha256:b67f615b86491dcca7898315c9e21283957461cf11d59597c585dc3e7ec6c7b0"
            },
            "transport_error": null,
            "exchange_digest": "sha256:af262b5b374c6dc5d27b5c79f4bc356d4eec937a26d65e4dab9f28f024449e94"
          },
          {
            "purpose": "probe_page",
            "role": "request",
            "method": "GET",
            "url": "https://linear.app/signup",
            "started_at": "2026-10-13T09:34:40.455Z",
            "finished_at": "2026-10-13T09:34:40.488Z",
            "response": {
              "status": 200,
              "media_type": "text/html",
              "content_bytes": 31318,
              "content_digest": "sha256:bbb658aecd92b4e5c93982e4d639e217a02768f9b974a942ce0d9e35a248c414"
            },
            "transport_error": null,
            "exchange_digest": "sha256:9a597f63eed25cc42ec174de1f017356f6c70661585c3490ee4d01f98e8428ec"
          }
        ],
        "assertions": []
      },
      "last_run_at": "2026-10-13T09:34:44.356Z",
      "publication": {
        "visibility": "discoverable",
        "reasons": []
      },
      "provenance": {
        "dispute": "none",
        "vendor_attestation": {
          "status": "none"
        },
        "basis_event_ids": []
      },
      "canonical_url": "https://sourcey.com/c/linear/agent-readiness/linear-graphql-api/task-create",
      "projection_digest": "sha256:64d4aad5c6ee943abb00ed17b5558b6580cb98a4c3cabf0192d307cb2da0968b"
    }
  }
}
