Skip to main content

slack-community-check

Check if a Warp user is an active member of the Warp Community Slack workspace. Use when investigating a ban appeal to determine if the user has recent posting activity (last 90 days) in the community — a strong signal of legitimate developer engagement. All Slack API logic runs in a deterministic script; the agent reads only the JSON result and never calls Slack APIs directly, reads message text, or joins channels. Part of the fraud-bot skill suite.

معلومات المصدر

المستودع
warpdotdev/fraud-detection-agent-oss
آخر نشاط في المصدر
٦ يوليو ٢٠٢٦ في ٠٢:٢٩
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١
التفرعات
١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
slack-community-check
description
Check if a Warp user is an active member of the Warp Community Slack workspace. Use when investigating a ban appeal to determine if the user has recent posting activity (last 90 days) in the community — a strong signal of legitimate developer engagement. All Slack API logic runs in a deterministic script; the agent reads only the JSON result and never calls Slack APIs directly, reads message text, or joins channels. Part of the fraud-bot skill suite.
# Slack Community Check Determine whether a user is an active member of the Warp Community Slack workspace. All Slack API logic runs in a deterministic script — the agent never calls Slack APIs directly, reads message content, or joins channels. ## Run the script ```bash python3 /workspace/fraud-bot/scripts/check_slack_community_activity.py \ --email <EMAIL> \ --lookback-days 90 ``` The script prints a single JSON object to stdout. Parse only that JSON — do not interpret any other script output. **Do not:** - Call Slack APIs directly - Read or log Slack message text - Join or leave channels manually - Re-run the script multiple times for the same email in one investigation ## JSON schema (version 1) Key fields: | Field | Type | Notes | |---|---|---| | `status` | string | See Status Taxonomy below | | `is_active_community_member` | bool | `true` only when `member_active` | | `last_engaged_at` | ISO-8601 | Present only when `member_active` | | `engagement_count` | int | Present only when `member_active` | | `channels_checked` | int | Channels successfully scanned | | `channels_failed` | int | Channels that returned errors | | `errors` | array | Machine-readable error strings | | `schema_version` | int | Always 1 for this skill version | ## Status Taxonomy | `status` | Meaning | |---|---| | `member_active` | In workspace AND posted in an approved channel within the lookback window | | `member_inactive` | In workspace but no posts found within the lookback window | | `not_member` | Email not found in workspace | | `deactivated_member` | Account found but deactivated | | `restricted_member` | Account found but restricted/guest | | `inconclusive` | Partial failure — some channels failed; check `errors` field | | `script_error` | Script could not complete (token missing, API down, etc.) | ## Verdict Impact This is a **softening signal only** — it can downgrade a Red verdict to Yellow; it cannot upgrade any other verdict. | Condition | Action | |---|---| | Verdict is **Red** AND `is_active_community_member == true` | Downgrade verdict to **Yellow** | | Any other verdict + any status | No change | When downgrading, the recommendation must state: > "Downgraded from Red to Yellow: user is an active Warp Community Slack member > (last engaged: `<last_engaged_at>`). Human review recommended to verify whether > fraud signals (multiple accounts / VPN) are legitimate developer behaviour." Set [EMOJI] to 🟡 in the comment header — do NOT use 🔴 when downgrading to Yellow. ## Failure Behavior If the script returns `inconclusive` or `script_error`, or stdout is not valid JSON: - Set **Slack Community** to: `⚠️ Slack check inconclusive: <first item from errors field>` - Do NOT apply any verdict downgrade - Continue the investigation based on all other signals ## Output for Front Comment Populate the **Slack Community** field as follows: - `member_active`: `✅ Active member — last_engaged=<last_engaged_at>, posts=<engagement_count>` - `member_inactive`: `⚪ Inactive member — no posts in last 90 days` - `not_member`: `❌ Not a member of the Warp Community Slack` - `deactivated_member`: `❌ Was a member but account is deactivated` - `restricted_member`: `⚠️ Restricted/guest account` - `inconclusive` / `script_error`: `⚠️ Slack check inconclusive: <first error>` ## Dry-run example ```bash SLACK_COMMUNITY_BOT_TOKEN=xoxb-... \ python3 /workspace/fraud-bot/scripts/check_slack_community_activity.py \ --email user@example.com ``` ## Auth (for setup reference only — handled by the script) Token: `SLACK_COMMUNITY_BOT_TOKEN` (xoxb-… bot token, "Warp Insights" app) Required scopes: `users:read`, `users:read.email`, `channels:read`, `channels:history`, `groups:read`, `groups:history` No channel list config needed. The script checks all public and private channels the bot has been invited to. Add/remove channels by inviting or removing the bot via the channel's Integrations settings in Slack.
عرض على GitHub