Skip to content

Commit 211f32e

Browse files
chore(bokeh): add metadata for lollipop-basic
1 parent c95afdc commit 211f32e

1 file changed

Lines changed: 11 additions & 213 deletions

File tree

Lines changed: 11 additions & 213 deletions
Original file line numberDiff line numberDiff line change
@@ -1,223 +1,21 @@
1+
# Per-library metadata for bokeh implementation of lollipop-basic
2+
# Auto-generated by impl-generate.yml
3+
14
library: bokeh
25
language: python
36
specification_id: lollipop-basic
47
created: '2025-12-23T15:14:01Z'
5-
updated: '2026-04-26T12:54:40Z'
6-
generated_by: claude-opus
7-
workflow_run: 24956899574
8+
updated: '2026-07-01T05:59:34Z'
9+
generated_by: claude-sonnet
10+
workflow_run: 28496532200
811
issue: 934
9-
python_version: 3.14.4
10-
library_version: 3.9.0
12+
language_version: 3.13.14
13+
library_version: 3.9.1
1114
preview_url_light: https://storage.googleapis.com/anyplot-images/plots/lollipop-basic/python/bokeh/plot-light.png
1215
preview_url_dark: https://storage.googleapis.com/anyplot-images/plots/lollipop-basic/python/bokeh/plot-dark.png
1316
preview_html_light: https://storage.googleapis.com/anyplot-images/plots/lollipop-basic/python/bokeh/plot-light.html
1417
preview_html_dark: https://storage.googleapis.com/anyplot-images/plots/lollipop-basic/python/bokeh/plot-dark.html
15-
quality_score: 85
18+
quality_score: null
1619
review:
17-
strengths:
18-
- 'Perfect spec compliance: stems + markers + sorted data + correct title format'
19-
- 'Excellent theme adaptation: all chrome tokens applied correctly, both renders
20-
pass legibility check'
21-
- Clean minimal code with proper KISS structure
22-
- White-ring detail on markers (PAGE_BG as line_color) adds visual separation
23-
- NumeralTickFormatter adds professional dollar formatting
24-
weaknesses:
25-
- 'No data storytelling: sorted data is good but no emphasis on top performer, no
26-
focal points, no value labels, no visual hierarchy to guide the viewer'
27-
- 'Title not bold: style guide specifies bold/medium-weight for titles, text_font_style=normal
28-
weakens typographic hierarchy'
29-
- 'Design sophistication stays at well-configured default level: white ring on markers
30-
is the only distinctive aesthetic choice'
31-
image_description: |-
32-
Light render (plot-light.png):
33-
Background: Warm off-white #FAF8F1 — correct, not pure white
34-
Chrome: Title "lollipop-basic · bokeh · anyplot.ai" top-left in dark INK color, readable; axis labels "Sales (USD)" and "Product Category" in dark INK, readable; y-axis tick labels in INK_SOFT ($0, $20,000, $40,000, etc.), readable; x-axis category labels rotated and readable
35-
Data: 10 lollipops in brand green #009E73 — thin stems (line_width=4) rising from y=0 baseline to large circular markers (size=42) with white PAGE_BG ring; values sorted descending Electronics ($85K) to Office ($15K)
36-
Legibility verdict: PASS — all text readable, no light-on-light failures
37-
38-
Dark render (plot-dark.png):
39-
Background: Near-black #1A1A17 — correct, not pure black
40-
Chrome: Title in light F0EFE8 text, readable; axis labels in INK color (light), readable; tick labels in INK_SOFT (B8B7B0), readable; no dark-on-dark failures detected
41-
Data: Brand green #009E73 lollipops identical to light render — stems, markers, and white ring all unchanged; only background and text colors flip
42-
Legibility verdict: PASS — all text readable against dark background, data colors identical to light render
43-
criteria_checklist:
44-
visual_quality:
45-
score: 28
46-
max: 30
47-
items:
48-
- id: VQ-01
49-
name: Text Legibility
50-
score: 7
51-
max: 8
52-
passed: true
53-
comment: Sizes explicitly set (28pt/22pt/18pt), readable in both themes; title
54-
not bold
55-
- id: VQ-02
56-
name: No Overlap
57-
score: 6
58-
max: 6
59-
passed: true
60-
comment: Rotated x-axis labels well-spaced, no collisions
61-
- id: VQ-03
62-
name: Element Visibility
63-
score: 6
64-
max: 6
65-
passed: true
66-
comment: Stems line_width=4 and markers size=42 clearly visible
67-
- id: VQ-04
68-
name: Color Accessibility
69-
score: 2
70-
max: 2
71-
passed: true
72-
comment: Single brand green series, good contrast, CVD-safe
73-
- id: VQ-05
74-
name: Layout & Canvas
75-
score: 3
76-
max: 4
77-
passed: true
78-
comment: Decent canvas utilization, minor empty space in upper plot area
79-
- id: VQ-06
80-
name: Axis Labels & Title
81-
score: 2
82-
max: 2
83-
passed: true
84-
comment: Sales (USD) and Product Category with units
85-
- id: VQ-07
86-
name: Palette Compliance
87-
score: 2
88-
max: 2
89-
passed: true
90-
comment: 'First series #009E73, light #FAF8F1, dark #1A1A17, chrome correct'
91-
design_excellence:
92-
score: 10
93-
max: 20
94-
items:
95-
- id: DE-01
96-
name: Aesthetic Sophistication
97-
score: 4
98-
max: 8
99-
passed: false
100-
comment: Well-configured default with white ring on markers; not exceptional
101-
design
102-
- id: DE-02
103-
name: Visual Refinement
104-
score: 4
105-
max: 6
106-
passed: true
107-
comment: No x-grid, subtle y-grid, no outline, minor ticks removed, no toolbar
108-
- id: DE-03
109-
name: Data Storytelling
110-
score: 2
111-
max: 6
112-
passed: false
113-
comment: Sorted data but no visual hierarchy, focal points, or emphasis
114-
spec_compliance:
115-
score: 15
116-
max: 15
117-
items:
118-
- id: SC-01
119-
name: Plot Type
120-
score: 5
121-
max: 5
122-
passed: true
123-
comment: 'Correct lollipop: segment stems + scatter markers, vertical orientation'
124-
- id: SC-02
125-
name: Required Features
126-
score: 4
127-
max: 4
128-
passed: true
129-
comment: Stems, markers, vertical, 10 categories, sorted descending
130-
- id: SC-03
131-
name: Data Mapping
132-
score: 3
133-
max: 3
134-
passed: true
135-
comment: Categories on x with x_range, values on y, all data visible
136-
- id: SC-04
137-
name: Title & Legend
138-
score: 3
139-
max: 3
140-
passed: true
141-
comment: Title lollipop-basic · bokeh · anyplot.ai correct; no legend for
142-
single series
143-
data_quality:
144-
score: 15
145-
max: 15
146-
items:
147-
- id: DQ-01
148-
name: Feature Coverage
149-
score: 6
150-
max: 6
151-
passed: true
152-
comment: 'All lollipop aspects shown: varying heights, sorted order, 10 categories'
153-
- id: DQ-02
154-
name: Realistic Context
155-
score: 5
156-
max: 5
157-
passed: true
158-
comment: Product sales by category - natural neutral business scenario
159-
- id: DQ-03
160-
name: Appropriate Scale
161-
score: 4
162-
max: 4
163-
passed: true
164-
comment: $15K-$85K realistic for product category sales, good spread
165-
code_quality:
166-
score: 10
167-
max: 10
168-
items:
169-
- id: CQ-01
170-
name: KISS Structure
171-
score: 3
172-
max: 3
173-
passed: true
174-
comment: 'Linear: imports -> tokens -> data -> figure -> styling -> save'
175-
- id: CQ-02
176-
name: Reproducibility
177-
score: 2
178-
max: 2
179-
passed: true
180-
comment: Deterministic hardcoded data
181-
- id: CQ-03
182-
name: Clean Imports
183-
score: 2
184-
max: 2
185-
passed: true
186-
comment: All 4 imports used
187-
- id: CQ-04
188-
name: Code Elegance
189-
score: 2
190-
max: 2
191-
passed: true
192-
comment: Clean Pythonic code, no fake UI
193-
- id: CQ-05
194-
name: Output & API
195-
score: 1
196-
max: 1
197-
passed: true
198-
comment: plot-{THEME}.png and plot-{THEME}.html both generated
199-
library_mastery:
200-
score: 7
201-
max: 10
202-
items:
203-
- id: LM-01
204-
name: Idiomatic Usage
205-
score: 4
206-
max: 5
207-
passed: true
208-
comment: ColumnDataSource, x_range for categorical, segment+scatter pattern
209-
- id: LM-02
210-
name: Distinctive Features
211-
score: 3
212-
max: 5
213-
passed: true
214-
comment: NumeralTickFormatter and HTML export via output_file/save
215-
verdict: REJECTED
216-
impl_tags:
217-
dependencies: []
218-
techniques:
219-
- html-export
220-
patterns:
221-
- columndatasource
222-
dataprep: []
223-
styling: []
20+
strengths: []
21+
weaknesses: []

0 commit comments

Comments
 (0)