{
  "contract": "sourcey.site-record/v1alpha1",
  "release_id": "sha256:eb26520adaa745ad87e5eff4894d8089d57d389e18d55ae552099c94e02ac3f5",
  "snapshot_id": "sha256:cad3d2314991260e858cbbe1418d5fb118829af6432d1f333ea48a32e873ccc1",
  "artifact_sha256": "sha256:0d116b9a61ec492f418d050e6a019ac2a1cf5ee80336c3470fe2a0ec9f65d5b3",
  "data": {
    "entity_id": "ent_01kyh8fpe12771dg7fafgdgfcy",
    "entity_slug": "asana",
    "profile": {
      "projection_contract": "sourcey.agent-readiness-projection/v1alpha1",
      "agent_readiness_profile_id": "arp_01m4t9s32gzjpyxbrxt7a1ewnd",
      "entity_id": "ent_01kyh8fpe12771dg7fafgdgfcy",
      "scope": {
        "product": {
          "key": "asana-work-management",
          "name": "Asana"
        },
        "job": {
          "key": "task-create",
          "name": "Create a task"
        }
      },
      "catalog_binding": {
        "base_release_id": "sha256:b8d2307bdb2bd192cdb6e4a0586bf54e4c306eb8bae6a6f3c48ddff04bcdcee1",
        "entity_revision_digest": "sha256:3551f84c380288ca3f2a5422b0f914ec95e12557f589979e64ab7008ce5e368e"
      },
      "declaration_revision_digest": "sha256:c61048d331de277ef207d718a9e84992a0a3112deb6015f01b05ddc5b35f03a6",
      "declaration": {
        "declaration_id": "declaration_asana_asana_work_management_task_create",
        "provenance": {
          "repository": "sourcey/agent-ready-services",
          "commit": "c81ce928117a49d2445637e8da1ced83febf7f27",
          "path": "entities/as/asana.yaml",
          "git_blob_oid": "98d13bfe05a9d02fb1f5b254de1ff5e92be4f042",
          "blob_digest": "sha256:587047d88b265bc009fcedc37e9cf20e1a105fa15047d83fd228a90eb43f6ed4"
        },
        "status": "community_declared"
      },
      "surface_catalog": {
        "participants": [
          {
            "participant_id": "asana",
            "roles": [
              "access_operator",
              "identity_provider",
              "operations_provider",
              "payment_provider",
              "provisioning_provider",
              "subject"
            ],
            "identity": {
              "entity_id": "ent_01kyh8fpe12771dg7fafgdgfcy"
            }
          }
        ],
        "resources": [
          {
            "resource_id": "account-signup",
            "uri": "https://asana.com/create-account",
            "roles": [
              "access"
            ],
            "operated_by_participant_id": "asana",
            "standard_bindings": []
          },
          {
            "resource_id": "api-reference",
            "uri": "https://developers.asana.com/reference/createtask",
            "roles": [
              "discovery",
              "documentation",
              "operations",
              "provisioning"
            ],
            "operated_by_participant_id": "asana",
            "standard_bindings": []
          },
          {
            "resource_id": "authentication",
            "uri": "https://developers.asana.com/docs/authentication",
            "roles": [
              "authentication",
              "documentation"
            ],
            "operated_by_participant_id": "asana",
            "standard_bindings": []
          },
          {
            "resource_id": "mcp-documentation",
            "uri": "https://developers.asana.com/docs/using-asanas-mcp-server",
            "roles": [
              "documentation",
              "operations"
            ],
            "operated_by_participant_id": "asana",
            "standard_bindings": []
          },
          {
            "resource_id": "pricing",
            "uri": "https://asana.com/pricing",
            "roles": [
              "pricing"
            ],
            "operated_by_participant_id": "asana",
            "standard_bindings": []
          },
          {
            "resource_id": "service-terms",
            "uri": "https://asana.com/terms",
            "roles": [
              "terms"
            ],
            "operated_by_participant_id": "asana",
            "standard_bindings": []
          }
        ],
        "endpoints": [
          {
            "endpoint_id": "mcp-server",
            "uri": "https://mcp.asana.com/v2/mcp",
            "transport": "http",
            "roles": [
              "service"
            ],
            "operated_by_participant_id": "asana",
            "standard_bindings": []
          },
          {
            "endpoint_id": "registration",
            "uri": "https://asana.com/create-account",
            "transport": "http",
            "roles": [
              "registration"
            ],
            "operated_by_participant_id": "asana",
            "standard_bindings": []
          },
          {
            "endpoint_id": "service-api",
            "uri": "https://app.asana.com/api/1.0",
            "transport": "http",
            "roles": [
              "service"
            ],
            "operated_by_participant_id": "asana",
            "standard_bindings": []
          }
        ],
        "interfaces": [
          {
            "interface_id": "api-authentication",
            "modality": "network_api",
            "functions": [
              "authentication"
            ],
            "endpoint_ids": [],
            "resource_ids": [
              "authentication"
            ],
            "operated_by_participant_id": "asana",
            "standard_bindings": []
          },
          {
            "interface_id": "mcp-server",
            "modality": "tool_server",
            "functions": [
              "service_operation"
            ],
            "endpoint_ids": [
              "mcp-server"
            ],
            "resource_ids": [
              "mcp-documentation"
            ],
            "operated_by_participant_id": "asana",
            "standard_bindings": []
          },
          {
            "interface_id": "service-api",
            "modality": "network_api",
            "functions": [
              "service_operation"
            ],
            "endpoint_ids": [
              "service-api"
            ],
            "resource_ids": [
              "api-reference"
            ],
            "operated_by_participant_id": "asana",
            "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": "documentation-describes-mcp",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "mcp-documentation"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "mcp-server"
            }
          },
          {
            "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": "Asana's Personal plan is $0 and free forever, with unlimited tasks and projects."
          },
          {
            "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:36:02.136Z",
      "revision_digest": "sha256:e878f888719dc78619d2a108551776ca8d06a5c6b8f13aa16d65e1cc52a51698",
      "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://asana.com/llms.txt",
          "descriptor_url": "https://asana.com/llms.txt",
          "attempt_digest": "sha256:36fabe78baab541b779e40179079be26816a5f8635f922855904274d3d93f7a0",
          "adapter": {
            "namespace": "llms.txt",
            "version": "1"
          }
        },
        {
          "fact": "oauth_protected_resource",
          "value": "https://mcp.asana.com/v2/mcp",
          "descriptor_url": "https://mcp.asana.com/.well-known/oauth-protected-resource/v2/mcp",
          "attempt_digest": "sha256:7a6cfd639c7c6e8c51918f8017258d100ce2054486860f78caded9ae724ff0d1",
          "adapter": {
            "namespace": "rfc9728",
            "version": "1"
          }
        },
        {
          "fact": "oauth_authorization_server",
          "value": "https://app.asana.com/",
          "descriptor_url": "https://mcp.asana.com/.well-known/oauth-protected-resource/v2/mcp",
          "attempt_digest": "sha256:7a6cfd639c7c6e8c51918f8017258d100ce2054486860f78caded9ae724ff0d1",
          "adapter": {
            "namespace": "rfc9728",
            "version": "1"
          }
        },
        {
          "fact": "oauth_authorization_server",
          "value": "https://app.asana.com/",
          "descriptor_url": "https://app.asana.com/.well-known/oauth-authorization-server",
          "attempt_digest": "sha256:ed5404dc23f0c9d44e5dae0e881c3d69a8dda8194a6c35b558a2cb5e7d98a619",
          "adapter": {
            "namespace": "rfc8414",
            "version": "1"
          }
        },
        {
          "fact": "oauth_authorization_server",
          "value": "https://mcp.asana.com/",
          "descriptor_url": "https://mcp.asana.com/.well-known/oauth-authorization-server",
          "attempt_digest": "sha256:9f3500a153426f2d8ce4f799e862e8e30f63ebab755bfc39d32ac9a7962524d5",
          "adapter": {
            "namespace": "rfc8414",
            "version": "1"
          }
        },
        {
          "fact": "oauth_protected_resource",
          "value": "https://mcp.asana.com/",
          "descriptor_url": "https://mcp.asana.com/.well-known/oauth-protected-resource",
          "attempt_digest": "sha256:dd72c5abf895880cfcf19f7fa0b213c85fa95a78e84f99d5ef18b9e24287a1d8",
          "adapter": {
            "namespace": "rfc9728",
            "version": "1"
          }
        },
        {
          "fact": "oauth_authorization_server",
          "value": "https://mcp.asana.com/",
          "descriptor_url": "https://mcp.asana.com/.well-known/oauth-protected-resource",
          "attempt_digest": "sha256:dd72c5abf895880cfcf19f7fa0b213c85fa95a78e84f99d5ef18b9e24287a1d8",
          "adapter": {
            "namespace": "rfc9728",
            "version": "1"
          }
        },
        {
          "fact": "agent_documentation",
          "value": "https://developers.asana.com/llms.txt",
          "descriptor_url": "https://developers.asana.com/llms.txt",
          "attempt_digest": "sha256:b22e5fd9985cc991e6e9980741902e5054bd355ea372c1e4436b47f7944b424e",
          "adapter": {
            "namespace": "llms.txt",
            "version": "1"
          }
        },
        {
          "fact": "documentation_route",
          "value": "https://app.asana.com/",
          "descriptor_url": "https://developers.asana.com/docs/overview",
          "attempt_digest": "sha256:53271f929cb8ca39eeea7c70ddd53fa62f3e395d0e506c3061d1515b88695bc0",
          "adapter": {
            "namespace": "llms.txt",
            "version": "route"
          }
        },
        {
          "fact": "documentation_route",
          "value": "https://mcp.asana.com/",
          "descriptor_url": "https://developers.asana.com/docs/using-asanas-mcp-server",
          "attempt_digest": "sha256:2f04e10b9a9a7b1d220bb638592564d98ebd9ce354c63399e11d31d77b043a06",
          "adapter": {
            "namespace": "llms.txt",
            "version": "route"
          }
        }
      ],
      "discovery_run_at": null,
      "run": {
        "started_at": "2026-10-13T09:34:51.523Z",
        "finished_at": "2026-10-13T09:36:02.136Z",
        "discovery_reads": 46,
        "exchanges": [
          {
            "purpose": "probe_operation",
            "role": "request",
            "method": "POST",
            "url": "https://app.asana.com/api/1.0/tasks",
            "started_at": "2026-10-13T09:35:35.866Z",
            "finished_at": "2026-10-13T09:35:35.932Z",
            "response": {
              "status": 401,
              "media_type": "application/json",
              "content_bytes": 181,
              "content_digest": "sha256:94313bcc68e0c00870ece6d037a4888701c57c6ce5c2c6c336f84789c4f2f8b8"
            },
            "transport_error": null,
            "exchange_digest": "sha256:d28a2291040e81534943088b89b85a34e8fd6af1ccf17762523956e29eef14ca"
          },
          {
            "purpose": "probe_resource_metadata",
            "role": "request",
            "method": "GET",
            "url": "https://app.asana.com/.well-known/oauth-protected-resource/api/1.0/tasks",
            "started_at": "2026-10-13T09:35:39.980Z",
            "finished_at": "2026-10-13T09:35:40.047Z",
            "response": {
              "status": 400,
              "media_type": "text/html",
              "content_bytes": 468,
              "content_digest": "sha256:a85cf2f720aa7429f5075ee8a9197195973450188ec0662355d36463ed177ebd"
            },
            "transport_error": null,
            "exchange_digest": "sha256:2499c7e024cd42ebac497f9bf78b76afdf90c378b59e64be4a09a9b8a3078c98"
          },
          {
            "purpose": "probe_resource_metadata",
            "role": "request",
            "method": "GET",
            "url": "https://app.asana.com/.well-known/oauth-protected-resource",
            "started_at": "2026-10-13T09:35:44.210Z",
            "finished_at": "2026-10-13T09:35:44.280Z",
            "response": {
              "status": 400,
              "media_type": "text/html",
              "content_bytes": 468,
              "content_digest": "sha256:a85cf2f720aa7429f5075ee8a9197195973450188ec0662355d36463ed177ebd"
            },
            "transport_error": null,
            "exchange_digest": "sha256:a86f46b17bacc478c4239db7dcabf6809d5ee98f1cc4f0a7abb175476a03eca3"
          },
          {
            "purpose": "probe_operation",
            "role": "session_opening",
            "method": "POST",
            "url": "https://mcp.asana.com/v2/mcp",
            "started_at": "2026-10-13T09:35:47.447Z",
            "finished_at": "2026-10-13T09:35:47.509Z",
            "response": {
              "status": 401,
              "media_type": "application/json",
              "content_bytes": 100,
              "content_digest": "sha256:46d2491e41d0554e199112527ef4cdc68c5a93dba4ebcfc471864c4ae6ec9d8f"
            },
            "transport_error": null,
            "exchange_digest": "sha256:341adbed39f2e9c8ba78abaa4ce7031c6ea9c73347f3107129ff6ddc8847acd1"
          },
          {
            "purpose": "probe_resource_metadata",
            "role": "request",
            "method": "GET",
            "url": "https://mcp.asana.com/.well-known/oauth-protected-resource/v2",
            "started_at": "2026-10-13T09:35:51.545Z",
            "finished_at": "2026-10-13T09:35:51.612Z",
            "response": {
              "status": 200,
              "media_type": "application/json",
              "content_bytes": 324,
              "content_digest": "sha256:8f4bd465a09701c0e04d7e82736486153d7ed59e3aaff2e1de29aa44f90ce2d9"
            },
            "transport_error": null,
            "exchange_digest": "sha256:0c8c34c972ad7a913747d357055fedf3ee0a603ea399189c967c2fdd1ec0caec"
          },
          {
            "purpose": "probe_authorization_server",
            "role": "request",
            "method": "GET",
            "url": "https://app.asana.com/.well-known/oauth-authorization-server",
            "started_at": "2026-10-13T09:35:54.802Z",
            "finished_at": "2026-10-13T09:35:54.879Z",
            "response": {
              "status": 200,
              "media_type": "application/json",
              "content_bytes": 579,
              "content_digest": "sha256:f60d41a5138f3e07b86b06f4f5ac4a2d8c325657ebc0384274648a70ee01f024"
            },
            "transport_error": null,
            "exchange_digest": "sha256:8af78d74e6f0e7fd6303efa23e49e98a8ebaaa0ad096d3c65015767bcd94969c"
          },
          {
            "purpose": "probe_page",
            "role": "request",
            "method": "GET",
            "url": "https://asana.com/create-account",
            "started_at": "2026-10-13T09:35:57.993Z",
            "finished_at": "2026-10-13T09:35:58.097Z",
            "response": {
              "status": 200,
              "media_type": "text/html",
              "content_bytes": 383604,
              "content_digest": "sha256:108ca9836e98d34ae405de5c600f20ac54223498125895d2d561b76e62b0e672"
            },
            "transport_error": null,
            "exchange_digest": "sha256:75e0398b66d3c884fcc01d5e63a2ee853e5f598dc2ef348454c71337d87c593c"
          }
        ],
        "assertions": []
      },
      "last_run_at": "2026-10-13T09:36:02.136Z",
      "publication": {
        "visibility": "discoverable",
        "reasons": []
      },
      "provenance": {
        "dispute": "none",
        "vendor_attestation": {
          "status": "none"
        },
        "basis_event_ids": []
      },
      "canonical_url": "https://sourcey.com/c/asana/agent-readiness/asana-work-management/task-create",
      "projection_digest": "sha256:736870cc40b7802e5ad0bcef07c0ffed1cb3962e0b73a9e68383662e0ba93d4d"
    }
  }
}
