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
최근 소스 활동
2026년 7월 6일 02:29
감지된 SKILL.md 언어
영어
스타
1
포크
1

설치 방법

기본적으로 소스를 먼저 확인하는 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에서 보기