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 skills/slack/slack-master/scripts/setup_slack.py
Check configuration:
python skills/slack/slack-master/scripts/check_slack_config.py --json
Always run first:
python 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 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 skills/slack/slack-master/scripts/send_message.py \
--channel "C1234567890" \
--text "Hello from Beam Next!" \
--json
Update message:
python skills/slack/slack-master/scripts/update_message.py \
--channel "C1234567890" \
--ts "1234567890.123456" \
--text "Updated message" \
--json
Delete message:
python skills/slack/slack-master/scripts/delete_message.py \
--channel "C1234567890" \
--ts "1234567890.123456" \
--json
List channels:
python skills/slack/slack-master/scripts/list_channels.py \
--types "public_channel,private_channel" \
--limit 50 \
--json
Get channel info:
python skills/slack/slack-master/scripts/channel_info.py \
--channel "C1234567890" \
--json
Get channel history:
python skills/slack/slack-master/scripts/channel_history.py \
--channel "C1234567890" \
--limit 20 \
--json
List users:
python skills/slack/slack-master/scripts/list_users.py \
--limit 100 \
--json
Get user info:
python skills/slack/slack-master/scripts/user_info.py \
--user "U1234567890" \
--json
Search messages:
python skills/slack/slack-master/scripts/search_messages.py \
--query "project update" \
--count 20 \
--json
Search files:
python skills/slack/slack-master/scripts/search_files.py \
--query "report.pdf" \
--count 10 \
--json
Upload file:
python skills/slack/slack-master/scripts/upload_file.py \
--file "/path/to/file.pdf" \
--channels "C1234567890" \
--title "My Report" \
--json
List files:
python 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 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
tools
Build a Palantir-shape, PDF-native use-case proposal document for a sophisticated enterprise account: research-grounded use cases (each with description, challenge, impact, value), an operating-graph ontology page, a recommended PoC with a week-by-week plan, and a closing page that asks for one decision. Load when a client asks us to 'propose high-impact use cases', requests a use-case presentation/catalog for a function (finance, HR, ops), or when a technical evaluation team will review candidates to pick a PoC. NOT for single-account cold outreach (use prospect-brief), full process diagnostics (use operating-diagnostic), or priced proposals (use proposal-creation).
development
Convert Beam Figma slide designs into high-fidelity, editable HTML presentation decks. Use when Codex is asked to audit Figma slides, extract slide templates, rebuild Beam slides as HTML decks, decide whether Figma imagery should be exported or rebuilt in HTML/CSS, create Beam/Prism-compatible deck templates, or improve fidelity of existing Beam HTML slide rebuilds.
development
Use the Beam AI reusable slide library: individual HTML slide templates extracted from Beam Figma rebuilds, kept separate from deck themes and full deck templates. Load when the user asks for a slide library, specific Beam slide patterns, reusable Figma-inspired slides, Prism slide-library items, or slide-level HTML templates.
development
Use Beam AI deck and report design packs, HTML templates, and curated examples to create sales decks, customer intro decks, RPO decks, and DIN A4 use-case proposal reports. Load when the user asks for Beam-branded presentation templates, Prism-compatible deck templates, Beam report templates, customer intro decks, commercial proposals, or reusable HTML deck/report examples.