flake-update-20260505

name: slack description: Read-only Slack workspace access. USE WHEN user asks about Slack messages OR channel activity OR thread discussions OR searching Slack OR wants to catch up on conversations OR references a Slack URL.

Slack

Read-only access to Slack workspaces. Supports Enterprise Grid (Red Hat) via direct curl API and regular workspaces (Tekton) via slackdump.

Workflow Routing

Workflow Trigger Action
Read History “what happened in #channel”, “catch up on channel” SlackRead.sh history <channel>
Read Thread “read this thread”, Slack URL pasted SlackRead.sh thread <url>
Search “search slack for”, “find discussion about” SlackRead.sh search <query>
List Channels “list slack channels”, “which channels” SlackRead.sh channels
Find User “who is”, “find user” SlackRead.sh users <query>

Tools

Tool Purpose
tools/SlackRead.sh Main CLI — all Slack read operations

Tool path: ~/.config/claude/skills/Slack/tools/SlackRead.sh

Setup

Red Hat Workspace (curl backend)

Tokens stored in passage (age-encrypted password store):

# Store token and cookie from browser DevTools
echo 'xoxc-...' | passage insert -m slack/redhat/token
echo 'xoxd-...' | passage insert -m slack/redhat/cookie

Getting tokens from browser:

  1. Open Red Hat Slack in browser → DevTools (F12)
  2. Network tab → filter api/ → click any request → copy token from request body
  3. Storage tab → Cookies → .slack.com → cookie d (starts with xoxd-)

Tekton Workspace (slackdump backend)

slackdump workspace new https://tektoncd.slack.com

Uses EZ-Login 3000 (browser-based, tokens encrypted in ~/.local/cache/slackdump/).

Operational Guidance for the Agent

  1. Default workspace is redhat — use -w tekton for Tekton.
  2. Red Hat uses search.messages for channel discoveryconversations.list is blocked on Enterprise Grid.
  3. Use channel IDs when known — faster than name resolution for Red Hat.
  4. Search is the most versatile command on Enterprise Grid — use in:#channel after:date syntax.
  5. User names resolve incrementally on Red Hat — discovered from search results, not bulk-fetched.
  6. Output is compact text — summarize and present nicely to the user.
  7. Read-only — no sending, reacting, or modifying.
  8. If auth fails with not_authed or invalid_auth, tokens may have expired — ask user to refresh from browser.

Commands

Check Auth

~/.config/claude/skills/Slack/tools/SlackRead.sh auth
~/.config/claude/skills/Slack/tools/SlackRead.sh -w tekton auth

Read Channel History

# Red Hat (default workspace)
~/.config/claude/skills/Slack/tools/SlackRead.sh history team-ocp-pipeline
~/.config/claude/skills/Slack/tools/SlackRead.sh history team-ocp-pipeline --since 2026-03-25 --limit 20
~/.config/claude/skills/Slack/tools/SlackRead.sh history CG5GV6CJD

# Tekton
~/.config/claude/skills/Slack/tools/SlackRead.sh -w tekton history pipeline-dev

Read a Thread

# By channel ID + thread timestamp
~/.config/claude/skills/Slack/tools/SlackRead.sh thread CG5GV6CJD 1774841643.132339

# By Slack URL (tekton)
~/.config/claude/skills/Slack/tools/SlackRead.sh -w tekton thread https://tektoncd.slack.com/archives/CLCCEBUMU/p1772459500074799

Search Messages

# Slack search query syntax works
~/.config/claude/skills/Slack/tools/SlackRead.sh search "release 1.22 in:#team-ocp-pipeline"
~/.config/claude/skills/Slack/tools/SlackRead.sh search "from:@chmouel after:2026-03-20"
~/.config/claude/skills/Slack/tools/SlackRead.sh -w tekton search "resolver caching"

List/Search Users

~/.config/claude/skills/Slack/tools/SlackRead.sh users vincent
~/.config/claude/skills/Slack/tools/SlackRead.sh -w tekton users vdemeest

Output Format

Channel History

#channel-name — N messages
---username [YYYY-MM-DD HH:MM]: [N replies] message text

Search Results

Search: "query" — N results (showing up to 20)
---
username [YYYY-MM-DD HH:MM] in #channel: message text (max 300 chars)

Thread

Thread — N messages
---
username [YYYY-MM-DD HH:MM]: message text

Workspaces

Workspace Backend Auth Notes
redhat (default) curl passage slack/redhat/{token,cookie} Enterprise Grid — conversations.list blocked, use search
tekton slackdump EZ-Login 3000 Regular workspace — all features work

Examples

Example 1: Catch up on team channel

User: "What happened in #team-ocp-pipeline this week?"
→ Run: SlackRead.sh history team-ocp-pipeline --since 2026-03-24
→ Agent summarizes release planning, defects, discussions

Example 2: Read a Slack thread

User: "Read this thread CG5GV6CJD 1774841643.132339"
→ Run: SlackRead.sh thread CG5GV6CJD 1774841643.132339
→ Agent presents the full thread conversation

Example 3: Search across Slack

User: "Search for discussions about TLS on Slack"
→ Run: SlackRead.sh search "TLS in:#team-ocp-pipeline"
→ Agent summarizes relevant messages

Example 4: Tekton workspace

User: "What's happening in Tekton #pipeline-dev?"
→ Run: SlackRead.sh -w tekton history pipeline-dev
→ Agent summarizes upstream Tekton discussions

Dependencies

Tool Purpose Source
curl + jq Slack API calls (curl backend) nixpkgs
passage Token/cookie storage (curl backend) nixpkgs
slackdump Slack access (slackdump backend) nixpkgs (v4.0.2)
sqlite3 Search results (slackdump backend) nixpkgs

Limitations

  • Read-only — cannot send messages, react, or modify anything
  • Enterprise Gridconversations.list and users.list are blocked; use search to discover channels and users
  • Token expiry — browser tokens (xoxc/xoxd) expire; re-extract from browser when auth fails
  • Speed — curl backend is fast (~2-5s), slackdump backend is slower (~15-25s)

Integration

This skill works with:

  • Email skill — cross-reference Slack discussions with email threads
  • GitHub skill — follow up on PRs/issues mentioned in Slack messages
  • Jira skill — connect Slack discussions to Jira tickets (SRVKP-* references)