From slack-triage
This skill should be used when the user asks to "check Slack", "triage my Slack", "check my messages", "Slack summary", "what did I miss on Slack", or invokes /slack or /messages. Scans Eric's Slack workspace for recent messages, DMs, threads, and mentions — classifies by priority tier, and offers reply drafting. References porres-family-assistant for contacts context.
npx claudepluginhub ericporres/slack-triage-pluginThis skill uses the workspace's default tool permissions.
Scan Eric's Slack workspace for recent messages, classify them into three priority tiers, and offer to draft replies for urgent items. This skill mirrors the email-triage pattern but adapted for Slack's channel-based, threaded communication model.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Automates semantic versioning and release workflow for Claude Code plugins: bumps versions in package.json, marketplace.json, plugin.json; verifies builds; creates git tags, GitHub releases, changelogs.
Scan Eric's Slack workspace for recent messages, classify them into three priority tiers, and offer to draft replies for urgent items. This skill mirrors the email-triage pattern but adapted for Slack's channel-based, threaded communication model.
This skill does NOT maintain its own contact data — it reads from the porres-family-assistant skill as the canonical source for people context.
The Slack connector (https://mcp.slack.com/mcp) provides these tools:
| Tool | Purpose |
|---|---|
slack_read_channel | Read recent messages from a specific channel |
slack_search_public_and_private | Search across all accessible channels |
slack_search_users | Find users by name or email |
slack_search_channels | Find channels by name or topic |
Before scanning, read these files from the family assistant to establish priority context:
| File | What it provides |
|---|---|
shared/skills/porres-family-assistant/references/family-members.md | Family names — helps identify personal messages from family members |
shared/skills/porres-family-assistant/references/email-aliases.md | Alias routing — email/Slack identity overlap |
Load only these two. Don't load insurance, medical, or finance unless a specific message requires that context.
Also load references/workspace-config.md from this skill for channel priority mappings (once Eric configures it).
Use the Slack MCP tools to gather recent activity. Run these searches in parallel:
Search for recent DMs sent to Eric:
slack_search_public_and_private: "to:me" (filtered to DMs)
Search for @mentions of Eric across channels:
slack_search_public_and_private: "@eric" or Eric's Slack user mention
Search for replies in threads Eric has participated in:
slack_search_public_and_private: threads where Eric has replied
Read latest messages from channels marked as priority in references/workspace-config.md.
Time window options:
Snippet-first approach: Classify from search result snippets first. Only read full channel history or thread for:
This avoids token blowout on busy days.
Messages with a direct question, request, or action aimed at Eric. Each gets:
Urgency signals (auto-promote to Tier 1):
Needs Eric's eyes but not necessarily a reply:
General channel chatter, automated bot spam, social messages, memes, off-topic threads. Summarize as counts by channel.
Use references/workspace-config.md for Eric's channel configuration. Until configured, use these defaults:
Default priority channels (Tier 1 if action-oriented):
Default review channels (Tier 2):
Default noise (Tier 3):
Format output as:
# Slack Triage — [Today's Date]
[X messages scanned from last 24h across Y channels]
## Reply Needed (X)
1. **[Sender Name]** in #[channel] (or DM)
[One-line summary of what they need]
→ Suggested: [Reply / React / Schedule / Forward to X]
2. ...
## Review (X)
- **[Sender]** in #[channel] — [One-line summary]
- ...
## Noise (X)
[X] #random, [X] #social, [X] bot notifications, [X] other
Numbering matters. Tier 1 items are numbered so Eric can say "draft a reply to #3."
When Eric asks to draft a reply (e.g., "draft a reply to #3"):
slack_read_channel or search toolsIf Eric asks for a summary rather than full triage:
# Slack Catch-Up — [Date Range]
**Hot topics:** [2-3 sentence summary of the most important threads]
**Action items for you:**
1. [Action] — from [Person] in #[channel]
2. ...
**Decisions made without you:**
- [Decision] in #[channel] — [who decided, when]
**Nothing urgent:** [Channels with no activity or only noise]