Use Slack <@USER_ID> syntax for real mentions in warm handoffs
@Name is plain text — only <@USER_ID> creates a clickable mention
that notifies the person. Also adds a step to reply in the original
thread with a link to the handoff message.
Assisted-by: Claude Opus 4.6 via Claude Code
diff --git a/ai/claude/skills/warm-handoffs/SKILL.md b/ai/claude/skills/warm-handoff/SKILL.md
similarity index 74%
rename from ai/claude/skills/warm-handoffs/SKILL.md
rename to ai/claude/skills/warm-handoff/SKILL.md
index 71cb0165..572d2190 100644
--- a/ai/claude/skills/warm-handoffs/SKILL.md
+++ b/ai/claude/skills/warm-handoff/SKILL.md
@@ -30,13 +30,13 @@ Source: https://luckymike.dev/posts/warm-handoffs/
```
3. **Understand the question.** Identify:
- - Who is asking (mention them by name with `@`)
+ - Who is asking — note their Slack user ID (`U...`) from the thread data
- What they need help with
- Any relevant details or context from the thread
4. **Draft the handoff message.** Write a message for the target channel that:
- Links to the original thread
- - Tags the person who asked
+ - Mentions the person who asked using Slack's `<@USER_ID>` syntax — this is the only format that creates a real mention; `@Name` is plain text and won't notify or link
- Explains what they need and why this channel is the right place
- Includes any additional context that would help the receiving team answer quickly
- Is written from the perspective of the person doing the handoff (the user)
@@ -44,7 +44,7 @@ Source: https://luckymike.dev/posts/warm-handoffs/
Keep it concise — one short paragraph is ideal. Tone: collegial, helpful, direct.
Example:
- > Hey folks! @Andre came to us with a question about 429s on `/v2/bulk-update`. I believe your team owns that endpoint. I checked the gateway metrics and see IP rate limiting but no client rate limiting — could be a missing `client_id`. Thread: [link]
+ > Hey folks — <@U_THEIR_ID> came to us with a question about 429s on `/v2/bulk-update`. I believe your team owns that endpoint. I checked the gateway metrics and see IP rate limiting but no client rate limiting — could be a missing `client_id`. Thread: [link]
5. **Present the draft.** Show the proposed message and the target channel. Ask the user to confirm or revise before sending.
@@ -53,6 +53,11 @@ Source: https://luckymike.dev/posts/warm-handoffs/
mcporter call slack.send_message channel="#target-channel" text="..."
```
+7. **Link back to the original thread.** Reply in the original thread with a link to the handoff message so the person knows where the conversation moved:
+ ```bash
+ mcporter call slack.slack_send_message --args '{"channel_id":"<source-channel-id>","message":"I asked about this in #target-channel: <link-to-handoff-message>","thread_ts":"<original-ts>"}'
+ ```
+
## Principles
- **Carry the person** — tag them so they're part of the conversation, not starting over.