Skip to content
Agentmart
Submit a tool

slack-context-fetcher

Fetches Slack thread content using a Slack bot for ticket context enrichment.

Skill by DrJKL

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/drjkl-slack-context-fetcher

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Fetches Slack thread content using a Slack bot for ticket context enrichment. Use when tickets reference Slack threads or discussions.

Use cases: writing, productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/slack-context-fetcher

What's inside

Skill name
slack-context-fetcher
Description
Fetches Slack thread content using a Slack bot for ticket context enrichment. Use when tickets reference Slack threads or discussions.
License
MIT
Instructions
149 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Slack Context Fetcher

Fetches Slack thread content when tickets reference Slack discussions. Uses the Pipeline API for state management.

## Configuration

Uses the **production API** by default. No configuration needed for read operations.

**Defaults (no setup required):**

- API URL: `https://api-gateway-856475788601.us-central1.run.app`
- Read-only endpoints at `/public/*` require no authentication

**For write operations** (state transitions), set:

```bash
export PIPELINE_API_KEY="..."  # Get from GCP Secret Manager or ask admin
```

## Prerequisites

- `slackdump` CLI installed at `/usr/bin/slackdump`
- Credentials stored at `~/.cache/slackdump/comfy-organization.bin`
- If auth fails, load `slackdump` skill and read `reference/auth.md`

## Workflow

### 1. Detect Slack References

Parse ticket description for Slack links:

```
Pattern: https://{workspace}.slack.com/archives/{channel_id}/p{timestamp}
Example: https://comfy-org.slack.com/archives/C07ABCD1234/p1234567890123456
```

Extract:

- `channel_id`: C07ABCD1234
- `thread_ts`: 1234567890.123456 (insert decimal before last 6 digits)

### 2. Fetch Thread Content via slackdump

Use the `slackdump` skill's **export-thread** workflow:

```bash
THREAD_URL="https://comfy-organization.slack.com/archives/$CHANNEL/$THREAD_TS_NO_DOT"

# Export the thread
slackdump dump "$THREAD_URL"

# Or using colon notation
slackdump dump "$CHANNEL:$THREAD_TS"
```

> **Note:** Load the `slackdump` skill for detailed instructions. Use the `reference/export-thread.md` workflow.

### 3. Resolve User Names

User names are included in slackdump export output. If additional resolution is needed:

```bash
# List users in the workspace
slackdump list users
```

> Load the `slackdump` skill and use `reference/discover.md` for user lookup.

### 4. Format for Context

```markdown
## Slack Thread Context

**Thread:** [Link](https://comfy-org.slack.com/archives/C07.../p1234...)
**Participants:** Alice, Bob, Charlie
**Messages:** 12

### Full Thread

**Alice** (2024-01-15 10:30):

> Original message about the issue...

**Bob** (2024-01-15 10:45):

> Response with context...
```

### 5. Save Artifacts and Update State

Save the Slack context to the local runs directory and update ticket metadata via API:

```bash
# Save local artifact
echo "$SLACK_CONTEXT" > "$RUN_DIR/slack-context.md"
```

```typescript
import { PipelineClient } from '@pipeline/client'

const client = new PipelineClient({
  apiUrl: process.env.PIPELINE_API_URL || 'https://api-gateway-856475788601.us-central1.run.app',
  agentId: process.env.AGENT_ID,
})

// Verify ticket exists - fail loudly if ticket-intake wasn't run
const ticket = await client.getTicket(ticketId).catch(() => null)
if (!ticket) {
  console.error('❌ No pipeline ticket found. Run ticket-intake first to register this ticket.')
  // Stop here - ticket-intake must run before this skill
}
// Update ticket metadata with Slack thread info
await client.updateTicket(ticketId, {
  metadata: {
    ...ticket.metadata,
    slackThreads: [
      ...(ticket.metadata?.slackThreads || []),
      { url: threadUrl, fetched: new Date().toISOString(), messages: messageCount },
    ],

From DrJKL/ticket-to-pr-pipeline, MIT.

More from DrJKL/ticket-to-pr-pipeline

Signals

Stars
0
Forks
1
Open issues
0
Last commit (this folder)
Feb 24, 2026 (8 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from DrJKL

Cite this page

slack-context-fetcher skill. Agent Mart. https://agentmart.dev/skills/drjkl-slack-context-fetcher (last updated 2026-10-24)