---
name: "Split slack.rs into focused modules"
---

# Refactor 413: Split slack.rs into focused modules

## Current State

- TBD

## Desired State

Refactor the monolithic server/src/chat/transport/slack.rs (1902 lines) into a slack/ directory with focused modules, mirroring the whatsapp/ module structure from story 409.

## Acceptance Criteria

- [ ] slack.rs is replaced by a slack/ directory with mod.rs re-exporting all public types
- [ ] meta.rs contains SlackTransport struct, ChatTransport trait impl, and Slack API request/response types
- [ ] commands.rs contains incoming message dispatch, permission logic, and slash command handling
- [ ] format.rs contains markdown_to_slack() conversion
- [ ] history.rs contains load_slack_history(), save_slack_history(), and SlackHistoryDump
- [ ] verify.rs contains verify_slack_signature(), sha256(), and constant_time_eq()
- [ ] mod.rs contains Slack event types, webhook handlers, and SlackWebhookContext
- [ ] All existing tests are preserved and pass in their respective modules
- [ ] No public API changes — all existing imports from other crates continue to work

## Out of Scope

- TBD
