{
  "api_contract": "sourcey.catalog-api/v1",
  "release_id": "sha256:5f55a0147eca9a82d821b7cfb73339dd8059c146b9acbb6ed66c9e3d40a8e1b0",
  "artifact_sha256": "sha256:ec393385ec4e7be15a393d925f0df78d54a12787f2995a84fad1b570583dac06",
  "data": {
    "revision_contract": "sourcey.agent-readiness-revision/v1alpha1",
    "agent_readiness_profile_id": "arp_01kzf0m4xj3k8sa6c2w9nq4vf7",
    "entity_id": "ent_01kyyts97tdz1rtzzt919cthny",
    "scope": {
      "product": {
        "key": "slack-web-api",
        "name": "Slack Web API"
      },
      "funnel": {
        "key": "workspace-app-operations",
        "name": "Workspace app operations"
      }
    },
    "catalog_binding": {
      "base_release_id": "sha256:8986cb1640fd748dd005e5c94c7b02d3f44a3d39ff6b72573091bd81af84c61e",
      "entity_revision_digest": "sha256:6bf818ed8305ea50197752914eecaa92ffd3a14f68afe01712b18be0cb13a2eb"
    },
    "declaration_revision_digest": "sha256:f3bb080b1f1ccd9b33d2c66000ce4bed9c7f7cfaad35a873ade0d539884631cf",
    "declaration": {
      "declaration_id": "declaration_slack_web_api_workspace_operations",
      "provenance": {
        "repository": "sourcey/agent-ready-services",
        "commit": "ca383f7867c18d91567fcb8326be55f7411d9554",
        "path": "entities/sl/slack.yaml",
        "git_blob_oid": "7c7a8df73b2d7f6b1f9e148697f3ac8803cd9418",
        "blob_digest": "sha256:70989ffd1ab68687fdf0643c1ed55f12e8a6746593d5e57cfcfdbf0634370e8b"
      },
      "status": "community_declared"
    },
    "lifecycle": "active",
    "effective_from": "2026-09-06T08:47:58Z",
    "signals": [
      {
        "stage": "evaluate",
        "signal_code": "eligibility_decidability",
        "selector_group_id": "eligibility_decidability-primary",
        "value": "yes",
        "observed_at": "2026-09-06T08:51:50.277Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "readiness-5cf60e6ed44cb7227b1e801c24793d749277f1ac820a2a2d1a2e3aaea9e3ae94"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:554cd3f856dd0b2351b3a3a7706f737b32dacffc621070a51fdef03b694ebf20",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:582a993f51388d974b61feaf0830e8a2c1b8a944e05b4f9cc1903ce8a29ae042",
              "sha256:6bcb22b2d17b49bc88f322a88c706ad4613bf6035751f36676aa275e0823a092",
              "sha256:9e6b42d34b8c86882330ef4b7936cf3e4f3968ffea59b5cdcc49dcbf874982a4",
              "sha256:ed5373bb2bb84638dbd0d650fc9bec60d985d8d610df3d47ff09ca43e3b2a2af"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "readiness-5cf60e6ed44cb7227b1e801c24793d749277f1ac820a2a2d1a2e3aaea9e3ae94"
            },
            "locators": [
              {
                "artifact_digest": "sha256:9e6b42d34b8c86882330ef4b7936cf3e4f3968ffea59b5cdcc49dcbf874982a4",
                "start_byte": 13091,
                "end_byte": 13891,
                "value_digest": "sha256:2474be0837078c98ebce543faddbf82e97d52e0783dd382d30fc7c60417f5df5"
              },
              {
                "artifact_digest": "sha256:9e6b42d34b8c86882330ef4b7936cf3e4f3968ffea59b5cdcc49dcbf874982a4",
                "start_byte": 17120,
                "end_byte": 17921,
                "value_digest": "sha256:041484c26c9b22a01f7c61b62f142c3f625921cac92e31377df8b338d01563fc"
              }
            ]
          }
        ],
        "note": "Slack workspace members can install apps by default, and workspace owners can enable app approval. The features are available on all subscriptions and supported for all members."
      },
      {
        "stage": "evaluate",
        "signal_code": "pricing_decidability",
        "selector_group_id": "pricing_decidability-primary",
        "value": "yes",
        "observed_at": "2026-09-06T08:51:47.953Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "pricing"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:f708b6c5130f6de2a76cdbeedab673e233b40904faede4500d00834b349e42fa",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:239202d1dbae954bd9b1827e3b55e6fa2d5e7baa2eea674de952932154e40f91",
              "sha256:2d87358e7a6238584230dff0ef8efce21dbe19ac02ea3b19cbf809327fc84f16",
              "sha256:39a37adf7e76d079bcd42e6c777d9219277f236fd3805569556eb4680a79fa63",
              "sha256:8f795a82163e6458b049f6db91e88c20ddd624795897f796ddd32135e5933bfb"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "pricing"
            },
            "locators": [
              {
                "artifact_digest": "sha256:39a37adf7e76d079bcd42e6c777d9219277f236fd3805569556eb4680a79fa63",
                "start_byte": 15932,
                "end_byte": 16733,
                "value_digest": "sha256:d0db4a2fd18749cacf4eb2396f8891efc21dfdeac081f7054bf019047bdef507"
              }
            ]
          }
        ],
        "note": "Slack provides an explicit Free plan forever at $US0, which includes 90 days of message history, up to 10 apps, 1:1 huddles, and direct messages."
      },
      {
        "stage": "evaluate",
        "signal_code": "service_discovery",
        "selector_group_id": "service_discovery-primary",
        "value": "yes",
        "observed_at": "2026-09-06T08:51:38.501Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "web-api"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:69430c3dbc5e5ed60d040aa04a7bb537e954cbc15cdfa87fb624fe1ff268d9a6",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:4d21e854f82ebc598f1b3dbbbada4efa88daa961a2144f6a19b68a9a8353787c",
              "sha256:83b36cf5f2e20c6e20944ae114497a4b2babeec4f5084980c872b31b7356341f",
              "sha256:a6caaf77f6da7d9065bc7a1298b62881017f5c162c59d064d355d55a27498f97",
              "sha256:e9cb82fce86c25085a43cd869b293927bb4159beaeeb682d5926ac349072c006"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "web-api"
            },
            "locators": [
              {
                "artifact_digest": "sha256:83b36cf5f2e20c6e20944ae114497a4b2babeec4f5084980c872b31b7356341f",
                "start_byte": 4635,
                "end_byte": 5445,
                "value_digest": "sha256:f5997b60bb404232b5e649949c1da533072b7d23d5e9c3156651500096835aae"
              },
              {
                "artifact_digest": "sha256:83b36cf5f2e20c6e20944ae114497a4b2babeec4f5084980c872b31b7356341f",
                "start_byte": 5446,
                "end_byte": 6226,
                "value_digest": "sha256:595645c001279fbc2b31cfb50bbfbd89a8461fda23de95fe72c09ca8223b249f"
              }
            ]
          }
        ],
        "note": "The Slack Web API is publicly documented with stable HTTPS RPC-style endpoints in the form https://slack.com/api/METHOD_FAMILY.method."
      },
      {
        "stage": "evaluate",
        "signal_code": "structured_evaluation_discovery",
        "selector_group_id": "structured_evaluation_discovery-primary",
        "value": "yes",
        "observed_at": "2026-09-06T08:51:38.501Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "authentication"
          },
          {
            "node_kind": "resource",
            "node_id": "oauth"
          },
          {
            "node_kind": "resource",
            "node_id": "web-api"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:f2877154321866804126a3c2dfb0ecd91f2fde5c45b133957580c5df1b696346",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:0ac72fc4063dabd7423280a1319e5e63ee5407aeafd15265f29314271df21722",
              "sha256:9990e1e1b26f0bc1ff0f19a661caadb6c7bbc426583e8b3e7affacfacc3a6f8f",
              "sha256:f5cf356b522d63bc576d3c2aebbcd7ace3c74ce0d727e2ea50f971b33cc4271c",
              "sha256:f63fd476148d4aa97b5888715efdf809a61cb6a0386a4fd7beb8055e57bcd87a"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "authentication"
            },
            "locators": [
              {
                "artifact_digest": "sha256:f63fd476148d4aa97b5888715efdf809a61cb6a0386a4fd7beb8055e57bcd87a",
                "start_byte": 6133,
                "end_byte": 6926,
                "value_digest": "sha256:59f2633950398aa6ec4c625da86f11dde500d87f186816e2a1be6f75cf391eb7"
              }
            ]
          },
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:69430c3dbc5e5ed60d040aa04a7bb537e954cbc15cdfa87fb624fe1ff268d9a6",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:3b9124f13acd24509405dd91458184605c7b2f4dd2a08b39ab3c3dc8903832e5",
              "sha256:4d21e854f82ebc598f1b3dbbbada4efa88daa961a2144f6a19b68a9a8353787c",
              "sha256:83b36cf5f2e20c6e20944ae114497a4b2babeec4f5084980c872b31b7356341f",
              "sha256:a6caaf77f6da7d9065bc7a1298b62881017f5c162c59d064d355d55a27498f97"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "web-api"
            },
            "locators": [
              {
                "artifact_digest": "sha256:83b36cf5f2e20c6e20944ae114497a4b2babeec4f5084980c872b31b7356341f",
                "start_byte": 12430,
                "end_byte": 13228,
                "value_digest": "sha256:564c15c2c69dbfbd4010c082b5cc8d894f34aa3d7d73be5ec2b8561b7e716461"
              }
            ]
          }
        ],
        "note": "Slack developer documentation explicitly points to an llms.txt structured evaluation artifact ('LLM? Read llms.txt')."
      },
      {
        "stage": "evaluate",
        "signal_code": "terms_access",
        "selector_group_id": "terms_access-primary",
        "value": "yes",
        "observed_at": "2026-09-06T08:50:31.098Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "service-terms"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:5bc1d323e350f287857ab2db473e43621e9c5c8d03ddd2c63c5e120c5226dd09",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:090121b83bd196d3868da7b714a1306dbf9f3db3e37f356a28be527a4b25d5c0",
              "sha256:245753e9dd8ec62ed8c33ed51b26ade172371d6d6ec1858c6e7f8d777e8458a3",
              "sha256:40d209009d8f1e24d07fb8e173b0d42126e1d4264523711b030fb4dd61643f7e",
              "sha256:b3d53ff279199e8a0f4763c84cbfb50233415224ad6fed0ea9d266631e0730c8"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "service-terms"
            },
            "locators": [
              {
                "artifact_digest": "sha256:245753e9dd8ec62ed8c33ed51b26ade172371d6d6ec1858c6e7f8d777e8458a3",
                "start_byte": 16115,
                "end_byte": 16913,
                "value_digest": "sha256:616766d0cf802f3ab203b015ae11be53db0e1edbe2ce7d4cb347dc7609dbacb2"
              },
              {
                "artifact_digest": "sha256:245753e9dd8ec62ed8c33ed51b26ade172371d6d6ec1858c6e7f8d777e8458a3",
                "start_byte": 16914,
                "end_byte": 17713,
                "value_digest": "sha256:0106f8fba3dd567cd5ce8af4313e1a903518e895c46024a86ec8e1376b69e9f3"
              }
            ]
          }
        ],
        "note": "Slack provides retrievable, readable, and stable applicable legal terms including the Main Services Agreement, User Terms of Service, Slack Supplemental Terms, and API Terms of Service."
      },
      {
        "stage": "evaluate",
        "signal_code": "verified_web_agent_access",
        "selector_group_id": "verified_web_agent_access-primary",
        "value": "unknown",
        "observed_at": "2026-09-06T08:50:43.073Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "authentication"
          },
          {
            "node_kind": "resource",
            "node_id": "oauth"
          },
          {
            "node_kind": "resource",
            "node_id": "web-api"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [],
        "note": "The retained documentation fragments discuss OAuth authentication, tokens, and API usage, but do not contain explicit web agent or crawler access policies (such as robots.txt rules or web bot user-agent directives)."
      },
      {
        "stage": "sign_up",
        "signal_code": "access_control_operability",
        "selector_group_id": "access_control_operability-primary",
        "value": "unknown",
        "observed_at": "2026-09-06T08:52:07.953Z",
        "tested_surfaces": [
          {
            "node_kind": "endpoint",
            "node_id": "registration"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [],
        "note": "The retained evidence for https://slack.com/get-started provides metadata and title text ('Login | Slack') but does not contain actionable controls, forms, fields, or validation details needed to demonstrate agent operability."
      },
      {
        "stage": "sign_up",
        "signal_code": "access_entrypoint_stability",
        "selector_group_id": "access_entrypoint_stability-primary",
        "value": "yes",
        "observed_at": "2026-09-06T08:52:07.953Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "workspace-signup"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:92e59b9d46ab920e22b0ad51a878cd1a9c8fde3fc8f3864e504f54cc7cbcfd63",
                "capture_rung": "headless"
              }
            ],
            "artifact_digests": [
              "sha256:105ecba982e92e1ff9b798f5278873867ad795d36e8d0827f0755ee08a66a1c6",
              "sha256:114bbf22a905833a596b629367771663f1a5ceb8d00710882451880fa7450440",
              "sha256:3878570f4a62a0d65f57cf1754e0269e56ec797f4e36e26b44c172eb6e800401",
              "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
              "sha256:7fdd9e307207fb8e5e92b069626aa5d3c209187ed97b4d220f9a78d2d19d861e",
              "sha256:bc0a4186de442d335bcdc2fb7bf4409c8435cb4399650f1db062a2fca5ab9ad3"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "workspace-signup"
            },
            "locators": [
              {
                "artifact_digest": "sha256:bc0a4186de442d335bcdc2fb7bf4409c8435cb4399650f1db062a2fca5ab9ad3",
                "start_byte": 0,
                "end_byte": 532,
                "value_digest": "sha256:faf62c7f58088bfcad5af4e1971f0b67405c77edcf6547df3a5ba48fbcaeb28e"
              }
            ]
          }
        ],
        "note": "Slack explicitly declares a stable route to get started with an email address at https://slack.com/get-started."
      },
      {
        "stage": "sign_up",
        "signal_code": "captcha_compatible_access",
        "selector_group_id": "captcha_compatible_access-primary",
        "value": "unknown",
        "observed_at": "2026-09-06T08:52:07.953Z",
        "tested_surfaces": [
          {
            "node_kind": "endpoint",
            "node_id": "registration"
          },
          {
            "node_kind": "resource",
            "node_id": "workspace-signup"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [],
        "note": "The retained captures for https://slack.com/get-started do not contain explicit declarations or observed page content regarding CAPTCHAs or bot verification challenges."
      },
      {
        "stage": "sign_up",
        "signal_code": "delegated_identity_access",
        "selector_group_id": "delegated_identity_access-primary",
        "value": "yes",
        "observed_at": "2026-09-06T08:51:03.961Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "oauth"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:959337c3f516e36d8496730490780ca65c72f36133568fd35927dc65f4e2767b",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:12c2138846bea176c66eebc7619f78de9817615ef9f4ea220b88cd812f4df53b",
              "sha256:9943983a6a1a0a5b5cd996f2a1e8065052b0f29eaf77ef1a1bd5de0ec2e6e5c8",
              "sha256:ad0a67d9dad7bf9fe0facf31d6973f6bfd174eb2e18a3739614c7d0adf7812ea",
              "sha256:df7a8a5d2af7018243ae911d0fecd1555123829caa463907d852e6ef01e7dd46"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "oauth"
            },
            "locators": [
              {
                "artifact_digest": "sha256:12c2138846bea176c66eebc7619f78de9817615ef9f4ea220b88cd812f4df53b",
                "start_byte": 21462,
                "end_byte": 22262,
                "value_digest": "sha256:230be4f43cc5959a9df38ff6089ab2293b7eecd9ac9a2f170a5fd743eae1bf9e"
              },
              {
                "artifact_digest": "sha256:12c2138846bea176c66eebc7619f78de9817615ef9f4ea220b88cd812f4df53b",
                "start_byte": 8314,
                "end_byte": 9105,
                "value_digest": "sha256:043ff276a9ff6c6e00dd365bb6b150905ea5fab7fa4939f9d68cb8886ee80153"
              }
            ]
          }
        ],
        "note": "Slack documents an OAuth flow where apps request scoped permissions, users grant consent, temporary authorization codes are exchanged for tokens, and API access tokens can be revoked via the auth.revoke method."
      },
      {
        "stage": "sign_up",
        "signal_code": "phone_verification_compatible",
        "selector_group_id": "phone_verification_compatible-primary",
        "value": "unknown",
        "observed_at": "2026-09-06T08:52:07.953Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "workspace-signup"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [],
        "note": "The retained evidence for https://slack.com/get-started does not mention phone or SMS verification requirements."
      },
      {
        "stage": "pay",
        "signal_code": "checkout_operability",
        "selector_group_id": "checkout_operability-primary",
        "value": "unknown",
        "observed_at": "2026-09-06T08:51:10.604Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "billing-checkout"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [],
        "note": "The retained text mentions a checkout option when changing subscription details or payment methods, but it does not establish deterministic checkout construction, approval handoff, and resumption."
      },
      {
        "stage": "pay",
        "signal_code": "commitment_disclosure",
        "selector_group_id": "commitment_disclosure-primary",
        "value": "yes",
        "observed_at": "2026-09-06T08:51:47.953Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "pricing"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:f708b6c5130f6de2a76cdbeedab673e233b40904faede4500d00834b349e42fa",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:2d87358e7a6238584230dff0ef8efce21dbe19ac02ea3b19cbf809327fc84f16",
              "sha256:39a37adf7e76d079bcd42e6c777d9219277f236fd3805569556eb4680a79fa63",
              "sha256:8f795a82163e6458b049f6db91e88c20ddd624795897f796ddd32135e5933bfb",
              "sha256:bf5098b7959447c25174302afdce402989d7c56834842c6e352198fcea846d2b"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "pricing"
            },
            "locators": [
              {
                "artifact_digest": "sha256:39a37adf7e76d079bcd42e6c777d9219277f236fd3805569556eb4680a79fa63",
                "start_byte": 16734,
                "end_byte": 17525,
                "value_digest": "sha256:60b26115aeb786cce05334ce19161798b026e0832289bd76bc9a27cc17dd4e47"
              },
              {
                "artifact_digest": "sha256:39a37adf7e76d079bcd42e6c777d9219277f236fd3805569556eb4680a79fa63",
                "start_byte": 17526,
                "end_byte": 18315,
                "value_digest": "sha256:8805b1871b2a4e41edb7e82daa4d4e6f29114418246291321f293ba39118ec91"
              }
            ]
          }
        ],
        "note": "Slack explicitly discloses the commercial commitment details on its pricing page, including price points ($US8.75 and $US18 per user/month monthly, or $US7.25 and $US15 per user/month annually) and currency."
      },
      {
        "stage": "pay",
        "signal_code": "payment_authorization",
        "selector_group_id": "payment_authorization-primary",
        "value": "unknown",
        "observed_at": "2026-09-06T08:51:10.604Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "billing-checkout"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [],
        "note": "The retained documentation describes managing payment methods like credit cards and ACH bank transfers, but it does not document scoped delegation or explicit human authorization rails with receipts."
      },
      {
        "stage": "pay",
        "signal_code": "self_service_purchase",
        "selector_group_id": "self_service_purchase-primary",
        "value": "partial",
        "observed_at": "2026-09-06T08:51:10.604Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "billing-checkout"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:1a2eabd78f65db116755ba31a3146278c2b4e6046b4f9654b0b193fec48b60e7",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:00698f0312e6044275fea7dbf77a43640f8715ff990989316e6ddba1ea3040df",
              "sha256:085a125a1f9a4100ccb17b7b15d3acd3b9d9b22372b3306d77ac3288428b7d2e",
              "sha256:41052326a88d5110ddd51fb64c5bf515f68559baf782d8c1be61f182c1d6f58d",
              "sha256:58f95f844c48da9831588e68357080c228562812dc9a989551aac5b39e41c3f4"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "billing-checkout"
            },
            "locators": [
              {
                "artifact_digest": "sha256:41052326a88d5110ddd51fb64c5bf515f68559baf782d8c1be61f182c1d6f58d",
                "start_byte": 12950,
                "end_byte": 13751,
                "value_digest": "sha256:89e50afde44957ac87a71b2e607929d647ead76eee1e5c235fdda0475450343e"
              },
              {
                "artifact_digest": "sha256:41052326a88d5110ddd51fb64c5bf515f68559baf782d8c1be61f182c1d6f58d",
                "start_byte": 13752,
                "end_byte": 14536,
                "value_digest": "sha256:7ca7178e26f80ab1ce87d5daa5a5a66833ff18caae5dde00d9c6378472410379"
              }
            ]
          }
        ],
        "note": "Slack documents a self-service path to change subscription details and purchase paid tiers via the billing page, but Enterprise+ plan purchases require contacting the sales team."
      },
      {
        "stage": "provision",
        "signal_code": "access_material_delivery",
        "selector_group_id": "access_material_delivery-primary",
        "value": "yes",
        "observed_at": "2026-09-06T08:51:03.961Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "oauth"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:959337c3f516e36d8496730490780ca65c72f36133568fd35927dc65f4e2767b",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:12c2138846bea176c66eebc7619f78de9817615ef9f4ea220b88cd812f4df53b",
              "sha256:6d166533d6722e1054d4b42fb4a743a7c7ff525d0a17fae5a4b9e189e405b857",
              "sha256:9943983a6a1a0a5b5cd996f2a1e8065052b0f29eaf77ef1a1bd5de0ec2e6e5c8",
              "sha256:ad0a67d9dad7bf9fe0facf31d6973f6bfd174eb2e18a3739614c7d0adf7812ea"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "oauth"
            },
            "locators": [
              {
                "artifact_digest": "sha256:12c2138846bea176c66eebc7619f78de9817615ef9f4ea220b88cd812f4df53b",
                "start_byte": 15237,
                "end_byte": 15885,
                "value_digest": "sha256:c8f4440d3c3d46f6844e357eabc8b269261713468fe30134efcc4b571b3777ae"
              },
              {
                "artifact_digest": "sha256:12c2138846bea176c66eebc7619f78de9817615ef9f4ea220b88cd812f4df53b",
                "start_byte": 8314,
                "end_byte": 9105,
                "value_digest": "sha256:043ff276a9ff6c6e00dd365bb6b150905ea5fab7fa4939f9d68cb8886ee80153"
              }
            ]
          }
        ],
        "note": "Slack's OAuth flow allows an app to obtain an access token by requesting scopes, receiving user approval, and exchanging a temporary authorization code by calling oauth.v2.access, which returns an HTTP response containing an access token."
      },
      {
        "stage": "provision",
        "signal_code": "provisioning_completion",
        "selector_group_id": "provisioning_completion-primary",
        "value": "yes",
        "observed_at": "2026-09-06T08:50:46.022Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "message-operations"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:b6d174cdd41dc4b687bcda9c281f0277f559f7961e738feb49c7bb8983f6795e",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:8a603596adbde6e8eb4d24b5bf75fb88eeebd3a5cc268c3519d7a5adfbde3ced",
              "sha256:d23cecf7ec34ce75a590647be478993cb40aa394e0ea015ceee481ce5a185d08",
              "sha256:e967c0424cb8043523914d27b01dcc8c3895d362a96afd3e19bf96a3cd146519",
              "sha256:ed0293dae9d873c78079eac45e11a887f18d67bae5dcef4102aa8b1e0cc2c208"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "message-operations"
            },
            "locators": [
              {
                "artifact_digest": "sha256:e967c0424cb8043523914d27b01dcc8c3895d362a96afd3e19bf96a3cd146519",
                "start_byte": 19928,
                "end_byte": 20730,
                "value_digest": "sha256:ad47b942bb80e789ed20d4c5f9536f096590c1af8d9bb15e001af9504ff12342"
              },
              {
                "artifact_digest": "sha256:e967c0424cb8043523914d27b01dcc8c3895d362a96afd3e19bf96a3cd146519",
                "start_byte": 20731,
                "end_byte": 21533,
                "value_digest": "sha256:724cac23a213fca5f2288fe4d1c9c80fb50119a2dfe90c4fe35176ed63768852"
              }
            ]
          }
        ],
        "note": "A synchronous postMessage API call returns an ok: true response along with the created message object and timestamp ID (ts). Callers should check the ok parameter in the response, which returns explicit error codes like too_many_attachments on failure."
      },
      {
        "stage": "provision",
        "signal_code": "provisioning_operability",
        "selector_group_id": "provisioning_operability-primary",
        "value": "yes",
        "observed_at": "2026-09-06T08:51:03.961Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "message-operations"
          },
          {
            "node_kind": "resource",
            "node_id": "oauth"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:959337c3f516e36d8496730490780ca65c72f36133568fd35927dc65f4e2767b",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:12c2138846bea176c66eebc7619f78de9817615ef9f4ea220b88cd812f4df53b",
              "sha256:51b7ea72943fa052ae3b6bac83cc6f88bf6a73de8044428ceb3fb97e8f563d24",
              "sha256:9943983a6a1a0a5b5cd996f2a1e8065052b0f29eaf77ef1a1bd5de0ec2e6e5c8",
              "sha256:ad0a67d9dad7bf9fe0facf31d6973f6bfd174eb2e18a3739614c7d0adf7812ea"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "oauth"
            },
            "locators": [
              {
                "artifact_digest": "sha256:12c2138846bea176c66eebc7619f78de9817615ef9f4ea220b88cd812f4df53b",
                "start_byte": 6782,
                "end_byte": 7510,
                "value_digest": "sha256:d5436cf55f97dbbc5128655f3427f3df390275ba1526d20c52238c26444acf1b"
              }
            ]
          },
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:b6d174cdd41dc4b687bcda9c281f0277f559f7961e738feb49c7bb8983f6795e",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:8a603596adbde6e8eb4d24b5bf75fb88eeebd3a5cc268c3519d7a5adfbde3ced",
              "sha256:b6a4d96d88abaaede7cdf4514607f659c8b551a546173d237d2ade8040a869ae",
              "sha256:e967c0424cb8043523914d27b01dcc8c3895d362a96afd3e19bf96a3cd146519",
              "sha256:ed0293dae9d873c78079eac45e11a887f18d67bae5dcef4102aa8b1e0cc2c208"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "message-operations"
            },
            "locators": [
              {
                "artifact_digest": "sha256:e967c0424cb8043523914d27b01dcc8c3895d362a96afd3e19bf96a3cd146519",
                "start_byte": 10334,
                "end_byte": 11133,
                "value_digest": "sha256:bc5b183f51e27c1b1e87a988eb385026b6c94a004cb29ec7288735c34e955bb2"
              }
            ]
          }
        ],
        "note": "Message posting can be initiated synchronously via the chat.postMessage API endpoint. Workspace app installation follows a machine-triggerable OAuth flow initiated by redirecting users with requested scopes."
      },
      {
        "stage": "operate",
        "signal_code": "agent_protocol_interface",
        "selector_group_id": "agent_protocol_interface-primary",
        "value": "unknown",
        "observed_at": "2026-09-06T08:51:38.501Z",
        "tested_surfaces": [
          {
            "node_kind": "interface",
            "node_id": "workspace-api"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [],
        "note": "The retained excerpts describe REST or RPC interfaces, SDKs and CLIs for Slack Web API; they contain no first-party statement that an agent-native protocol interface is absent, and several navigation excerpts mention MCP resources without establishing coverage of the assessed targets."
      },
      {
        "stage": "operate",
        "signal_code": "credential_lifecycle",
        "selector_group_id": "credential_lifecycle-primary",
        "value": "partial",
        "observed_at": "2026-09-06T08:51:03.961Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "oauth"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:959337c3f516e36d8496730490780ca65c72f36133568fd35927dc65f4e2767b",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:12c2138846bea176c66eebc7619f78de9817615ef9f4ea220b88cd812f4df53b",
              "sha256:9943983a6a1a0a5b5cd996f2a1e8065052b0f29eaf77ef1a1bd5de0ec2e6e5c8",
              "sha256:ad0a67d9dad7bf9fe0facf31d6973f6bfd174eb2e18a3739614c7d0adf7812ea",
              "sha256:db9ba95950610355cf28e167764568ee46b20f499c271a0d408b775f698c0498"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "oauth"
            },
            "locators": [
              {
                "artifact_digest": "sha256:12c2138846bea176c66eebc7619f78de9817615ef9f4ea220b88cd812f4df53b",
                "start_byte": 21462,
                "end_byte": 22262,
                "value_digest": "sha256:230be4f43cc5959a9df38ff6089ab2293b7eecd9ac9a2f170a5fd743eae1bf9e"
              },
              {
                "artifact_digest": "sha256:12c2138846bea176c66eebc7619f78de9817615ef9f4ea220b88cd812f4df53b",
                "start_byte": 22263,
                "end_byte": 23066,
                "value_digest": "sha256:d4253ab461a02145474c0a3218e9f30abdd9d59b450033dff8c5a0939c4d6b23"
              }
            ]
          }
        ],
        "note": "Slack OAuth documentation establishes token revocation via auth.revoke and token rotation with expiring access tokens, but does not document an end-to-end programmatic process for handling token compromise recovery or secret rotation within delegated authority."
      },
      {
        "stage": "operate",
        "signal_code": "failure_contract",
        "selector_group_id": "failure_contract-primary",
        "value": "partial",
        "observed_at": "2026-09-06T08:50:07.263Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "rate-limits"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:93e40d4ed2b469461338b08e886a9d8ace8b8f4f06ee2bdea517e4c8cfc574c2",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:6669c6e7f0dbd71bfd04628be8ff5394eb07153f615f3a0b6111d802875199f3",
              "sha256:970822ebdca9456b1e6cac24f254d98df500019301b1e20b39d1ee2d427c1313",
              "sha256:d70e11453fca966ffaab92c07d4749f6bb2341bb4c4ccbc68a6f4573eafadc98",
              "sha256:f958012f91fee388474094db65df22eadac6c793e51e2dafd3b6fe40d39c6399"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "rate-limits"
            },
            "locators": [
              {
                "artifact_digest": "sha256:970822ebdca9456b1e6cac24f254d98df500019301b1e20b39d1ee2d427c1313",
                "start_byte": 10751,
                "end_byte": 11547,
                "value_digest": "sha256:c4f6b95c3a31f0fbc34f09f5baefd009a1d3dba8e55dc1c470044fd31c96e245"
              }
            ]
          }
        ],
        "note": "Slack documents rate-limiting error conditions, returning an HTTP 429 Too Many Requests response with a Retry-After header indicating the retry delay in seconds. However, the evidence leaves idempotency, cancellation, and reconciliation semantics unaddressed."
      },
      {
        "stage": "operate",
        "signal_code": "operation_authentication",
        "selector_group_id": "operation_authentication-primary",
        "value": "yes",
        "observed_at": "2026-09-06T08:51:03.961Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "oauth"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:959337c3f516e36d8496730490780ca65c72f36133568fd35927dc65f4e2767b",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:12c2138846bea176c66eebc7619f78de9817615ef9f4ea220b88cd812f4df53b",
              "sha256:72149eda11891b9d1594bac4fce62084a044b1625edffd48ad4a01a1675b6b18",
              "sha256:9943983a6a1a0a5b5cd996f2a1e8065052b0f29eaf77ef1a1bd5de0ec2e6e5c8",
              "sha256:ad0a67d9dad7bf9fe0facf31d6973f6bfd174eb2e18a3739614c7d0adf7812ea"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "oauth"
            },
            "locators": [
              {
                "artifact_digest": "sha256:12c2138846bea176c66eebc7619f78de9817615ef9f4ea220b88cd812f4df53b",
                "start_byte": 20676,
                "end_byte": 21461,
                "value_digest": "sha256:9774455917f6bbf7a989c72cdd083929f102ccdc43f00f9fbdcc48ebe765a5e7"
              },
              {
                "artifact_digest": "sha256:12c2138846bea176c66eebc7619f78de9817615ef9f4ea220b88cd812f4df53b",
                "start_byte": 6782,
                "end_byte": 7510,
                "value_digest": "sha256:d5436cf55f97dbbc5128655f3427f3df390275ba1526d20c52238c26444acf1b"
              }
            ]
          }
        ],
        "note": "Slack Web API request-time authentication is documented using OAuth 2.0 bearer tokens, passed via the Authorization HTTP header (Authorization: Bearer xoxb-...) or as POST parameters, under scoped authority requested during the OAuth flow."
      },
      {
        "stage": "operate",
        "signal_code": "operation_contract",
        "selector_group_id": "operation_contract-primary",
        "value": "yes",
        "observed_at": "2026-09-06T08:51:38.501Z",
        "tested_surfaces": [
          {
            "node_kind": "interface",
            "node_id": "workspace-api"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:69430c3dbc5e5ed60d040aa04a7bb537e954cbc15cdfa87fb624fe1ff268d9a6",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:4d21e854f82ebc598f1b3dbbbada4efa88daa961a2144f6a19b68a9a8353787c",
              "sha256:83b36cf5f2e20c6e20944ae114497a4b2babeec4f5084980c872b31b7356341f",
              "sha256:a6caaf77f6da7d9065bc7a1298b62881017f5c162c59d064d355d55a27498f97",
              "sha256:fbf1864d8276c8e773620b04d270a58b54d6ee7e3077589ffac60a395973be04"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "web-api"
            },
            "locators": [
              {
                "artifact_digest": "sha256:83b36cf5f2e20c6e20944ae114497a4b2babeec4f5084980c872b31b7356341f",
                "start_byte": 10109,
                "end_byte": 10826,
                "value_digest": "sha256:117fa7152d727de47cf189531faa832045e2fce0ff0e9bdc429f575c2934ac39"
              },
              {
                "artifact_digest": "sha256:83b36cf5f2e20c6e20944ae114497a4b2babeec4f5084980c872b31b7356341f",
                "start_byte": 5446,
                "end_byte": 6226,
                "value_digest": "sha256:595645c001279fbc2b31cfb50bbfbd89a8461fda23de95fe72c09ca8223b249f"
              }
            ]
          },
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:b6d174cdd41dc4b687bcda9c281f0277f559f7961e738feb49c7bb8983f6795e",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:8a603596adbde6e8eb4d24b5bf75fb88eeebd3a5cc268c3519d7a5adfbde3ced",
              "sha256:9750161bf3bc299b5ea3582e05c6a62142eb46afb4c0310e2bfe3a67459adb42",
              "sha256:e967c0424cb8043523914d27b01dcc8c3895d362a96afd3e19bf96a3cd146519",
              "sha256:ed0293dae9d873c78079eac45e11a887f18d67bae5dcef4102aa8b1e0cc2c208"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "message-operations"
            },
            "locators": [
              {
                "artifact_digest": "sha256:e967c0424cb8043523914d27b01dcc8c3895d362a96afd3e19bf96a3cd146519",
                "start_byte": 20731,
                "end_byte": 21533,
                "value_digest": "sha256:724cac23a213fca5f2288fe4d1c9c80fb50119a2dfe90c4fe35176ed63768852"
              },
              {
                "artifact_digest": "sha256:e967c0424cb8043523914d27b01dcc8c3895d362a96afd3e19bf96a3cd146519",
                "start_byte": 7932,
                "end_byte": 8735,
                "value_digest": "sha256:e327db5df94e067c936f41cb49e9af84be11bc05cf1716f4bcfb36171b9c5313"
              }
            ]
          },
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:93e40d4ed2b469461338b08e886a9d8ace8b8f4f06ee2bdea517e4c8cfc574c2",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:3319c7eabbf5f4ce9477fccc448fac89fa50cca55fb509e0e7d1d95c9fcbccc4",
              "sha256:6669c6e7f0dbd71bfd04628be8ff5394eb07153f615f3a0b6111d802875199f3",
              "sha256:970822ebdca9456b1e6cac24f254d98df500019301b1e20b39d1ee2d427c1313",
              "sha256:d70e11453fca966ffaab92c07d4749f6bb2341bb4c4ccbc68a6f4573eafadc98"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "rate-limits"
            },
            "locators": [
              {
                "artifact_digest": "sha256:970822ebdca9456b1e6cac24f254d98df500019301b1e20b39d1ee2d427c1313",
                "start_byte": 10751,
                "end_byte": 11547,
                "value_digest": "sha256:c4f6b95c3a31f0fbc34f09f5baefd009a1d3dba8e55dc1c470044fd31c96e245"
              },
              {
                "artifact_digest": "sha256:970822ebdca9456b1e6cac24f254d98df500019301b1e20b39d1ee2d427c1313",
                "start_byte": 6748,
                "end_byte": 7549,
                "value_digest": "sha256:e9aaa5b38b81ff995e2ab19d21b3794707fa053d9df228dc4419597f0440cc7e"
              }
            ]
          }
        ],
        "note": "Essential operations and parameters are documented across the targets: chat.postMessage defines required token and channel arguments with expected JSON response format and error table; rate-limits defines tiers, HTTP 429 status, and Retry-After header behavior; and Web API specifies HTTP POST URL-encoded and JSON body formats with top-level ok boolean response structures."
      },
      {
        "stage": "operate",
        "signal_code": "target_interface_access",
        "selector_group_id": "target_interface_access-primary",
        "value": "yes",
        "observed_at": "2026-09-06T08:51:38.501Z",
        "tested_surfaces": [
          {
            "node_kind": "interface",
            "node_id": "workspace-api"
          }
        ],
        "assessment_method": {
          "name": "public-semantic-assessment",
          "version": "2026-09-06",
          "method_digest": "sha256:02ec902925d3816c86a32a3d15dc2e7af6ce9931c24b9cf264063e596952d1c4"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:93e40d4ed2b469461338b08e886a9d8ace8b8f4f06ee2bdea517e4c8cfc574c2",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:6669c6e7f0dbd71bfd04628be8ff5394eb07153f615f3a0b6111d802875199f3",
              "sha256:970822ebdca9456b1e6cac24f254d98df500019301b1e20b39d1ee2d427c1313",
              "sha256:d70e11453fca966ffaab92c07d4749f6bb2341bb4c4ccbc68a6f4573eafadc98",
              "sha256:ecf0ee01f8ac9ac704ff5961d978e9b73744da830561838c597419eac85ea17f"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "rate-limits"
            },
            "locators": [
              {
                "artifact_digest": "sha256:970822ebdca9456b1e6cac24f254d98df500019301b1e20b39d1ee2d427c1313",
                "start_byte": 5141,
                "end_byte": 5949,
                "value_digest": "sha256:81ee017f1a6346db2784e4e0032053e77c12f317ff4c9c6eeb266945a69c6257"
              }
            ]
          },
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:69430c3dbc5e5ed60d040aa04a7bb537e954cbc15cdfa87fb624fe1ff268d9a6",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:4706bad2970515b7e829a320cf0345d08cbbddd2fe5b1691ca67f54d2d4288a4",
              "sha256:4d21e854f82ebc598f1b3dbbbada4efa88daa961a2144f6a19b68a9a8353787c",
              "sha256:83b36cf5f2e20c6e20944ae114497a4b2babeec4f5084980c872b31b7356341f",
              "sha256:a6caaf77f6da7d9065bc7a1298b62881017f5c162c59d064d355d55a27498f97"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "web-api"
            },
            "locators": [
              {
                "artifact_digest": "sha256:83b36cf5f2e20c6e20944ae114497a4b2babeec4f5084980c872b31b7356341f",
                "start_byte": 6227,
                "end_byte": 6964,
                "value_digest": "sha256:1d44cbcb398e0cc77b51302ed6716463888475bf173ec250f335856271e02e2b"
              }
            ]
          },
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:b6d174cdd41dc4b687bcda9c281f0277f559f7961e738feb49c7bb8983f6795e",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:4d1193419564bacd883d3f5747ec1bf6ee6401d030a23fd369d2be99bda88c46",
              "sha256:8a603596adbde6e8eb4d24b5bf75fb88eeebd3a5cc268c3519d7a5adfbde3ced",
              "sha256:e967c0424cb8043523914d27b01dcc8c3895d362a96afd3e19bf96a3cd146519",
              "sha256:ed0293dae9d873c78079eac45e11a887f18d67bae5dcef4102aa8b1e0cc2c208"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "message-operations"
            },
            "locators": [
              {
                "artifact_digest": "sha256:e967c0424cb8043523914d27b01dcc8c3895d362a96afd3e19bf96a3cd146519",
                "start_byte": 7932,
                "end_byte": 8735,
                "value_digest": "sha256:e327db5df94e067c936f41cb49e9af84be11bc05cf1716f4bcfb36171b9c5313"
              }
            ]
          }
        ],
        "note": "Every essential target is accessible through documented machine-usable HTTP RPC endpoints and SDKs/CLIs, such as POST https://slack.com/api/chat.postMessage."
      }
    ],
    "revision_digest": "sha256:fea89fefd481e69c20f5c55d1e4556d9fe7f98bd8b037b6dbbae9d954aaaced6"
  }
}
