post-to-slacklisted
Install: claude install-skill atman-33/workhub
# Post to Slack
Resolves a channel name (or a user name for a mention) to its Slack ID
before posting — the Slack MCP connector's send/search tools need IDs, not
display names, and IDs are not stable across workspaces.
## Steps
1. Determine the message body and the target channel. If the caller (a
direct user request, or another skill such as `report-pbl-progress`)
already gives an explicit channel ID (`C...`) and/or an already-resolved
mention (`<@U...>`), skip straight to step 4 — don't re-resolve what's
already unambiguous.
2. If the channel is given by name rather than ID, resolve it with the Slack
MCP connector's `slack_search_channels` tool and take the matching
channel's ID. If more than one channel plausibly matches, ask the user
rather than guessing.
3. If a mention is wanted and given by name rather than user ID, resolve it
with `slack_search_users` and format it as `<@USERID>` inline in the
message text — Slack does not render `@name` as a mention, only the raw
`<@ID>` form works.
4. Post with `slack_send_message` (`thread_ts` for a thread reply,
`reply_broadcast` to also surface a thread reply in the channel). Return
the message's permalink to the caller.
## Reference
### Failure modes
- **Channel not found**: `slack_search_channels` found no match — confirm
the exact channel name with the user; don't guess a close match.
- **User not found**: same for `slack_search_users` when resolving a
mention.
- **Message too long