# Vendor facets — Slack, as a public developer-community host. One check, support_channel # (2 pts), at half credit when declared as Community. Shared invite links last 30 days and 400 # joins, and join.slack.com answers a bot with 403, so the score cannot tell a live invite from a # dead one. vendor: slack name: Slack website: https://slack.com areas: - community registry_keys: - slack rubric_schema_version: 0.22.0 generated: '2026-09-25' features_refreshed: '2026-09-25' basis: capability summary: >- A community Slack workspace earns a provider one check, support_channel (2 points): half of it when declared as Community, which the pointer probe never reads, and all of it when declared as Support. The full credit is partly an accident of the probe. join.slack.com returns 403 to our crawler, which grades as live (all 16 probed Slack pointers), yet a shared invite link is only active for 30 days and 400 joins, so many of those links are probably dead and the score cannot see it. Slack hosts no blog, roadmap or changelog for a provider. features: - id: community-workspace name: Workspace with a shared invite link description: >- A workspace anyone can join through an invite link; each link is active for 30 days and up to 400 people, and admins can edit its expiration. source: https://slack.com/help/articles/201330256-Invite-new-members-to-your-workspace tier: all maps: - feature: community-workspace check: support_channel layer: composite credit: 0.5 provider_must: >- Declare the join link in apis.yml common[], and keep replacing it before it expires. As Community it grades "unverified" (0.5) because probe-pointers.py does not probe Community; as Support it is probed, and join.slack.com's 403 grades "refused", which scores live (1.0). note: >- All 16 Slack support pointers in the 2026-09-22 probe graded "refused" (403) and therefore live, including shared-invite links that may have expired. The liveness grade here measures Slack's bot policy, not the invite. catalog_pass_rate: 0.45 facet: developer_ergonomics points: 2 baseline_pass_rate: 0.69 out_of_reach: checks: - blog_present - roadmap_present - change_log_present - documentation_present note: A chat workspace hosts no public document a pointer check could read. surface: developer_ergonomics: reachable: 1.0 total: 42 agent_readiness: reachable: 0 total: 139 hard_rule: >- A model, not a score. Adopting this vendor changes a provider's Kin Score only when the provider publishes the resulting artifacts on its own surface; nothing here writes a score, and no sponsorship or partnership can. method: searched source: - https://slack.com/help/articles/201330256-Invite-new-members-to-your-workspace measured: cohort: method: vendors-catalog.json detections (CNAME / header / URL shape / markup), never a name match detected: 0 in_baseline: 0 control: basis: providers earning contract_present + documentation_present + api_reference_present, minus the cohort n: 5216 metric: >- cohort_pct / control_pct = mean share of the check's points earned (derived and platform credit weighted), x100 measured_on: '2026-09-25' status: 'not measurable: 0 detected customers clear the baseline (need 20)' simulation: simulated_on: '2026-09-25' rubric: 0.23.0 population: providers publishing a contract (contract_present earned), replayable exactly providers: 8977 providers_unreplayable: 987 providers_moved: 3701 conditional_rows: excluded (they depend on what the API already does) composite_lift: median: 0.0 p75: 0.5 p90: 0.5 max: 0.5 mean_among_movers: 0.5 agent_readiness_lift: median: 0.0 p75: 0.0 p90: 0.0 max: 0.0 mean_among_movers: 0.0 facet_lift_median_among_movers: developer_ergonomics: 2.4 composite_band_moves: thin -> developing: 101 emerging -> thin: 30 developing -> strong: 21 strong -> exemplar: 6 agent_readiness_band_moves: {} method: >- each provider's own kin/checks file, the vendor's maps at their stated credit, the scorer's composite formula; from -> to, nothing written