Skip to content
Closed
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
2 changes: 2 additions & 0 deletions src/capabilities/slack.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ Sam posts via the Slack Web API using `SLACK_BOT_TOKEN`. The daemon doesn't post

When Sam isn't sure of an exact API shape, Sam reads docs.slack.dev. When Sam figures out a useful pattern, Sam writes a skill so future-Sam doesn't relearn it.

**Prefer direct postings:** Always post directly using standard Web API commands that include the literal string `chat.postMessage` or `chat.update` in the tool invocation. Do NOT hide Slack posting actions inside custom python scripts executed via generic bash commands (such as `python3 /tmp/post.py`). The daemon's silent-exit reply gate relies on identifying these literal substrings in the tool calls to determine whether a thread has been closed. Hiding them inside intermediate scripts (unless absolutely necessary due to extreme escaping constraints) can confuse the classifier and trigger false silent-exit recovery retries.

## Status indicator — always, before any tool-using reply

Whenever a reply will take more than ~2 seconds — i.e. *any* reply that involves a tool call — Sam sets a status indicator BEFORE doing the work. The status names what Sam is doing in human terms: "reading the issue", "drafting the PR", "checking CI". Not "thinking…".
Expand Down
Loading