Skip to content

feat(makie): implement horizon-basic - #10341

Open
github-actions[bot] wants to merge 3 commits into
mainfrom
implementation/horizon-basic/makie
Open

feat(makie): implement horizon-basic#10341
github-actions[bot] wants to merge 3 commits into
mainfrom
implementation/horizon-basic/makie

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Implementation: horizon-basic - julia/makie

Implements the julia/makie version of horizon-basic.

File: plots/horizon-basic/implementations/julia/makie.jl

Parent Issue: #1877


🤖 impl-generate workflow

@claude

claude Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

AI Review - Attempt 1/3

Image Description

Light render (plot-light.png): Warm off-white (#FAF8F1) background. A small gray caption sits at top-left ("Server CPU-load deviation from baseline · 3 intensity bands per polarity — darker = larger swing"), with the bold, dark, centered mandated title "horizon-basic · julia · makie · anyplot.ai" below it. 12 server-name row labels (web-1/2/3, api-1/2/3, db-1/2, cache-1/2, queue-1, lb-1) run down the left side, and the x-axis shows "Time (hours)" with tick labels 0/50/100/150. Each row folds a single deviation series into stacked, alpha-graded bands — blue (#4467A3) above baseline, red (#AE3030) below — with 3 increasing-alpha bands per polarity so darker = larger swing. All text is dark-on-light and clearly readable.

Dark render (plot-dark.png): Warm near-black (#1A1A17) background. Same caption and title, now light gray / off-white; row labels and tick labels are light gray and clearly legible against the dark surface — no dark-on-dark issues. The blue/red band colors and alpha levels are identical to the light render, confirming the diverging colormap endpoints are theme-independent; only chrome (background, text, row-divider color) flips.

Both renders pass the legibility check — no unreadable text in either theme.

Score: 89/100

Category Score Max
Visual Quality 29 30
Design Excellence 15 20
Spec Compliance 13 15
Data Quality 15 15
Code Quality 10 10
Library Mastery 7 10
Total 89 100

Visual Quality (29/30)

  • VQ-01: Text Legibility (7/8) - All sizes explicitly set and readable in both themes; 12 dense rows make the 12pt row/tick labels tight for mobile legibility
  • VQ-02: No Overlap (6/6)
  • VQ-03: Element Visibility (6/6)
  • VQ-04: Color Accessibility (2/2)
  • VQ-05: Layout & Canvas (4/4)
  • VQ-06: Axis Labels & Title (2/2)
  • VQ-07: Palette Compliance (2/2) - Band colors are the Imprint imprint_div diverging colormap's endpoints (blue/red), a legitimate fit for genuinely diverging deviation data; theme chrome correct in both renders

Design Excellence (15/20)

  • DE-01: Aesthetic Sophistication (6/8) - Thoughtful alpha-graded diverging color mapping, minimal typography hierarchy, clearly above defaults
  • DE-02: Visual Refinement (5/6) - Spines removed, no grid, subtle theme-adaptive row dividers, generous whitespace
  • DE-03: Data Storytelling (4/6) - Color-intensity hierarchy lets a viewer spot volatile servers at a glance, but no explicit annotation calls one out

Spec Compliance (13/15)

  • SC-01: Plot Type (5/5) - Correct horizon chart
  • SC-02: Required Features (3/4) - 3 bands, mirrored polarity coloring, and a meaningful (zero) baseline are all present, but the polarity mapping is never communicated to the viewer
  • SC-03: Data Mapping (3/3)
  • SC-04: Title & Legend (2/3) - Title format exactly correct; no legend confirms the color/polarity mapping

Data Quality (15/15)

  • DQ-01: Feature Coverage (6/6)
  • DQ-02: Realistic Context (5/5)
  • DQ-03: Appropriate Scale (4/4)

Code Quality (10/10)

  • CQ-01: KISS Structure (3/3)
  • CQ-02: Reproducibility (2/2)
  • CQ-03: Clean Imports (2/2)
  • CQ-04: Code Elegance (2/2)
  • CQ-05: Output & API (1/1)

Library Mastery (7/10)

  • LM-01: Idiomatic Usage (4/5) - Idiomatic use of band!, hlines!, Axis, and the Figure grid layout system
  • LM-02: Distinctive Features (3/5) - band! fill-between plus Figure grid layout (Label + rowsize!) for a custom two-row composition are distinctive to Makie

Score Caps Applied

  • None

Strengths

  • Excellent horizon-chart folding technique via band! with 3 alpha-graded intensity bands per polarity, cleanly compacting 12 servers' CPU-load deviation into a readable panel
  • Correct, theme-adaptive use of the Imprint diverging colormap endpoints (blue #4467A3 / red #AE3030), matching the spec's suggested mirrored polarity coloring, with data colors identical across light and dark themes
  • Clean, minimal chrome: spines removed, no grid, subtle theme-adaptive row dividers, generous whitespace, explicit font sizing throughout
  • Realistic, neutral server-monitoring dataset with per-server volatility variation, giving genuinely different visual behavior per row
  • Idiomatic use of Makie's Figure grid layout system (Label + Axis + rowsize!) for a custom two-row composition

Weaknesses

  • No legend or annotation clarifies which color represents positive vs. negative deviation — a viewer unfamiliar with horizon charts cannot decode polarity from the chart alone. Add a compact 2-swatch legend or extend the subtitle to state the color mapping explicitly.
  • The intensity bands communicate only relative magnitude ("darker = larger swing") with no indication of the underlying scale (percentage points per band) — consider a small band-scale annotation.
  • Layout order is slightly unconventional: the small gray caption renders above the bold mandated title rather than below it as a typical subtitle would.

Issues Found

  1. SC-02/SC-04 LOW: Polarity color mapping (blue = above baseline, red = below baseline) is never communicated to the viewer
    • Fix: Add a small 2-swatch legend (e.g. "▲ above baseline" / "▼ below baseline") or extend the top caption to state the mapping explicitly
  2. DE-03 LOW: No explicit callout of the most anomalous/volatile server despite the data supporting one
    • Fix: Consider a subtle annotation or emphasis (e.g. bolder row label) on the server with the largest swings to sharpen the story

AI Feedback for Next Attempt

Add a compact legend or caption text stating the color-to-polarity mapping (blue = above baseline, red = below baseline) so the chart is self-explanatory without prior horizon-chart knowledge. Consider swapping the caption/title visual order so the mandated title reads first. Everything else — the band technique, theme handling, palette use, and data — is strong; keep it.

Verdict: REJECTED

@github-actions github-actions Bot added quality:89 Quality score 89/100 ai-rejected Quality not OK, triggers update labels Aug 18, 2026
@github-actions github-actions Bot added the ai-attempt-1 First repair attempt label Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-attempt-1 First repair attempt ai-rejected Quality not OK, triggers update quality:89 Quality score 89/100

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants