{
 "slug": "slack",
 "name": "Slack",
 "url": "https://slack.com",
 "domain": "slack.com",
 "category": "team-chat",
 "category_name": "Team chat",
 "tested_at": "2026-10-16",
 "run": "20261016T062839Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261006T040440Z",
   "date": "2026-10-06",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   }
  },
  {
   "run": "20261012T092133Z",
   "date": "2026-10-12",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 3,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "obey"
   }
  },
  {
   "run": "20261016T062839Z",
   "date": "2026-10-16",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 4,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "skip"
   }
  }
 ],
 "level": 1,
 "level_name": "Needs a person",
 "level_selfhost": null,
 "entry": "closed",
 "door": {
  "passed": 0,
  "tries": 3,
  "self_start": false
 },
 "badges": [],
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "portal"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Find",
   "state": "yes",
   "text": "Docs agents can read: llms.txt, an OpenAPI and an MCP server",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ],
   "docs": "gaps"
  },
  {
   "key": "access",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "portal",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account",
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "person",
   "label": "A person sets it up",
   "routes": [],
   "minutes": null,
   "core": null
  }
 ],
 "minutes": null,
 "next": {
  "to": 2,
  "text": "Next: let an agent sign up on its own"
 },
 "stop": "signup",
 "core": null,
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 100,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 100,
  "security": null,
  "standards": [
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 3,
    "value": "2.0"
   }
  ]
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [],
 "surface_audit": null,
 "coverage_core": null,
 "after_wall": null,
 "coverage_source": "reported",
 "driver": {
  "version": 4,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false,
  "prompt_sha": "365f93123295",
  "kb_version": "3+overlay-83f4487de6",
  "identity": "e8a92f24a9a8"
 },
 "methodology": 15,
 "rules_date": "2026-10-15",
 "engine": {
  "runner": "omp",
  "model": "claude-opus-5-5",
  "driver": 4,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "skip"
 },
 "same_level_drives": 3,
 "drives": 3,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "reCAPTCHA Enterprise (checkbox)",
  "visible": true,
  "type": "challenge",
  "human": null,
  "how": "Check the Web Bot Auth signature on the sign-up request and skip reCAPTCHA (or lower the score threshold) for signed agents; or offer a documented sign-up API with email verification.",
  "signed": true
 },
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "captcha"
  },
  "signed": {
   "state": "block",
   "kind": "signup",
   "at": "2026-10-16"
  },
  "browser": {
   "state": "captcha",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "docs.slack.dev: llms.txt, every page as Markdown (.md or Accept: text/markdown), method reference with scopes and rate-limit tiers; Web API spec is Swagger 2.0 (170 paths)."
  },
  "signup": {
   "status": "human",
   "cause": "check",
   "note": "Email sign-up at app.slack.com/get-started shows a visible reCAPTCHA Enterprise 'I'm not a robot' checkbox after the email and sends no code until it is ticked; the Developer Program join form has the same checkbox. So no account was made. Google and Apple sign-in were not tried (no account of ours there)."
  },
  "verify": {
   "status": "",
   "note": "Not reached: no code mail is sent before the reCAPTCHA checkbox.",
   "reached": false
  },
  "credentials": {
   "status": "",
   "note": "Not reached: tokens come from a Slack app installed in a workspace (api.slack.com/apps or 'slack login'), which needs an account.",
   "reached": false
  },
  "first_call": {
   "status": "",
   "route": "account",
   "note": "Not reached. Only the documented api.test answers without a token ({\"ok\":true}); every real method answers not_authed.",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "Not reached: no account.",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P2",
   "rails": [
    "card"
   ],
   "rail_ids": [
    "card"
   ],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "free tier",
   "route": "portal",
   "checkout": {
    "reached": "no",
    "processor": null,
    "captcha": null,
    "three_ds": "not_seen",
    "card_form": null,
    "phone_field": null,
    "wallets": [],
    "rail_offer": "none",
    "price": "8.25",
    "currency": "EUR",
    "period": "month",
    "plan": "Pro",
    "last_button": null
   },
   "person": "none",
   "ours": "no account",
   "note": "No 402, x402, MPP or registry listing; we paid nothing. Pricing page: Free €0, Pro €8.25 per user/month monthly (50% off for 3 months), 'You can use a credit card to pay for any plan.' Upgrading happens in the workspace's billing page, which we could not reach without an account; is read from the pricing page, not walked.",
   "reached": false
  },
  "cancel": {
   "status": "",
   "note": "Nothing to cancel: no account or plan was started. Help article 'Change or cancel your paid Slack plan': Admin > Manage billing > Change plan details > Downgrade to Free > Continue to Checkout > Downgrade Slack (web UI).",
   "docs_grade": "",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No account was created: sign-up stopped at the reCAPTCHA before any code was sent.",
   "account": false,
   "reached": false
  }
 },
 "routes": [
  {
   "route": "email_code",
   "offered": "seen",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "challenge",
    "owner": "product"
   },
   "person": "none",
   "brings": "inbox",
   "fresh": true,
   "minutes": 4
  },
  {
   "route": "email_password",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "challenge",
    "owner": "product"
   },
   "person": "none",
   "brings": "inbox",
   "fresh": true,
   "minutes": 3
  },
  {
   "route": "device_login",
   "offered": "documented",
   "tried": false,
   "not_tried": "same_as",
   "result": null,
   "wall": null,
   "person": "none",
   "brings": "nothing",
   "fresh": null,
   "minutes": null
  }
 ],
 "checkout": {
  "reached": "no",
  "three_ds": "not_seen",
  "rail_offer": "none",
  "period": "month",
  "price": "8.25",
  "currency": "EUR",
  "plan": "Pro"
 },
 "docs": {
  "at": "2026-10-16",
  "read": 171,
  "listed": 178,
  "sampled": false,
  "overall": "gaps",
  "getting_started": "found",
  "auth": "found",
  "errors": "missing",
  "examples": "some",
  "freshness": "unknown",
  "newest": null,
  "core_pages": "9 of 10",
  "capabilities": "most"
 },
 "claims": null,
 "pay_options": {
  "checked": "2026-10-16",
  "source": "probe",
  "options": [],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": null,
   "card_required": null,
   "free_plan": true
  },
  "owner_fixes": [
   {
    "title": "Accept x402 or MPP on your API",
    "how": "Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card."
   },
   {
    "title": "List your plans on Stripe Projects",
    "how": "Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev)."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": true,
  "cli": true,
  "sdk": true,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": true
 },
 "surface_notes": {
  "api": "Web API, 170 paths in the spec; errors as HTTP 200 {ok:false,error:'...'} plus x-slack-failure header",
  "openapi": "Swagger 2.0 at api.slack.com/specs/openapi/v2/slack_web.json (info.version 1.7.0).",
  "mcp": "official, mcp.slack.com/mcp, OAuth with a pre-registered Slack app only",
  "llms_txt": "slack.com/llms.txt (marketing) and docs.slack.dev/llms.txt (developer docs)"
 },
 "can_do": [
  "Read Slack's developer docs as Markdown (llms.txt, .md pages, Accept: text/markdown)",
  "Read the Web API spec and MCP OAuth metadata without an account"
 ],
 "cannot_do": [
  {
   "what": "Create a Slack account or workspace",
   "why": "Visible reCAPTCHA Enterprise checkbox on the email sign-up"
  },
  {
   "what": "Join the Developer Program for a free sandbox",
   "why": "Visible reCAPTCHA checkbox on the join form"
  },
  {
   "what": "Any core capability (messages, threads, channels, huddles, Slack Connect, workflows, lists, Slackbot)",
   "why": "Every route needs a workspace token; no account"
  }
 ],
 "blockers": [
  "Visible reCAPTCHA Enterprise checkbox on app.slack.com/get-started after the email",
  "Visible reCAPTCHA checkbox on api.slack.com/developer-program/join"
 ],
 "tips_for_owner": [
  "Let signed agents past the sign-up reCAPTCHA",
  "Offer a developer sandbox by API",
  "Support CIMD for MCP clients",
  "Add a billing API for plan changes",
  "Publish the Web API spec as OpenAPI 3.x",
  "Serve an MCP server card"
 ],
 "tips_for_agents": [
  "Read docs.slack.dev as Markdown: append .md or send Accept: text/markdown; method pages carry scopes and rate-limit tiers in front matter.",
  "Slack's Web API returns errors as HTTP 200 with ok:false; check the ok field and the x-slack-failure header, not the status.",
  "The official MCP server needs OAuth through your own Slack app (client_id and client_secret; Marketplace-published or internal apps only).",
  "Sign-up and Developer Program join both show a reCAPTCHA checkbox: plan for a human to create the workspace."
 ],
 "selfhost": null,
 "summary": "An agent cannot get into Slack on its own: the email sign-up and the Developer Program join form both show a visible reCAPTCHA 'I'm not a robot' checkbox to tick it, so no account, token or core task was reached. What an agent can do without an account is read excellent developer docs (llms.txt, Markdown on every page), the Swagger 2.0 Web API spec and the official MCP server's OAuth metadata, which needs a pre-registered Slack app.",
 "wall": "reCAPTCHA checkbox on the sign-up form",
 "plan_scope": "",
 "robots_stop": null,
 "robots": null,
 "plain": {
  "summary": "Slack is a workplace chat app with a well-documented developer platform, but an agent can't sign up on its own: both the normal sign-up form and the free developer sandbox form show a 'prove you're not a robot' checkbox. To click it, the agent never got an account, so it couldn't send messages, make channels, or do anything else inside Slack.",
  "can_do": [
   "Read Slack's developer documentation and API reference without an account",
   "See how Slack's AI assistant connection (MCP) is set up, though using it still needs a Slack account"
  ],
  "cannot_do": [
   {
    "what": "Create a Slack account or workspace",
    "why": "A 'not a robot' checkbox appears"
   },
   {
    "what": "Get a free developer sandbox",
    "why": "Same robot checkbox on the developer sign-up page"
   },
   {
    "what": "Send messages, make channels, start calls, or anything else in Slack",
    "why": "All of it needs an account, which was never created"
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "Messaging",
   "capability": "Send a message in a channel or DM",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /chat.postMessage",
    "mcp": "conversations_add_message",
    "cli": "slack run (Bolt app)",
    "ui": "message composer in any channel/DM"
   },
   "check": "GET /conversations.history for the channel shows the new message",
   "source": "https://slack.com/; https://api.slack.com/methods/chat.postMessage"
  },
  {
   "id": "cap-02",
   "group": "Messaging",
   "capability": "Reply in a thread",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /chat.postMessage (thread_ts)",
    "mcp": "conversations_add_message",
    "cli": null,
    "ui": "thread panel in channel"
   },
   "check": "GET /conversations.replies returns the new reply under thread_ts",
   "source": "https://api.slack.com/methods/chat.postMessage"
  },
  {
   "id": "cap-03",
   "group": "Channels",
   "capability": "Create a channel",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /conversations.create",
    "mcp": "channels_create",
    "cli": "slack create",
    "ui": "'Add channel' in sidebar"
   },
   "check": "GET /conversations.info for the returned channel id returns ok:true",
   "source": "https://slack.com/features/channels; https://api.slack.com/methods/conversations.create"
  },
  {
   "id": "cap-04",
   "group": "Channels",
   "capability": "Join or leave a channel",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /conversations.join, POST /conversations.leave",
    "mcp": "channels_join",
    "cli": null,
    "ui": "channel browser 'Join'"
   },
   "check": "GET /conversations.members includes/excludes the user id",
   "source": "https://slack.com/features/channels"
  },
  {
   "id": "cap-05",
   "group": "Huddles & calls",
   "capability": "Start a huddle (audio/video call with screen share)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /calls.add",
    "mcp": null,
    "ui": "huddle icon in channel/DM"
   },
   "check": "GET /calls.info shows the call as active for the channel",
   "source": "https://slack.com/features/huddles"
  },
  {
   "id": "cap-06",
   "group": "External collaboration",
   "capability": "Chat with an external organization via Slack Connect",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /conversations.inviteShared",
    "mcp": null,
    "ui": "'Connect' > invite to channel"
   },
   "check": "GET /conversations.info shows is_shared:true with the external org listed",
   "source": "https://slack.com/connect; https://slack.com/pricing"
  },
  {
   "id": "cap-07",
   "group": "Automation",
   "capability": "Build a workflow with Workflow Builder (trigger + steps)",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /workflows.* (via Workflow Builder platform)",
    "mcp": null,
    "cli": "slack create (workflow app)",
    "ui": "Workflow Builder"
   },
   "check": "Triggering the configured event causes the workflow's steps (e.g. message) to post, visible via /conversations.history",
   "source": "https://slack.com/features/workflow-automation"
  },
  {
   "id": "cap-08",
   "group": "Automation",
   "capability": "Generate a workflow from a natural-language prompt (AI)",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Workflow Builder 'Build with AI'"
   },
   "check": "The generated workflow appears in Workflow Builder's workflow list with steps populated",
   "source": "https://slack.com/features/workflow-automation"
  },
  {
   "id": "cap-09",
   "group": "Project management",
   "capability": "Create and manage a list (records, fields, views)",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": "lists_create, lists_add_item",
    "cli": null,
    "ui": "Lists app"
   },
   "check": "Reopening the list shows the created record with its field values",
   "source": "https://slack.com/features/task-list; https://slack.com/whats-new#093026_slack_lists"
  },
  {
   "id": "cap-10",
   "group": "AI",
   "capability": "Ask Slackbot a question and get an answer grounded in workspace content",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "ui": "Slackbot DM / Ask Slackbot"
   },
   "check": "Slackbot's reply cites or reflects specific prior messages/files in the workspace",
   "source": "https://slack.com/; https://slack.com/features/slackbot"
  },
  {
   "id": "cap-11",
   "group": "Search",
   "capability": "Search messages, files, and channels (AI-powered search)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /search.messages",
    "mcp": "search_messages",
    "ui": "top search bar"
   },
   "check": "Search results contain the expected message/file matching the query",
   "source": "https://slack.com/features/ai"
  },
  {
   "id": "cap-12",
   "group": "AI",
   "capability": "Summarize a channel, thread, or huddle (incl. AI note-taking)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "ui": "'Summarize' button on channel/thread; huddle notes toggle"
   },
   "check": "A summary panel with transcript/action items appears for the channel or huddle",
   "source": "https://slack.com/; https://slack.com/whats-new"
  },
  {
   "id": "cap-13",
   "group": "AI",
   "capability": "Receive an AI daily recap of activity",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "ui": "Slackbot daily recap DM"
   },
   "check": "A recap message listing unread channels/threads appears in the Slackbot DM",
   "source": "https://slack.com/pricing"
  },
  {
   "id": "cap-14",
   "group": "Files",
   "capability": "Upload and share a file (with AI file summary)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /files.upload (v2)",
    "mcp": "files_upload",
    "ui": "attachment icon in composer"
   },
   "check": "GET /files.info returns the uploaded file attached to the channel",
   "source": "https://slack.com/whats-new#093026_slack_mcp; https://api.slack.com/methods/files.upload"
  },
  {
   "id": "cap-16",
   "group": "Docs",
   "capability": "Create and co-edit a canvas (doc) and embed lists in it",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /canvases.create",
    "mcp": "canvases_create",
    "ui": "'Create canvas' from channel or +"
   },
   "check": "GET /canvases.sections.lookup shows the canvas content including embedded list",
   "source": "https://slack.com/features/task-list"
  },
  {
   "id": "cap-17",
   "group": "Reminders",
   "capability": "Set a reminder",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /reminders.add",
    "mcp": "reminders_add",
    "ui": "'Remind me about this' message action"
   },
   "check": "GET /reminders.list shows the created reminder with its due time",
   "source": "https://api.slack.com/methods/reminders.add"
  },
  {
   "id": "cap-18",
   "group": "Messaging",
   "capability": "Pin or save a message for later",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /pins.add, POST /stars.add",
    "mcp": null,
    "ui": "message '...' menu > Pin/Save"
   },
   "check": "GET /pins.list (or saved items view) includes the message",
   "source": "https://api.slack.com/methods/pins.add"
  },
  {
   "id": "cap-19",
   "group": "Messaging",
   "capability": "React to a message with an emoji",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /reactions.add",
    "mcp": "conversations_add_reaction",
    "ui": "hover emoji picker on message"
   },
   "check": "GET /reactions.get shows the reaction with the user id attached",
   "source": "https://api.slack.com/methods/reactions.add"
  },
  {
   "id": "cap-20",
   "group": "Status & presence",
   "capability": "Set a custom status and availability",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /users.profile.set",
    "mcp": null,
    "ui": "profile picture > 'Update your status'"
   },
   "check": "GET /users.profile.get returns the updated status_text",
   "source": "https://api.slack.com/methods/users.profile.set"
  },
  {
   "id": "cap-21",
   "group": "Templates",
   "capability": "Start from a workflow or list template in the gallery",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "ui": "Templates gallery (slack.com/templates/gallery)"
   },
   "check": "Selecting a template creates a pre-filled workflow/list in the workspace",
   "source": "https://slack.com/templates/gallery"
  },
  {
   "id": "cap-22",
   "group": "Integrations",
   "capability": "Pull CRM (Salesforce) data into a channel conversation",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "ui": "Salesforce channel integration panel"
   },
   "check": "The channel's Salesforce panel displays the linked opportunity/account record",
   "source": "https://slack.com/features/crm"
  },
  {
   "id": "cap-23",
   "group": "AI",
   "capability": "Update CRM records or generate meeting notes/tasks by asking Slackbot",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "ui": "Slackbot voice/text commands in CRM channel"
   },
   "check": "The Salesforce record reflects the field update or new task Slackbot was asked to create",
   "source": "https://slack.com/whats-new#093026_slack_crm; https://slack.com/whats-new#093026_slackbot_in"
  },
  {
   "id": "cap-24",
   "group": "AI",
   "capability": "Embed a third-party app/agent object interactively in Slack",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "ui": "Work Object Embeds in message/canvas"
   },
   "check": "The embedded object renders as an interactive widget, not a static link preview",
   "source": "https://slack.com/whats-new#093026_work_object"
  },
  {
   "id": "cap-25",
   "group": "Agents",
   "capability": "Build and run a custom Slack app/agent with the developer platform",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "Bolt SDK + Events/Web API",
    "cli": "slack login / slack create / slack run",
    "ui": "api.slack.com app management console"
   },
   "check": "`slack run` deploys the app and it responds to a configured event in a test workspace",
   "source": "https://docs.slack.dev/; https://docs.slack.dev/quickstart.md"
  },
  {
   "id": "cap-27",
   "group": "Admin analytics",
   "capability": "Ask Slackbot for org-wide usage analytics",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "ui": "Slackbot Analytics (admin)"
   },
   "check": "Slackbot's reply returns numeric org usage data matching the admin analytics dashboard",
   "source": "https://slack.com/whats-new#093026_slackbot_analytics"
  },
  {
   "id": "cap-15",
   "group": "Files",
   "capability": "Render an HTML file as an interactive page",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "ui": "file preview on mobile/desktop"
   },
   "check": "Opening the .html file preview renders live interactive content instead of raw text",
   "source": "https://slack.com/whats-new#093026_html_file"
  },
  {
   "id": "cap-28",
   "group": "Integrations",
   "capability": "Install an app from the Slack App Directory / Marketplace",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "ui": "App Directory / slack.com/marketplace"
   },
   "check": "GET /apps.list (admin) or the channel's app list shows the newly installed app",
   "source": "https://slack.com/marketplace; https://slack.com/pricing"
  },
  {
   "id": "cap-29",
   "group": "Admin",
   "capability": "Configure single sign-on (SAML) for the workspace",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "ui": "admin settings > Authentication"
   },
   "check": "Workspace admin settings show SAML SSO enabled with an identity provider configured",
   "source": "https://slack.com/pricing"
  },
  {
   "id": "cap-30",
   "group": "Admin",
   "capability": "Manage users via SCIM provisioning",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "SCIM API",
    "ui": "admin settings > SCIM"
   },
   "check": "A SCIM API call to create/deactivate a user is reflected in the workspace member list",
   "source": "https://slack.com/pricing"
  },
  {
   "id": "cap-31",
   "group": "Admin",
   "capability": "Manage devices via Enterprise Mobility Management (EMM)",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "ui": "admin settings > Mobile management"
   },
   "check": "A device policy pushed from the EMM provider appears applied in admin mobile settings",
   "source": "https://slack.com/pricing"
  },
  {
   "id": "cap-32",
   "group": "Admin",
   "capability": "Set native data loss prevention (DLP) policies",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "ui": "admin settings > Data Loss Prevention"
   },
   "check": "A configured DLP rule blocks/flags a test message matching its pattern",
   "source": "https://slack.com/pricing"
  },
  {
   "id": "cap-33",
   "group": "Security",
   "capability": "Review workspace security program controls (encryption, audit logs)",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "Audit Logs API",
    "ui": "Trust/security admin settings"
   },
   "check": "GET /audit.logs returns recorded admin/user events for the workspace",
   "source": "https://slack.com/trust/security"
  },
  {
   "id": "cap-34",
   "group": "Connect",
   "capability": "Connect with up to 250 external organizations via Slack Connect",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "ui": "admin Slack Connect settings"
   },
   "check": "Admin Slack Connect page lists the count of connected external organizations",
   "source": "https://slack.com/pricing"
  }
 ],
 "attempts": [
  {
   "cap": "signup",
   "way": "email_code",
   "capability": "Sign up with email (code)",
   "task": "Create a Slack account and workspace with the agent's inbox",
   "route": "browser",
   "documented": true,
   "result": "human",
   "verified": false,
   "cause": "check",
   "evidence": "app.slack.com/get-started#/createnew: POST /api/signup.checkEmail -> {ok:true,type:unknown,challenge_response:true}; POST /api/auth.captcha -> {ok:true,sitekey:6LcRpcIr…}; reCAPTCHA Enterprise (enterprise.js, anchor + bframe) then shows a visible 'I'm not a robot' checkbox under the email field (screenshots browser/shots/005.png, 008.png; anchor iframe 365x94 visible). No code is sent until it is ticked; no mail arrived.",
   "notes": "Visible reCAPTCHA Enterprise checkbox on the email sign-up. We do not tick or solve it. (pw's own snapshot reported visible_challenge:false here; the screenshot shows the widget.) curl to slack.com/get-started gets HTTP 403 'your browser is not supported'.",
   "quality": {
    "error_legibility": "clear",
    "recoverable": "no"
   },
   "t": "04:14"
  },
  {
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "MCP server/discover",
   "task": "POST server/discover (2026-07-28) to https://mcp.slack.com/mcp",
   "result": "done",
   "evidence": "HTTP 401, WWW-Authenticate: Bearer resource_metadata=\"https://mcp.slack.com/.well-known/oauth-protected-resource\", body {\"jsonrpc\":\"2.0\",\"id\":null,\"error\":{\"code\":-32001,\"message\":\"missing_token\"}}",
   "notes": "Auth required before any method; version could not be learned without a token (no account). initialize also needs the token.",
   "t": "05:58"
  },
  {
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "OAuth metadata",
   "task": "Read PRM and AS metadata",
   "result": "done",
   "evidence": "PRM 200 application/json: resource https://mcp.slack.com, authorization_servers [https://mcp.slack.com], 30 scopes. AS metadata 200: authorization_endpoint https://slack.com/oauth/v2_user/authorize, token_endpoint https://slack.com/api/oauth.v2.user.access, grants authorization_code, refresh_token, urn:ietf:params:oauth:grant-type:jwt-bearer, token_endpoint_auth_methods client_secret_post, PKCE S256; no registration_endpoint, no client_id_metadata_document_supported, no device_authorization_endpoint.",
   "notes": "Client registration is pre-registered only: docs.slack.dev/ai/slack-mcp-server says 'You'll need to use your app's client_id and client_secret' and 'Only directory-published apps or internal apps may use MCP.'",
   "t": "05:59"
  },
  {
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "Cards",
   "task": "MCP server card, AI catalog, A2A card",
   "result": "done",
   "evidence": "https://mcp.slack.com/mcp/server-card 404 HTML; https://slack.com/.well-known/ai-catalog.json 404; /.well-known/agent-card.json 404; /.well-known/agent.json 404; /.well-known/mcp/server-card.json 404 (all HTML 'There's been a glitch').",
   "notes": "No cards.",
   "t": "05:59"
  },
  {
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "AI preferences",
   "task": "robots.txt Content-Usage and Content-Usage header",
   "result": "done",
   "evidence": "slack.com/robots.txt: one 'User-agent: *' group with 15 Disallow lines (e.g. /messages, /oauth, /openid, /join/shared_invite), no Content-Usage or Content-signal line; no Content-Usage response header on slack.com or docs.slack.dev. docs.slack.dev/robots.txt: 'User-agent: * Allow: /' plus comments pointing to .md pages and llms.txt.",
   "t": "05:59"
  },
  {
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "Markdown docs",
   "task": "Accept: text/markdown and .md on docs.slack.dev",
   "result": "done",
   "evidence": "GET https://docs.slack.dev/reference/methods/chat.postMessage with Accept: text/markdown -> 200 content-type text/markdown; charset=utf-8, vary: Accept, Accept-Encoding; .../chat.postMessage.md -> 200 text/markdown with YAML front matter (http_method, rate_limit, scopes).",
   "t": "05:59"
  },
  {
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "llms.txt",
   "task": "Read llms.txt",
   "result": "done",
   "evidence": "https://slack.com/llms.txt 200 text/plain 40672 bytes (marketing/blog links, H1 '# Slack'); https://docs.slack.dev/llms.txt 200 '# Slack Developer Docs' covering CLI, Bolt, SDKs, Web and Events APIs.",
   "t": "05:59"
  },
  {
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "OpenAPI",
   "task": "Fetch the Web API spec",
   "result": "done",
   "evidence": "https://api.slack.com/specs/openapi/v2/slack_web.json 200 application/json: swagger '2.0', info.version 1.7.0, 170 paths.",
   "notes": "Swagger 2.0 is behind the current OpenAPI 3.2.1 (kb docs brief).",
   "t": "05:59"
  },
  {
   "cap": "docs",
   "capability": "Find docs",
   "task": "Locate developer docs and API reference",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "docs.slack.dev (llms.txt, .md for every page, method reference with scopes and rate-limit tiers); api.slack.com redirects there. docs_pass verdict: gaps (errors and freshness unmet) for slack.com marketing pages.",
   "t": "06:00"
  },
  {
   "cap": "discovery",
   "capability": "No-account API call",
   "task": "POST https://slack.com/api/api.test (documented, no token)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "way": "keyless",
   "evidence": "200 {\"ok\":true,\"args\":{\"foo\":\"bar\"}}; chat.postMessage without token -> 200 {ok:false,error:not_authed} with x-slack-failure: not_authed and x-accepted-oauth-scopes: chat:write:bot.",
   "notes": "api.test only echoes; every real method needs a token from a workspace.",
   "quality": {
    "error_legibility": "clear"
   },
   "t": "06:00"
  },
  {
   "cap": "signup",
   "way": "keyless",
   "result": "skipped",
   "not_tried": "same_as",
   "verified": false,
   "route": "none",
   "documented": false,
   "notes": "Not offered: no Slack method does work without a workspace token (api.test only echoes); no claimable resource or local edition in docs.",
   "t": "06:00",
   "capability": "Sign up",
   "evidence": "Not offered: no Slack method does work without a workspace token (api.test only echoes); no claimable resource or local edition in docs."
  },
  {
   "cap": "signup",
   "way": "local",
   "result": "skipped",
   "not_tried": "same_as",
   "verified": false,
   "route": "none",
   "documented": false,
   "notes": "Not offered: no Slack method does work without a workspace token (api.test only echoes); no claimable resource or local edition in docs.",
   "t": "06:00",
   "capability": "Sign up",
   "evidence": "Not offered: no Slack method does work without a workspace token (api.test only echoes); no claimable resource or local edition in docs."
  },
  {
   "cap": "signup",
   "way": "claimable",
   "result": "skipped",
   "not_tried": "same_as",
   "verified": false,
   "route": "none",
   "documented": false,
   "notes": "Not offered: no Slack method does work without a workspace token (api.test only echoes); no claimable resource or local edition in docs.",
   "t": "06:00",
   "capability": "Sign up",
   "evidence": "Not offered: no Slack method does work without a workspace token (api.test only echoes); no claimable resource or local edition in docs."
  },
  {
   "cap": "signup",
   "way": "pay_per_call",
   "result": "skipped",
   "not_tried": "policy",
   "verified": false,
   "route": "none",
   "documented": false,
   "notes": "Not offered: pay_tx.json refused: no 402 on Slack's own endpoints; pay_probe found no x402/MPP challenge, no registry listing.",
   "t": "06:00",
   "capability": "Sign up",
   "evidence": "Not offered: pay_tx.json refused: no 402 on Slack's own endpoints; pay_probe found no x402/MPP challenge, no registry listing."
  },
  {
   "cap": "signup",
   "way": "api_signup",
   "result": "skipped",
   "not_tried": "same_as",
   "verified": false,
   "route": "none",
   "documented": false,
   "notes": "Not offered: no sign-up method in the Web API spec (170 paths) or docs; /auth.md 404.",
   "t": "06:00",
   "capability": "Sign up",
   "evidence": "Not offered: no sign-up method in the Web API spec (170 paths) or docs; /auth.md 404."
  },
  {
   "cap": "signup",
   "way": "authmd",
   "result": "skipped",
   "not_tried": "same_as",
   "verified": false,
   "route": "none",
   "documented": false,
   "notes": "Not offered: /auth.md 404, no agent_auth block in AS metadata.",
   "t": "06:00",
   "capability": "Sign up",
   "evidence": "Not offered: /auth.md 404, no agent_auth block in AS metadata."
  },
  {
   "cap": "signup",
   "way": "sso_agent",
   "result": "skipped",
   "not_tried": "same_as",
   "verified": false,
   "route": "none",
   "documented": false,
   "notes": "Not offered: no Sign in with AgentID on the sign-up page.",
   "t": "06:00",
   "capability": "Sign up",
   "evidence": "Not offered: no Sign in with AgentID on the sign-up page."
  },
  {
   "cap": "signup",
   "way": "magic_link",
   "result": "skipped",
   "not_tried": "same_as",
   "verified": false,
   "route": "none",
   "documented": false,
   "notes": "Not offered separately from the email code flow, which was blocked.",
   "t": "06:00",
   "capability": "Sign up",
   "evidence": "Not offered separately from the email code flow, which was blocked."
  },
  {
   "cap": "signup",
   "way": "sso_github",
   "result": "skipped",
   "not_tried": "same_as",
   "verified": false,
   "route": "none",
   "documented": false,
   "notes": "Not offered: the sign-up page shows only Google and Apple.",
   "t": "06:01",
   "capability": "Sign up",
   "evidence": "Not offered: the sign-up page shows only Google and Apple."
  },
  {
   "cap": "signup",
   "way": "sso_google",
   "result": "skipped",
   "not_tried": "no_kit",
   "verified": false,
   "route": "none",
   "documented": false,
   "notes": "Offered ('Google' button on app.slack.com/get-started); pw sso google: this drive has no Google account.",
   "t": "06:01",
   "capability": "Sign up",
   "evidence": "Offered ('Google' button on app.slack.com/get-started); pw sso google: this drive has no Google account."
  },
  {
   "cap": "signup",
   "way": "sso_apple",
   "result": "skipped",
   "not_tried": "no_kit",
   "verified": false,
   "route": "none",
   "documented": false,
   "notes": "Offered ('Apple' link); our agent has no Apple account.",
   "t": "06:01",
   "capability": "Sign up",
   "evidence": "Offered ('Apple' link); our agent has no Apple account."
  },
  {
   "cap": "signup",
   "way": "stripe_projects",
   "result": "skipped",
   "not_tried": "no_kit",
   "verified": false,
   "route": "none",
   "documented": false,
   "notes": "Not listed in the Stripe Projects catalog (pay_probe registries empty).",
   "t": "06:01",
   "capability": "Sign up",
   "evidence": "Not listed in the Stripe Projects catalog (pay_probe registries empty)."
  },
  {
   "cap": "signup",
   "way": "device_login",
   "result": "skipped",
   "not_tried": "same_as",
   "verified": false,
   "route": "none",
   "documented": false,
   "notes": "Slack CLI 'slack login' needs an existing workspace account; no account was made.",
   "t": "06:01",
   "capability": "Sign up",
   "evidence": "Slack CLI 'slack login' needs an existing workspace account; no account was made."
  },
  {
   "cap": "signup",
   "way": "oauth_consent",
   "result": "skipped",
   "not_tried": "same_as",
   "verified": false,
   "route": "none",
   "documented": false,
   "notes": "MCP OAuth (pre-registered client) needs a Slack account and an app's client_id/secret; no account was made.",
   "t": "06:01",
   "capability": "Sign up",
   "evidence": "MCP OAuth (pre-registered client) needs a Slack account and an app's client_id/secret; no account was made."
  },
  {
   "cap": "signup",
   "way": "id_assertion",
   "result": "skipped",
   "not_tried": "assisted_only",
   "verified": false,
   "route": "none",
   "documented": false,
   "notes": "AS metadata lists the jwt-bearer grant: an enterprise identity-assertion route that needs an org's IdP; a person must set it up.",
   "t": "06:01",
   "capability": "Sign up",
   "evidence": "AS metadata lists the jwt-bearer grant: an enterprise identity-assertion route that needs an org's IdP; a person must set it up."
  },
  {
   "cap": "signup",
   "way": "sso_enterprise",
   "result": "skipped",
   "not_tried": "assisted_only",
   "verified": false,
   "route": "none",
   "documented": false,
   "notes": "Enterprise SSO needs an org's IdP set up by a person.",
   "t": "06:01",
   "capability": "Sign up",
   "evidence": "Enterprise SSO needs an org's IdP set up by a person."
  },
  {
   "cap": "verify",
   "way": "email_code",
   "capability": "verify",
   "task": "verify on the email_code account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "cause": "check",
   "notes": "Not reached: sign-up stopped at the visible reCAPTCHA Enterprise checkbox on app.slack.com/get-started (no code mail sent).",
   "t": "06:13"
  },
  {
   "cap": "credentials",
   "way": "email_code",
   "capability": "credentials",
   "task": "credentials on the email_code account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "cause": "check",
   "notes": "Not reached: sign-up stopped at the visible reCAPTCHA Enterprise checkbox on app.slack.com/get-started (no code mail sent).",
   "t": "06:13"
  },
  {
   "cap": "first_call",
   "way": "email_code",
   "capability": "The first call",
   "task": "The first call on the email_code account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "cause": "check",
   "notes": "Not reached: sign-up stopped at the visible reCAPTCHA Enterprise checkbox on app.slack.com/get-started (no code mail sent).",
   "t": "06:13"
  },
  {
   "cap": "first_action",
   "way": "email_code",
   "capability": "The first action",
   "task": "The first action on the email_code account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "cause": "check",
   "notes": "Not reached: sign-up stopped at the visible reCAPTCHA Enterprise checkbox on app.slack.com/get-started (no code mail sent).",
   "t": "06:13"
  },
  {
   "cap": "credentials",
   "key": "create",
   "capability": "Scoped API key headless",
   "task": "Create an app token via the API/CLI",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "notes": "Tokens come from a Slack app installed in a workspace (api.slack.com/apps, or 'slack login' then app install); both need an account, which the reCAPTCHA stopped. Docs looked at: docs.slack.dev/authentication, ai/slack-mcp-server.",
   "t": "06:13"
  },
  {
   "cap": "pay",
   "step": "probe",
   "capability": "Pay: public probes",
   "task": "402 challenges, registries, well-known, billing API",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "pay_probe.json: no 402 on slack.com, api.slack.com, x402./mpp./agents. subdomains (403/302/no DNS); mpp.dev, Stripe Projects, x402 Bazaar empty; /.well-known/ucp 404; slack.com/openapi.json 404; Web API spec has no x-payment-info. pay_tx.json: refused, nothing paid. Pricing page: Free €0 'free forever'; Pro €8.25 (50% off for 3 months: €4.13) per user/month monthly; FAQ 'You can use a credit card to pay for any plan.'",
   "notes": "No billing API in the Web API spec; upgrade is in the workspace's billing page.",
   "t": "06:13"
  },
  {
   "cap": "pay",
   "step": "checkout",
   "capability": "Walk to the last click",
   "task": "Open the Pro checkout from our workspace",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "notes": "No account: the checkout sits in a workspace's billing settings; sign-up stopped at the visible reCAPTCHA checkbox. Not reached.",
   "t": "06:13"
  },
  {
   "cap": "cancel",
   "capability": "Cancel",
   "task": "Cancel what we started",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "notes": "Nothing started: no account, no plan, no trial.",
   "t": "06:14"
  },
  {
   "cap": "delete",
   "capability": "Delete account",
   "task": "Delete our account",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "notes": "No account was created (sign-up stopped before the code mail); nothing stored for us. The checkEmail call stores nothing we can see.",
   "t": "06:14"
  },
  {
   "kind": "claim",
   "t": "06:46",
   "cap": "cap-01",
   "surface": "api",
   "claim": "POST /chat.postMessage",
   "doc_url": "https://docs.slack.dev/reference/methods/",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox); docs: chat.postMessage .md 200, in OpenAPI True",
   "capability": "Docs claim: Send a message in a channel or DM",
   "task": "POST /chat.postMessage",
   "route": "api",
   "evidence": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox); docs: chat.postMessage .md 200, in OpenAPI True"
  },
  {
   "kind": "claim",
   "t": "06:46",
   "cap": "cap-01",
   "surface": "mcp",
   "claim": "conversations_add_message",
   "doc_url": "https://docs.slack.dev/ai/slack-mcp-server",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)",
   "capability": "Docs claim: Send a message in a channel or DM",
   "task": "conversations_add_message",
   "route": "mcp",
   "evidence": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)"
  },
  {
   "kind": "claim",
   "t": "06:46",
   "cap": "cap-01",
   "surface": "cli",
   "claim": "slack run (Bolt app)",
   "doc_url": "https://docs.slack.dev/tools/slack-cli",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)",
   "capability": "Docs claim: Send a message in a channel or DM",
   "task": "slack run (Bolt app)",
   "route": "cli",
   "evidence": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)"
  },
  {
   "kind": "claim",
   "t": "06:46",
   "cap": "cap-02",
   "surface": "api",
   "claim": "POST /chat.postMessage (thread_ts)",
   "doc_url": "https://docs.slack.dev/reference/methods/",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox); docs: chat.postMessage .md 200, in OpenAPI True",
   "capability": "Docs claim: Reply in a thread",
   "task": "POST /chat.postMessage (thread_ts)",
   "route": "api",
   "evidence": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox); docs: chat.postMessage .md 200, in OpenAPI True"
  },
  {
   "kind": "claim",
   "t": "06:46",
   "cap": "cap-02",
   "surface": "mcp",
   "claim": "conversations_add_message",
   "doc_url": "https://docs.slack.dev/ai/slack-mcp-server",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)",
   "capability": "Docs claim: Reply in a thread",
   "task": "conversations_add_message",
   "route": "mcp",
   "evidence": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)"
  },
  {
   "kind": "claim",
   "t": "06:46",
   "cap": "cap-03",
   "surface": "api",
   "claim": "POST /conversations.create",
   "doc_url": "https://docs.slack.dev/reference/methods/",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox); docs: conversations.create .md 200, in OpenAPI True",
   "capability": "Docs claim: Create a channel",
   "task": "POST /conversations.create",
   "route": "api",
   "evidence": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox); docs: conversations.create .md 200, in OpenAPI True"
  },
  {
   "kind": "claim",
   "t": "06:46",
   "cap": "cap-03",
   "surface": "mcp",
   "claim": "channels_create",
   "doc_url": "https://docs.slack.dev/ai/slack-mcp-server",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)",
   "capability": "Docs claim: Create a channel",
   "task": "channels_create",
   "route": "mcp",
   "evidence": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)"
  },
  {
   "kind": "claim",
   "t": "06:46",
   "cap": "cap-03",
   "surface": "cli",
   "claim": "slack create",
   "doc_url": "https://docs.slack.dev/tools/slack-cli",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)",
   "capability": "Docs claim: Create a channel",
   "task": "slack create",
   "route": "cli",
   "evidence": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)"
  },
  {
   "kind": "claim",
   "t": "06:46",
   "cap": "cap-04",
   "surface": "api",
   "claim": "POST /conversations.join, POST /conversations.leave",
   "doc_url": "https://docs.slack.dev/reference/methods/",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox); docs: conversations.join .md 200, in OpenAPI True, conversations.leave .md 200, in OpenAPI True",
   "capability": "Docs claim: Join or leave a channel",
   "task": "POST /conversations.join, POST /conversations.leave",
   "route": "api",
   "evidence": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox); docs: conversations.join .md 200, in OpenAPI True, conversations.leave .md 200, in OpenAPI True"
  },
  {
   "kind": "claim",
   "t": "06:46",
   "cap": "cap-04",
   "surface": "mcp",
   "claim": "channels_join",
   "doc_url": "https://docs.slack.dev/ai/slack-mcp-server",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)",
   "capability": "Docs claim: Join or leave a channel",
   "task": "channels_join",
   "route": "mcp",
   "evidence": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)"
  },
  {
   "kind": "claim",
   "t": "06:46",
   "cap": "cap-05",
   "surface": "api",
   "claim": "POST /calls.add",
   "doc_url": "https://docs.slack.dev/reference/methods/",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox); docs: calls.add .md 200, in OpenAPI True",
   "capability": "Docs claim: Start a huddle (audio/video call with screen share)",
   "task": "POST /calls.add",
   "route": "api",
   "evidence": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox); docs: calls.add .md 200, in OpenAPI True"
  },
  {
   "kind": "claim",
   "t": "06:46",
   "cap": "cap-06",
   "surface": "api",
   "claim": "POST /conversations.inviteShared",
   "doc_url": "https://docs.slack.dev/reference/methods/",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox); docs: conversations.inviteShared .md 200, in OpenAPI False",
   "capability": "Docs claim: Chat with an external organization via Slack Connect",
   "task": "POST /conversations.inviteShared",
   "route": "api",
   "evidence": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox); docs: conversations.inviteShared .md 200, in OpenAPI False"
  },
  {
   "kind": "claim",
   "t": "06:46",
   "cap": "cap-07",
   "surface": "api",
   "claim": "POST /workflows.* (via Workflow Builder platform)",
   "doc_url": "https://docs.slack.dev/reference/methods/",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)",
   "capability": "Docs claim: Build a workflow with Workflow Builder (trigger + steps)",
   "task": "POST /workflows.* (via Workflow Builder platform)",
   "route": "api",
   "evidence": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)"
  },
  {
   "kind": "claim",
   "t": "06:46",
   "cap": "cap-07",
   "surface": "cli",
   "claim": "slack create (workflow app)",
   "doc_url": "https://docs.slack.dev/tools/slack-cli",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)",
   "capability": "Docs claim: Build a workflow with Workflow Builder (trigger + steps)",
   "task": "slack create (workflow app)",
   "route": "cli",
   "evidence": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)"
  },
  {
   "kind": "claim",
   "t": "06:46",
   "cap": "cap-09",
   "surface": "mcp",
   "claim": "lists_create, lists_add_item",
   "doc_url": "https://docs.slack.dev/ai/slack-mcp-server",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)",
   "capability": "Docs claim: Create and manage a list (records, fields, views)",
   "task": "lists_create, lists_add_item",
   "route": "mcp",
   "evidence": "Not tried: no account (sign-up stopped at the visible reCAPTCHA checkbox)"
  },
  {
   "cap": "signup",
   "way": "email_code",
   "capability": "Human handoff for reCAPTCHA",
   "task": "Ask a human to tick the reCAPTCHA in our agent's browser",
   "route": "browser",
   "documented": true,
   "result": "human",
   "verified": false,
   "cause": "check",
   "evidence": "",
   "notes": "Sign-up stays blocked at the visible reCAPTCHA Enterprise checkbox.",
   "t": "08:10"
  },
  {
   "cap": "signup",
   "way": "email_password",
   "capability": "Developer Program sign-up (developer account + sandbox)",
   "task": "Join the Slack Developer Program at api.slack.com/developer-program/join with the agent's inbox",
   "route": "browser",
   "documented": true,
   "result": "human",
   "verified": false,
   "cause": "check",
   "evidence": "docs.slack.dev/tools/developer-sandboxes.md: 'Navigate to the Slack Developer Program page. Click Join the Program.' The join form (First name, Last name, Email, Country/Region, ZIP/Postal code, terms checkbox) carries a visible reCAPTCHA 'I'm not a robot' checkbox above SUBMIT (browser/shots/016.png).",
   "notes": "Visible reCAPTCHA checkbox on the form: we do not tick it. Form not submitted.",
   "t": "11:21"
  }
 ],
 "stale": false,
 "icon": "/logos/slack.png",
 "monitored": false,
 "verdict": null,
 "page": "https://agentdrives.com/tools/slack?via=api"
}