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.