Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/document-read-thread-message-ts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"slack": patch
---

Document that `slack_read_thread` takes the thread timestamp as `message_ts`, not `thread_ts`. Search permalinks surface this value as `?thread_ts=<ts>`, so the slack-search skill and the find-discussions, standup, and summarize-channel commands now call out the correct parameter name to prevent a failed first call and retry.
2 changes: 1 addition & 1 deletion commands/find-discussions.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Given the topic provided in $ARGUMENTS:

1. Use the `slack_search_public` tool to search for messages matching the topic. Use the topic as a natural language question first for semantic results.
2. If semantic results are sparse, follow up with a keyword search using key terms from the topic.
3. For the most relevant results, use `slack_read_thread` to fetch full thread conversations so you capture the complete discussion context.
3. For the most relevant results, use `slack_read_thread` to fetch full thread conversations so you capture the complete discussion context. Pass the thread's `channel_id` and the timestamp from the result's permalink (`?thread_ts=<ts>`) as `message_ts` — the parameter is named `message_ts`, not `thread_ts`.
4. Present the results organized by relevance:
- For each discussion found, show: the channel name, who started it, a brief summary of the conversation, and the date.
- Group related discussions together if they span multiple channels.
Expand Down
2 changes: 1 addition & 1 deletion commands/standup.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ description: Generate a standup update based on your recent Slack activity
- **What I'm working on next** — Any mentions of upcoming work, plans, or follow-ups
- **Blockers** — Any questions asked that went unanswered, issues raised, or explicit mentions of being stuck

4. For messages in threads, use `slack_read_thread` to get the full context so you can accurately describe what the user contributed.
4. For messages in threads, use `slack_read_thread` to get the full context so you can accurately describe what the user contributed. Pass the message's timestamp from the search results as `message_ts` — the parameter is named `message_ts`, not `thread_ts`.

5. Format the standup as:

Expand Down
2 changes: 1 addition & 1 deletion commands/summarize-channel.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Given the channel name provided in $ARGUMENTS (strip any leading `#`):

1. Use the `slack_search_channels` tool to find the channel ID for the provided channel name. Strip any leading `#` from the argument before searching.
2. Use the `slack_read_channel` tool to read recent messages from the channel (default limit of 100 messages).
3. For any messages that have threads with replies, use `slack_read_thread` to read the thread contents so the summary captures threaded discussions.
3. For any messages that have threads with replies, use `slack_read_thread` to read the thread contents so the summary captures threaded discussions. Pass the parent message's timestamp as `message_ts` — the parameter is named `message_ts`, not `thread_ts`.
4. Produce a concise summary organized by topic or theme. The summary should include:
- An overview of the main topics discussed
- Key decisions or action items mentioned
Expand Down
3 changes: 2 additions & 1 deletion skills/slack-search/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ Example: `content_types="files" type:pdfs budget after:2025-01-01`

After finding relevant messages:

- Use `slack_read_thread` to get the full thread context for any threaded message.
- Use `slack_read_thread` to get the full thread context for any threaded message. It takes the thread's `channel_id` and the parent message's timestamp — but the timestamp parameter is named `message_ts`, **not** `thread_ts`. A result's permalink shows this value as `?thread_ts=<ts>`; pass that `<ts>` under `message_ts`.
- Use `slack_read_channel` with `oldest`/`latest` timestamps to read surrounding messages for context.
- Use `slack_read_user_profile` to identify who a user is when their ID appears in results.

Expand All @@ -103,3 +103,4 @@ After finding relevant messages:
- **Parentheses don't work.** Don't try to group search terms with `()`.
- **Search is not real-time.** Very recent messages (last few seconds) may not appear in search results. Use `slack_read_channel` for the most recent messages.
- **Private channel access.** Use `slack_search_public_and_private` when you need to include private channels, but note this requires user consent.
- **`slack_read_thread` expects `message_ts`, not `thread_ts`.** Search permalinks contain `?thread_ts=<ts>`, but the tool's timestamp parameter is named `message_ts`. Pass the timestamp value under `message_ts` (with the thread's `channel_id`) — a call using `thread_ts` is rejected.
Loading