From 7f4a78a04b0493a925b2d807af6cee9562d68787 Mon Sep 17 00:00:00 2001 From: Markus Neusinger <2921697+MarkusNeusinger@users.noreply.github.com> Date: Tue, 19 May 2026 16:14:24 +0200 Subject: [PATCH] fix(prompts): tighten regen rule so base-style canvas/sizing wins over preserved old impl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Today's fan-out (#7395-#7405 for timeseries-forecast-uncertainty) showed that 3 of 10 libraries — seaborn (#7396), altair (#7398), ggplot2 (#7403) — kept their OLD 4800×2700 / 3600×3600 canvas + old fontsize values (figsize=(16,9) dpi=300, width=1600 scale_factor=3, ggsave width=16 height=9 dpi=300) even though the library prompts had been updated to 3200×1800 sizing. Root cause: the "Default regen mindset" instruction in impl-generate-claude.md already said "base style wins over previous implementation", but listed only "palette, theme colors, chrome, etc." as examples. Claude read that as exhaustive and didn't apply the override to canvas / fontsize / marker / line-size changes, because the previous review hadn't flagged the (then-valid) old values. The fix makes the rule explicit: base style wins on EVERY axis where it has an opinion — canvas size, font sizes, marker/line sizes, palette, theme tokens, chrome — and instructs the AI to re-read the library prompt's "Sizing" section + the style guide's "Visual Sizing Defaults" table on every regen, not just rely on the previous review's strengths/weaknesses list. Re-triggering seaborn / altair / ggplot2 after this lands should produce the new 3200×1800 sizing in line with the other 7 libraries. --- prompts/workflow-prompts/impl-generate-claude.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prompts/workflow-prompts/impl-generate-claude.md b/prompts/workflow-prompts/impl-generate-claude.md index 41a67eb158..9754460326 100644 --- a/prompts/workflow-prompts/impl-generate-claude.md +++ b/prompts/workflow-prompts/impl-generate-claude.md @@ -41,7 +41,7 @@ When regenerating an existing implementation, you MUST read these BEFORE writing - Preserve the bits listed under "Strengths" unchanged. - Address every bullet under "Weaknesses" and each ❌ item in the criteria checklist. -- If a base style rule (palette, theme colors, chrome, etc. from `prompts/default-style-guide.md` or `prompts/library/{LIBRARY}.md`) conflicts with the previous implementation, update the previous code to match — base style wins. +- **Base style ALWAYS wins.** If anything in `prompts/default-style-guide.md` or `prompts/library/{LIBRARY}.md` differs from the previous implementation, update the previous code to match. This explicitly includes — but is not limited to — **canvas size** (`figsize`/`dpi` for matplotlib/seaborn/plotnine/ggplot2, `width`/`height`/`scale_factor` for plotly/altair/letsplot, `width`/`height` for bokeh/highcharts/pygal), **font sizes** (title, axis labels, tick labels, legend), **marker and line sizes**, **palette** (Okabe-Ito positions), **theme tokens** (background, INK, INK_SOFT, ELEVATED_BG, GRID), and **chrome** (spines, gridlines, legend frame). The previous review may not have flagged the old values because they were valid at the time — that does NOT make them current. Always re-read the library prompt's "Sizing" section and the style guide's "Visual Sizing Defaults" table on every regen and align. - Do NOT discard working structure / data generation / layout choices that the previous review did not flag. - Your deliverable is a refined version of the previous file, not a fresh rewrite from the spec.