1f02de8cd0
The 875-line commands.rs is split: - llm.rs: handle_llm_message (LLM turn for non-command messages, ~190 lines) - mod.rs: SlackSlashCommandPayload + slash_command_to_bot_keyword + handle_incoming_message + tests (~700 lines) Tests stay co-located with handle_incoming_message in mod.rs. All 2636 tests pass; clippy clean.