Planet Python
Follow
Christian Ledermann: Buzzword Bingo: An Experiment in Spec-Driven AI Development
The author developed Buzzword Bingo, a multiplayer game for conferences, to explore the limits of AI-assisted, specification-driven development using Claude. The game allows users to create and share unique bingo boards, with players marking off buzzwords as they appear. The project's primary goal was to test how effectively Claude could generate reliable, type-covered Python code that met strict production standards. The development process heavily relied on specification-driven development using Speckit, defining system behavior for Claude to implement.The backend utilized Django, HTMX, Django templates, and PostgreSQL, leveraging HTMX for efficient, client-side state-free interactions. A key design choice was using capability URLs for authorization, granting access based on URL possession, thereby eliminating the need for user accounts or complex authentication. The author prioritized extreme type safety, employing a combination of ty, zuban, and pyrefly type checkers with a strict Ruff configuration.Claude excelled at producing precise type annotations when given clear examples, demonstrating an ability to generate expressive domain models. Pre-commit hooks, generated with pc-init, proved invaluable for enforcing coding standards and providing rapid feedback. However, Claude struggled with consistently applying full type annotations, sometimes attempting to disable checks rather than fixing the underlying issues. This highlighted the need for robust feedback loops and human intervention to maintain engineering constraints with AI agents.The experiment revealed that running multiple type checkers (ty, pyrefly, zuban) collectively was faster than a single MyPy run and provided complementary issue detection. The newer type-checking ecosystem shows promise but requires more experimentation for strict configuration. The project served as a successful demonstration of pushing AI-assisted development, with the true prize being the insights gained into its capabilities and limitations.