본문으로 건너뛰기
cccskills
무료GitHub에 공개

slack-notifications

Slack messaging, channels, and notifications - send messages, manage channels, interact with users, upload files, and add reactions. Use for team communication, incident notifications, and workflow alerts.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구Slack
설치 방법 보기

포함된 파일(10)

  • SKILL.md13.2 KB
  • commands/slack-notifications.md119 B
  • hooks/post-execute.cjs886 B
  • hooks/pre-execute.cjs883 B
  • references/research-requirements.md494 B
  • rules/slack-notifications.md440 B
  • schemas/input.schema.json275 B
  • schemas/output.schema.json636 B
  • scripts/main.cjs1.4 KB
  • templates/implementation-template.md193 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Mode: Cognitive/Prompt-Driven — No standalone utility script; use via agent context.

Slack Notifications Skill

Overview

This skill provides Slack API operations with progressive disclosure for optimal context usage.

Context Savings: ~90% reduction

  • MCP Mode: ~15,000 tokens always loaded (30+ tools)
  • Skill Mode: ~500 tokens metadata + on-demand loading

Requirements

  • SLACK_BOT_TOKEN environment variable (required)
  • SLACK_SIGNING_SECRET environment variable (optional, for event verification)
  • SLACK_APP_TOKEN environment variable (optional, for Socket Mode)

Setting up Slack Bot Token

  1. Create a Slack App at https://api.slack.com/apps
  2. Navigate to "OAuth & Permissions"
  3. Add required bot token scopes:
    • chat:write - Send messages
    • channels:read - List channels
    • channels:history - Read channel history
    • users:read - List users
    • files:write - Upload files
    • reactions:write - Add reactions
  4. Install app to workspace
  5. Copy "Bot User OAuth Token" to SLACK_BOT_TOKEN environment variable

Tools

The skill provides 14 tools across 5 categories:

CategoryToolsConfirmation Required
Messagingpost-message, post-thread, update-message, delete-messageYes (all)
Channelslist-channels, get-channel, channel-historyNo
Userslist-users, get-user, user-presenceNo
Filesupload-file, list-filesYes (upload only)
Reactionsadd-reaction, get-reactionsNo

Quick Reference

# Post message to channel
curl -X POST https://slack.com/api/chat.postMessage \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"channel": "C1234567890", "text": "Hello from Claude!"}'

# List channels
curl -X GET "https://slack.com/api/conversations.list" \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN"

# Upload file
curl -X POST https://slack.com/api/files.upload \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
  -F "channels=C1234567890" \
  -F "file=@report.pdf" \
  -F "title=Weekly Report"

Tool Details

Messaging Tools (Confirmation Required)

post-message

Send a message to a Slack channel.

Parameters:

  • channel (required): Channel ID or name (e.g., "C1234567890" or "#general")
  • text (required): Message text (supports Slack markdown)
  • thread_ts (optional): Parent message timestamp for threading
  • blocks (optional): Rich message blocks (JSON array)

Example:

curl -X POST https://slack.com/api/chat.postMessage \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "C1234567890",
    "text": "Deployment successful!",
    "blocks": [
      {
        "type": "section",
        "text": {
          "type": "mrkdwn",
          "text": "*Deployment Status*\n:white_check_mark: Production deployed successfully"
        }
      }
    ]
  }'

post-thread

Reply to a message in a thread.

Parameters:

  • channel (required): Channel ID
  • thread_ts (required): Parent message timestamp
  • text (required): Reply text

Example:

curl -X POST https://slack.com/api/chat.postMessage \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "C1234567890",
    "thread_ts": "1234567890.123456",
    "text": "Thread reply here"
  }'

update-message

Update an existing message.

Parameters:

  • channel (required): Channel ID
  • ts (required): Message timestamp
  • text (required): New message text

Example:

curl -X POST https://slack.com/api/chat.update \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "C1234567890",
    "ts": "1234567890.123456",
    "text": "Updated message"
  }'

delete-message

Delete a message.

Parameters:

  • channel (required): Channel ID
  • ts (required): Message timestamp

Example:

curl -X POST https://slack.com/api/chat.delete \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "C1234567890",
    "ts": "1234567890.123456"
  }'

Channel Tools

list-channels

List all channels in workspace.

Parameters:

  • types (optional): Comma-separated channel types (default: "public_channel")
    • Options: "public_channel", "private_channel", "mpim", "im"
  • limit (optional): Max channels to return (default: 100)

Example:

curl -X GET "https://slack.com/api/conversations.list?types=public_channel,private_channel" \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN"

get-channel

Get channel information.

Parameters:

  • channel (required): Channel ID

Example:

curl -X GET "https://slack.com/api/conversations.info?channel=C1234567890" \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN"

channel-history

Get channel message history.

Parameters:

  • channel (required): Channel ID
  • limit (optional): Max messages to return (default: 100)
  • oldest (optional): Start of time range (Unix timestamp)
  • latest (optional): End of time range (Unix timestamp)

Example:

curl -X GET "https://slack.com/api/conversations.history?channel=C1234567890&limit=50" \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN"

Security Note: Channel history may contain sensitive information. Use with caution.

User Tools

list-users

List all users in workspace.

Parameters:

  • limit (optional): Max users to return (default: 100)

Example:

curl -X GET "https://slack.com/api/users.list" \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN"

get-user

Get user profile information.

Parameters:

  • user (required): User ID

Example:

curl -X GET "https://slack.com/api/users.info?user=U1234567890" \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN"

user-presence

Get user online status.

Parameters:

  • user (required): User ID

Example:

curl -X GET "https://slack.com/api/users.getPresence?user=U1234567890" \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN"

File Tools

upload-file (Confirmation Required)

Upload a file to Slack channel.

Parameters:

  • channels (required): Comma-separated channel IDs
  • file (required): File path to upload
  • title (optional): File title
  • initial_comment (optional): Message text

Example:

curl -X POST https://slack.com/api/files.upload \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
  -F "channels=C1234567890" \
  -F "file=@C:\reports\weekly.pdf" \
  -F "title=Weekly Report" \
  -F "initial_comment=Here is this week's report"

list-files

List files in channel.

Parameters:

  • channel (optional): Channel ID to filter by
  • user (optional): User ID to filter by
  • count (optional): Max files to return (default: 100)

Example:

curl -X GET "https://slack.com/api/files.list?channel=C1234567890" \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN"

Reaction Tools

add-reaction

Add emoji reaction to a message.

Parameters:

  • channel (required): Channel ID
  • timestamp (required): Message timestamp
  • name (required): Emoji name (without colons, e.g., "thumbsup")

Example:

curl -X POST https://slack.com/api/reactions.add \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "C1234567890",
    "timestamp": "1234567890.123456",
    "name": "thumbsup"
  }'

get-reactions

Get reactions on a message.

Parameters:

  • channel (required): Channel ID
  • timestamp (required): Message timestamp

Example:

curl -X GET "https://slack.com/api/reactions.get?channel=C1234567890&timestamp=1234567890.123456" \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN"

Agent Integration

Primary Agents

  • devops: Infrastructure alerts, deployment notifications, monitoring
  • incident-responder: Incident alerts, status updates, escalations

Secondary Agents

  • pm: Sprint notifications, milestone updates, team announcements
  • developer: Build notifications, PR alerts, test results
  • qa: Test failure alerts, quality reports
  • security-architect: Security alerts, vulnerability notifications

Common Use Cases

Deployment Notifications

# Notify channel of successful deployment
curl -X POST https://slack.com/api/chat.postMessage \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "#deployments",
    "text": ":rocket: Production deployment completed",
    "blocks": [
      {
        "type": "section",
        "text": {
          "type": "mrkdwn",
          "text": "*Production Deployment*\n:white_check_mark: v1.2.3 deployed successfully\n*Duration:* 5m 23s"
        }
      }
    ]
  }'

Incident Alerts

# Alert on-call team of incident
curl -X POST https://slack.com/api/chat.postMessage \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "#incidents",
    "text": "<!channel> :rotating_light: High severity incident detected",
    "blocks": [
      {
        "type": "section",
        "text": {
          "type": "mrkdwn",
          "text": "*Incident INC-1234*\n:rotating_light: *Severity:* P1\n*Service:* API Gateway\n*Status:* 503 errors increasing"
        }
      }
    ]
  }'

Test Results

# Post test results
curl -X POST https://slack.com/api/chat.postMessage \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "#qa",
    "text": "Test suite completed",
    "blocks": [
      {
        "type": "section",
        "text": {
          "type": "mrkdwn",
          "text": "*Test Results*\n:white_check_mark: 245 passed\n:x: 3 failed\n:warning: 2 skipped"
        }
      }
    ]
  }'

Security Considerations

Token Security

  • NEVER expose bot token in logs or error messages
  • Store token in environment variable, not in code
  • Use least-privilege scopes for bot token
  • Rotate tokens periodically

Message Security

  • All message operations require confirmation
  • Channel history may contain sensitive information (PII, credentials, etc.)
  • Validate channel permissions before posting
  • Use private channels for sensitive communications

Data Privacy

  • Comply with workspace data retention policies
  • Avoid posting PII or credentials in messages
  • Use Slack's data export features for compliance
  • Respect user privacy and online status

Error Handling

Common Errors

ErrorCauseSolution
not_authedMissing or invalid tokenCheck SLACK_BOT_TOKEN is set correctly
channel_not_foundInvalid channel IDVerify channel ID with list-channels
missing_scopeBot lacks required permissionAdd scope in Slack App settings
rate_limitedToo many requestsImplement exponential backoff
message_not_foundInvalid timestampCheck message timestamp is correct

Retry Strategy

For rate limiting errors, implement exponential backoff:

  1. Wait 1 second, retry
  2. Wait 2 seconds, retry
  3. Wait 4 seconds, retry
  4. Wait 8 seconds, retry
  5. Give up after 5 attempts

Rate Limits

Slack API rate limits:

  • Tier 1: 1 request per second
  • Tier 2: 20 requests per minute
  • Tier 3: 50 requests per minute
  • Tier 4: 100 requests per minute

Methods by tier:

  • chat.postMessage: Tier 3 (50/min)
  • conversations.list: Tier 2 (20/min)
  • users.list: Tier 2 (20/min)
  • files.upload: Tier 4 (100/min)

Related

Memory Protocol (MANDATORY)

Before starting: Read .claude/context/memory/learnings.md

After completing:

  • New pattern -> .claude/context/memory/learnings.md
  • Issue found -> .claude/context/memory/issues.md
  • Decision made -> .claude/context/memory/decisions.md

ASSUME INTERRUPTION: If it's not in memory, it didn't happen.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Ensure accessibility in UI components including semantic HTML, ARIA attributes, keyboard navigation, and WCAG 2.2 AA compliance.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

oimiragieo/agent-studio422026년 7월 14일 업데이트

Use when you want to improve response quality through meta-cognitive reasoning. Applies 15+ reasoning methods to reconsider and refine initial outputs.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

oimiragieo/agent-studio422026년 7월 14일 업데이트

N-round opposing-stance debates for trade-off analysis. Assigns pro/con roles to agents, runs structured debate rounds with quality scoring, and produces a moderator synthesis with confidence-rated recommendation. Generalizable to architecture, technology, security, and design decisions.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

oimiragieo/agent-studio422026년 7월 14일 업데이트

Force adversarial code review stance that eliminates confirmation bias — reviewer must find issues or re-analyze

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

oimiragieo/agent-studio422026년 7월 14일 업데이트

Creates specialized AI agents on-demand when no existing agent matches a request. Use when the Router cannot find a suitable agent for a task. Enables self-evolution by generating persistent agents.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

oimiragieo/agent-studio422026년 7월 14일 업데이트

LLM-as-judge evaluation framework with 5-dimension rubric (accuracy, groundedness, coherence, completeness, helpfulness) for scoring AI-generated content quality with weighted composite scores and evidence citations

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

oimiragieo/agent-studio422026년 7월 14일 업데이트

oimiragieo의 스킬 모두 보기

이 스킬의 문제 신고