slack-saylisted
Install: claude install-skill app-vitals/shipwright
# slack-say — Skill
Post a single-line progress message into the Slack thread (or channel) a run started
from. It exists so a human watching a long-running command can see it is still moving
without waiting for the final response.
---
## When to use this
- **One line at each stage boundary** of long-running work — e.g. "starting
implementation", "opening PR #123", "CI failed, retrying fix (2/6)". A stage boundary is
a transition between the major phases of a command/skill (discovery → build → review →
ship), not every individual tool call.
- **Never for chatter.** Do not narrate routine tool calls, intermediate reasoning, or
anything that isn't a meaningful phase transition.
- **Never as a replacement for the final response.** The calling command/skill still owes
the user its normal end-of-run summary — `slack-say` only pings interim progress.
---
## Invocation
```bash
bun run "${CLAUDE_PLUGIN_ROOT}/scripts/slack-say.ts" [--channel C] [--thread T] "text"
```
- `text` — every non-flag argument is joined with a space, so an unquoted multi-word
message still works.
- `--channel` — overrides the resolved channel (see resolution order below).
- `--thread` — overrides the resolved thread timestamp.
- There is no `--token` flag, on purpose — the Slack bot token is env-only.
---
## Resolution order
| Value | Source (highest priority first) |
|---|---|
| Channel | `--channel` flag → `SLACK_CHANNEL_ID` env var |
| Thread | `--thread` flag → `SLACK_THREAD_TS` env