Advent of AI 2025 - Day 3: Building Data Visualizations with Goose
Source: Dev.to
Introduction
I’ve been working through the Advent of AI challenges, and Day 3 focused on building data visualizations. I used Goose to see how well it could handle a project with specific requirements and multiple visualization needs.
Product Requirements Document (PRD)
Before writing any code, I asked Goose to create a PRD based on the challenge description at . The generated document included:
- Executive summary with the problem statement
- Stakeholder identification
- User stories aligned with the challenge tiers
- Functional requirements for each visualization type
- Technical architecture recommendations
I tweaked the PRD to replace the suggested Mermaid diagrams with Vega‑Lite/Vega specifications for consistency.
Tooling Issues
When I instructed Goose to implement FR‑001 (the tournament bracket visualization), I ran into deserialization errors. Goose was sending JSON strings instead of structured objects, causing every visualization attempt to fail.
The root cause was that I was using the Goose CLI, while the auto‑visualizer extension is only available in the GUI version of Goose (as noted in Block’s blog post about the auto‑visualizer). Switching to the Goose GUI and enabling the extension resolved the initial errors.
Even with the extension enabled, Goose still hit JSON parameter deserialization errors when using the Vega‑Lite tools. The fallback was to generate Mermaid charts, which worked but didn’t meet the PRD’s specification. For the time‑boxed challenge, I proceeded with the working solution rather than spending more time debugging the tooling.
Implementation
After the tooling hiccups were cleared, Goose progressed quickly through the requirements, producing:
- Tournament bracket visualizations showing progression from quarterfinals to championship
- Vote distribution charts using complementary views (bar charts, pie/donut charts)
- Recipe attribute comparisons via radar charts
- What‑if scenario analysis
- Synthetic tournament generation
- Responsive design for all visualization pages
Using multiple focused chart types proved effective, allowing each visualization to answer a specific question about the tournament data.
Refactoring and Polishing
Since the project didn’t use a framework, I asked Goose to add a consistent back button to every page except the index. The implementation included proper positioning, styling, hover effects, and uniform placement across all visualization pages.
I also noticed duplicate CSS across pages. Goose extracted the common styles into a shared common.css file, updated all HTML pages to link to it, and removed the duplicate inline styles. This refactoring—identifying patterns, consolidating assets, and updating references—showcases how AI coding assistants can handle tedious, detail‑oriented work efficiently.
Reflections
The challenge project’s lack of a framework meant we couldn’t implement a full navigation component or shared layout system. In a real‑world scenario, I would consider using React, Vue, or a similar library for proper component composition and routing, but that would have been overkill for this visualization‑focused challenge.
If you’re tackling Advent of AI challenges—or any data‑visualization project—Goose with the auto‑visualizer extension is worth checking out. Just ensure you’re using the GUI version and have the extension enabled.
The combination of AI‑driven planning (via PRD generation) and implementation provides a solid workflow, especially under tight deadlines like the fictional 18‑hour countdown for this challenge.
You can explore the Advent of AI challenges yourself and learn more about Goose’s auto‑visualizer in the related blog post.