Slack
Start a task without leaving a Slack conversation. Shiba asks for approval before starting repository work and posts the outcome back to the conversation.
Before you start
Section titled “Before you start”Your administrator needs to connect the Shiba app and choose who can approve work. Invite the bot to the channel you want to use, or send it a direct message.
Ask for a task
Section titled “Ask for a task”Mention the bot with a clear request and a GitHub repository URL:
@shiba update the README installation steps in https://github.com/owner/repo
You can also use the slash command:
/shiba https://github.com/owner/repo update the README installation stepsIf the channel already has a default repository, a mention can use it. When Shiba needs a repository, it asks rather than choosing one for you.
Review and approve
Section titled “Review and approve”Read the proposed repository, task, and execution settings on the approval card. Choose Approve to allow that request or Reject to stop it. If the request is wrong, reject it and send a clearer brief.
Only people on your installation’s approver list can decide. Ask your administrator if the buttons refuse your decision.
Follow the result
Section titled “Follow the result”Shiba posts progress and the outcome to Slack. A pull request link appears when publishing was requested and succeeded. Open the result and check the changes before using them.
For app permissions and installation, see Slack setup. For the decision itself, see Approvals.
Thread mirroring (operators)
Section titled “Thread mirroring (operators)”Task rooms can mirror a specific thread after the Worker has observed a signed Slack event for it. A room owner maps the exact workspace/channel/thread from the Collaboration view; only later signed messages in that thread are copied into the room. Slack user IDs remain Slack identities and are not linked to Shiba accounts. Revoking the mapping stops new room writes.
Outbound room delivery is disabled by default. An operator must set SLACK_ROOM_OUTBOX_ENABLED=true, configure SLACK_BOT_TOKEN and the exact target SLACK_APPROVALS_CHANNEL, and configure DASHBOARD_APPROVERS. Each intent needs approval from a user on that allowlist who is also an active human member of the room. The author must remain an active human room member through approval and the pre-send check. Before sending, the Worker calls Slack auth.test with the configured token and requires its workspace ID to match the signed, mapped thread; it then rechecks both memberships, the active link, and exact message content before using chat.postMessage. Removing the author or approver blocks an unsent intent. Revoking a link blocks future sends while preserving an already-started attempt’s eventual receipt or unknown outcome. A successful Slack receipt is persisted. A network failure after the request begins is recorded as unknown and is never automatically retried.
Adding message.channels / message.groups subscriptions or the required history scopes changes the Slack app installation. A Slack workspace admin must review and approve the app manifest and reinstall or update the app. No channel mapping, app installation, scope grant, or real Slack send is performed by the code tests.
