tools.kanban_tools module
Per-channel, per-guild, and per-user Kanban boards (Redis + PNG render).
Implements the kanban_* family of LLM tools, each backed by a single JSON
board document stored in Redis under a stargazer:kanban:* key whose suffix
encodes the scope (channel/guild/user). The handlers load a board (lazily
seeding a default three-column layout when absent), mutate its columns and
cards, and write the whole document back, with _kanban_render_png()
additionally rasterizing the board to a PNG via Pillow and uploading it through
the platform adapter.
The module-level TOOLS list registers every handler; tool_loader reads
that list and exposes each entry to the LLM by name, so the handlers are
invoked through tool dispatch (with a ToolContext supplying Redis, identity,
and the outbound adapter) rather than by direct Python callers.