feat(seaborn): implement waffle-basic - #9948
Conversation
Regen from quality 85. Addressed: - Canvas contract violation: previous figsize=(16,16) with no explicit creation dpi + bbox_inches="tight" (forbidden by the seaborn library prompt) drifted off the 2400x2400 square target. Switched to figsize=(6,6), dpi=400, manual axes placement (fig.add_axes) instead of tight_layout/bbox_inches="tight" so the canvas lands exactly on 2400x2400. - Change request: household-budget domain matched plotnine's example almost exactly (Housing/Food/Transport). Replaced with a customer satisfaction survey (Very Satisfied ... Very Dissatisfied), matching the spec's "survey results and polling data" application. - DE-01/DE-02 (aesthetic sophistication / visual refinement): removed all four spines via sns.despine for a clean floating grid, added a caption spelling out the waffle-chart metaphor. - LM-02 (distinctive seaborn features): themed via sns.set_theme(rc=...) per the library prompt's theme-adaptive chrome mapping instead of manual axes styling. - Corrected stale "okabe_ito" variable naming — the palette was already Imprint, not Okabe-Ito; renamed to IMPRINT_PALETTE. Kept: 10x10 grid construction, Imprint palette with brand green first, theme-adaptive chrome, legend with category + percentage labels.
AI Review - Attempt 1/3Image Description
Score: 89/100
Visual Quality (29/30)
Design Excellence (15/20)
Spec Compliance (13/15)
Data Quality (15/15)
Code Quality (10/10)
Library Mastery (7/10)
Score Caps Applied
Strengths
Weaknesses
Issues Found
AI Feedback for Next Attempt
Verdict: REJECTED |
Attempt 1/4 - fixes based on AI review
🔧 Repair Attempt 1/4Applied fixes based on AI review feedback. Status: Repair completed, re-triggering review... |
🔧 AI Review Produced No Score — Auto-RetryingThe Claude Code Action ran but didn't write |
❌ AI Review Failed (auto-retry exhausted)The AI review action completed but did not produce valid output files. Auto-retry already tried once. What happened:
Manual rerun: |
❌ AI Review Failed (auto-retry exhausted)The AI review action completed but did not produce valid output files. Auto-retry already tried once. What happened:
Manual rerun: |
The comment fallback added in the previous commit selected the last claude[bot] comment, which fixed the ordering bug (the workflow's own "auto-retrying" notice is posted after the review and shadowed the score) but introduced a staleness bug: a PR that has already been reviewed carries older review comments with a score the current implementation never earned. PR #9948 is exactly that shape — its `quality:89` comes from its first review, and a later review that produced no output at all would now have silently inherited 89. A new `Record review start time` step stamps the boundary immediately before the Claude action runs, and the fallback only accepts claude[bot] comments created at or after it. RFC 3339 UTC timestamps compare correctly as strings here: GitHub and `date -u` emit the same fixed-width `...Z` format. One second of slack absorbs clock skew. Test harness extended from 12 to 17 cases, covering both the fresh comment followed by the notice, and the #9948 stale-comment shape. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Closing as superseded.
This PR stalled on the score- 🤖 Closed during PR-queue cleanup. |
|
Correction to the comment above: it was templated and its "at or above" claim does not hold for this PR specifically.
It is closed deliberately anyway, for a different reason: its failure mode is the 2026-07-26 platform brownout (three consecutive re-reviews returned no output at all, no 🤖 PR-queue cleanup. |
Implementation:
waffle-basic- python/seabornImplements the python/seaborn version of
waffle-basic.File:
plots/waffle-basic/implementations/python/seaborn.pyParent Issue: #998
🤖 impl-generate workflow