skills/integrations/slack/slack-connect/SKILL.md
Connect to Slack workspace for messaging and channel management. Load when user mentions 'slack', 'connect slack', 'slack message', 'slack channel', 'send to slack', or any Slack operations. Meta-skill that validates config, discovers workspace, and routes to appropriate operations.
npx skillsauth add beam-ai-team/beam-next-skills slack-connectInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Entry point for all Slack operations. Validates configuration, discovers workspace, and routes requests to appropriate skills.
Load this skill when user says:
First-time setup:
python 00-system/skills/slack/slack-master/scripts/setup_slack.py
Check configuration:
python 00-system/skills/slack/slack-master/scripts/check_slack_config.py --json
Always run first:
python 00-system/skills/slack/slack-master/scripts/check_slack_config.py --json
If ai_action is proceed_with_operation:
If ai_action is run_oauth_setup:
python 00-system/skills/slack/slack-master/scripts/setup_slack.pyIf ai_action is create_slack_app:
slack-master/references/setup-guide.mdParse what the user wants to do:
| User Says | Route To | |-----------|----------| | "send message to #general" | Messaging → send_message.py | | "list channels" | Channels → list_channels.py | | "get messages from #dev" | Channels → channel_history.py | | "search for 'project update'" | Search → search_messages.py | | "list users" | Users → list_users.py | | "upload file" | Files → upload_file.py | | "add reaction" | Reactions → (see Phase 7) | | "pin message" | Pins → (see Phase 9) | | "set reminder" | Reminders → (see Phase 10) |
Use the appropriate script from slack-master/scripts/:
Send message:
python 00-system/skills/slack/slack-master/scripts/send_message.py \
--channel "C1234567890" \
--text "Hello from Beam Next!" \
--json
Update message:
python 00-system/skills/slack/slack-master/scripts/update_message.py \
--channel "C1234567890" \
--ts "1234567890.123456" \
--text "Updated message" \
--json
Delete message:
python 00-system/skills/slack/slack-master/scripts/delete_message.py \
--channel "C1234567890" \
--ts "1234567890.123456" \
--json
List channels:
python 00-system/skills/slack/slack-master/scripts/list_channels.py \
--types "public_channel,private_channel" \
--limit 50 \
--json
Get channel info:
python 00-system/skills/slack/slack-master/scripts/channel_info.py \
--channel "C1234567890" \
--json
Get channel history:
python 00-system/skills/slack/slack-master/scripts/channel_history.py \
--channel "C1234567890" \
--limit 20 \
--json
List users:
python 00-system/skills/slack/slack-master/scripts/list_users.py \
--limit 100 \
--json
Get user info:
python 00-system/skills/slack/slack-master/scripts/user_info.py \
--user "U1234567890" \
--json
Search messages:
python 00-system/skills/slack/slack-master/scripts/search_messages.py \
--query "project update" \
--count 20 \
--json
Search files:
python 00-system/skills/slack/slack-master/scripts/search_files.py \
--query "report.pdf" \
--count 10 \
--json
Upload file:
python 00-system/skills/slack/slack-master/scripts/upload_file.py \
--file "/path/to/file.pdf" \
--channels "C1234567890" \
--title "My Report" \
--json
List files:
python 00-system/skills/slack/slack-master/scripts/list_files.py \
--channel "C1234567890" \
--limit 20 \
--json
Success:
Error:
slack-master/references/error-handling.md if neededchannel_not_found → Help user find correct channelmissing_scope → Need to add scope and re-authorizerate_limited → Wait and retryAll scripts are in 00-system/skills/slack/slack-master/scripts/:
| Script | API Method | Description | |--------|------------|-------------| | send_message.py | chat.postMessage | Send a message | | update_message.py | chat.update | Edit a message | | delete_message.py | chat.delete | Delete a message | | schedule_message.py | chat.scheduleMessage | Schedule a message |
| Script | API Method | Description | |--------|------------|-------------| | list_channels.py | conversations.list | List channels | | channel_info.py | conversations.info | Get channel details | | channel_history.py | conversations.history | Get messages | | create_channel.py | conversations.create | Create channel |
| Script | API Method | Description | |--------|------------|-------------| | list_users.py | users.list | List workspace users | | user_info.py | users.info | Get user details |
| Script | API Method | Description | |--------|------------|-------------| | upload_file.py | files.upload | Upload a file | | list_files.py | files.list | List files |
| Script | API Method | Description | |--------|------------|-------------| | search_messages.py | search.messages | Search messages | | search_files.py | search.files | Search files |
When user references a channel by name (e.g., "#general"):
First, list channels to find the ID:
python list_channels.py --json
Find matching channel in response
Use the channel ID (e.g., "C1234567890") for operations
Common Pattern:
# User says: "send message to #general"
# 1. List channels to find ID
# 2. Use ID in send_message.py --channel C123...
When user references someone by name (e.g., "@john"):
List users to find the ID:
python list_users.py --json
Find matching user in response
Use the user ID (e.g., "U1234567890") for operations
User: "Send 'Hello team!' to #general"
AI Actions:
check_slack_config.py --jsonlist_channels.py --jsonsend_message.py --channel C1234567890 --text "Hello team!" --jsonUser: "Search slack for 'quarterly report'"
AI Actions:
search_messages.py --query "quarterly report" --jsonUser: "What slack channels am I in?"
AI Actions:
list_channels.py --types "public_channel,private_channel" --json| Error | Action | |-------|--------| | No token | Run setup_slack.py | | Invalid token | Re-authenticate | | Token revoked | Re-authenticate |
| Error | Action | |-------|--------| | channel_not_found | List channels, help user find correct one | | missing_scope | Add scope to app, re-authorize | | rate_limited | Wait retry_after seconds, then retry | | not_in_channel | Join channel first |
Load: slack-master/references/error-handling.md
slack-master/references/setup-guide.mdslack-master/references/api-reference.mdslack-master/references/authentication.mdslack-master/references/error-handling.mdVersion: 1.0 Created: 2025-12-17 Status: Production Ready
development
--- name: taste-skill type: skill version: '1.0' author: Leonxlnx (packaged by Zhichao Li) category: general tags: - frontend - design - anti-slop - landing-page updated: '2026-06-11' visibility: public description: Anti-slop frontend skill for landing pages, portfolios, and redesigns. The agent reads the brief, infers the right design direction, and ships interfaces that do not look templated. Real design systems when applicable, audit-first on redesigns, strict pre-flight check. license: MIT.
development
Use when communicating quantitative information in any form — Slack updates, emails, reports, decks, dashboards, landing pages, product UI, public talks. Covers two integrated layers: (1) making numbers semantically meaningful (translation, anchoring, simplification, story-pairing) and (2) showing numbers cleanly (chart vs table vs prose, chart-by-message, pre-attentive emphasis, color discipline, decluttering). Distilled and integrated from *Show Me the Numbers* (Stephen Few) and *Make Numbers Count* (Chip Heath & Karla Starr). Not for raw data analysis or statistics — this is about communication of numbers, not their derivation.
development
Use when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding, and empty states. Handles UX review, visual hierarchy, information architecture, cognitive load, accessibility, performance, responsive behavior, theming, anti-patterns, typography, fonts, spacing, layout, alignment, color, motion, micro-interactions, UX copy, error states, edge cases, i18n, and reusable design systems or tokens. Also use for bland designs that need to become bolder or more delightful, loud designs that should become quieter, live browser iteration on UI elements, or ambitious visual effects that should feel technically extraordinary. Not for backend-only or non-UI tasks.
tools
Stateful multi-session tutor adapted for Beam — teach a stakeholder to understand, trust, and operate a specific agent, or teach a Solution Engineer a client's business process for delivery. Grounds every lesson in Knowledge Hub sources (real agent graphs, real tasks, transcripts, Linear) before any web resource. Also works for any general topic. Trigger on "teach me", "beam teach", "教我", "onboard <person> on <agent>", "help <stakeholder> understand the agent", "learn this client's process".