一键导入
incident-comms
// Slack integration for incident communication. Use when searching for context in incident channels, posting status updates, or finding discussions about issues.
// Slack integration for incident communication. Use when searching for context in incident channels, posting status updates, or finding discussions about issues.
Kubernetes debugging methodology and scripts. Use for pod crashes, CrashLoopBackOff, OOMKilled, deployment issues, resource problems, or container failures.
GitLab project management, CI/CD pipelines, merge requests, and code review. Use when investigating GitLab projects, pipeline failures, merge requests, commits, or issues.
ClickUp project management integration for incident tracking and task management
AWS cloud infrastructure inspection. Use when investigating EC2 instances, ECS tasks/services, Lambda functions, CloudWatch logs/metrics, or AWS resource issues.
Infrastructure debugging for Kubernetes and AWS. Use when investigating pod crashes, deployment issues, resource problems, container failures, or cloud infrastructure issues.
Safe remediation actions for Kubernetes. Use when proposing or executing pod restarts, deployment scaling, or rollbacks. Always use dry-run first.
| name | incident-comms |
| description | Slack integration for incident communication. Use when searching for context in incident channels, posting status updates, or finding discussions about issues. |
| allowed-tools | Bash(python *) |
IMPORTANT: Credentials are injected automatically by a proxy layer. Do NOT check for SLACK_BOT_TOKEN in environment variables — it won't be visible to you. Just run the scripts directly; authentication is handled transparently.
You authenticate as a bot (not a user). This means:
| Can do | Cannot do |
|---|---|
List channels (conversations.list) | Search messages (search.messages — requires user token) |
| Read channel history (if bot is a member) | Read channels the bot hasn't been added to |
| Read thread replies | Access DMs between other users |
| Post messages and thread replies | |
| Look up user profiles |
If search is requested: Do NOT attempt search_messages.py — it will fail with a missing_scope error. Instead, use the channel-scanning workflow below.
All scripts are in .claude/skills/incident-comms/scripts/
python .claude/skills/incident-comms/scripts/list_channels.py [--types TYPE] [--limit N] [--filter NAME]
# Examples:
python .claude/skills/incident-comms/scripts/list_channels.py
python .claude/skills/incident-comms/scripts/list_channels.py --filter incident
python .claude/skills/incident-comms/scripts/list_channels.py --types public_channel --limit 500
python .claude/skills/incident-comms/scripts/get_channel_history.py --channel CHANNEL_ID [--limit N]
# Examples:
python .claude/skills/incident-comms/scripts/get_channel_history.py --channel C123ABC456
python .claude/skills/incident-comms/scripts/get_channel_history.py --channel C123ABC456 --limit 100
python .claude/skills/incident-comms/scripts/get_thread_replies.py --channel CHANNEL_ID --thread THREAD_TS [--limit N]
# Examples:
python .claude/skills/incident-comms/scripts/get_thread_replies.py --channel C123ABC456 --thread 1705320123.456789
python .claude/skills/incident-comms/scripts/post_message.py --channel CHANNEL_ID --text MESSAGE [--thread THREAD_TS]
# Examples:
python .claude/skills/incident-comms/scripts/post_message.py --channel C123ABC456 --text "Investigation update: found root cause"
python .claude/skills/incident-comms/scripts/post_message.py --channel C123ABC456 --text "Rollback completed" --thread 1705320123.456789
Since search.messages requires a user token, use this workflow instead:
# Step 1: Find relevant channels
python .claude/skills/incident-comms/scripts/list_channels.py --filter incident
# Step 2: Read recent history from channels the bot is in (★ in list)
python .claude/skills/incident-comms/scripts/get_channel_history.py --channel C_INCIDENTS --limit 50
# Step 3: Dive into interesting threads
python .claude/skills/incident-comms/scripts/get_thread_replies.py --channel C_INCIDENTS --thread 1705320123.456789
Scan multiple channels to build context. Focus on channels with names like #incidents, #alerts, #engineering, #support.
# Find incident-related channels
python .claude/skills/incident-comms/scripts/list_channels.py --filter incident
# Check the incident channel for recent activity
python .claude/skills/incident-comms/scripts/get_channel_history.py --channel C_INCIDENTS --limit 50
# Read a specific thread
python .claude/skills/incident-comms/scripts/get_thread_replies.py --channel C_INCIDENTS --thread 1705320123.456789
python .claude/skills/incident-comms/scripts/post_message.py --channel C_INCIDENTS --thread 1705320123.456789 --text ":clipboard: *Investigation Summary*
*Timeline:*
• 14:00 - Alerts started firing
• 14:05 - Investigation began
• 14:15 - Root cause identified
• 14:20 - Fix deployed
*Root Cause:*
Connection pool exhaustion due to unclosed connections.
*Resolution:*
Rolled back to v2.3.4, deployed fix in v2.3.5."
| Goal | Command |
|---|---|
| List channels | list_channels.py |
| Filter channels by name | list_channels.py --filter incident |
| Channel history | get_channel_history.py --channel C123ABC |
| Thread replies | get_thread_replies.py --channel C123ABC --thread TS |
| Post update | post_message.py --channel C123ABC --text "Update" |
| Reply to thread | post_message.py --channel C123ABC --text "..." --thread TS |
Investigation Started:
:mag: *Investigation Started*
Investigating: [Brief description of symptoms]
Initial findings: [What you've found so far]
Current hypothesis: [What you think might be wrong]
Will update in 15 minutes.
Root Cause Identified:
:bulb: *Root Cause Identified*
Cause: [Clear explanation]
Impact: [What was affected]
Mitigation: [What we're doing to fix it]
ETA for resolution: [Time estimate]
Resolved:
:white_check_mark: *Incident Resolved*
Root cause: [Brief summary]
Resolution: [What fixed it]
Duration: [How long the incident lasted]
Follow-up: [Next steps, postmortem timing]
list_channels.py to find channel IDs — don't guess#incidents, #alerts, #engineering, #support, etc.search_messages.py — it requires a user token and will faillist_channels.py to find them