You are building a self-hosted Slack bot in which every thread is its own Claude Code session running in its own throwaway container. This document is the specification. It is written as hard-won design, not as suggestions: where it says "this is load-bearing", the alternative has already been tried and it broke.
Stack assumption: TypeScript on Bun, Slack Bolt in Socket Mode, Hono for the
internal HTTP API, Docker Compose, and @anthropic-ai/claude-agent-sdk. Substitute
runtimes if you must, but keep every invariant.