From data2story-pro
Reference library for editorial-grade data visualization: chart selection by intent, Vega-Lite recipes with D3 fallback, annotation layers, axis de-clutter, and colorblind-safe encoding rules.
How this skill is triggered — by the user, by Claude, or both
Slash command
/data2story-pro:dataviz-craftThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
A shared library for choosing and building **charts that carry one idea cleanly**. This is not a pipeline stage; it is a reference the **Designer** reads to pick the right chart type for the message, the **Programmer** reads to build it as an editorial Vega-Lite spec, and the **Auditor/Critic** reads to judge whether a chart is honest and legible.
A shared library for choosing and building charts that carry one idea cleanly. This is not a pipeline stage; it is a reference the Designer reads to pick the right chart type for the message, the Programmer reads to build it as an editorial Vega-Lite spec, and the Auditor/Critic reads to judge whether a chart is honest and legible.
It is the chart-craft counterpart to frontend-design (page/visual identity). For color scales it does not redefine anything — it cross-references frontend-design/references/design_tokens.json data_color_scales. For Vega-Lite mechanics (mount/centering/width:container/scale.zero/labelExpr) it extends data2story-pro/programmer/references/component_implementations.json, it does not duplicate it.
chart_spec per section, name the message's intent (deviation / correlation / ranking / distribution / change-over-time / part-to-whole / magnitude / spatial / flow) and pick a ranked candidate from references/chart_chooser.json. Record the chart type + intent + what to highlight in designer.json. If the chosen type is tagged vega_lite_native: false, flag it for the D3 fallback.references/vega_recipes.json (editorial Vega-Lite skeleton), add reference/threshold/label layers from references/annotation_layers.json, apply the de-clutter config from references/axis_label_polish.json, and obey references/encoding_craft.json (area-not-radius, sort-by-value, no dual-axis, colorblind-safe). For a native:false type use references/d3_fallback_recipes.json.references/d3_fallback_recipes.json. D3 is an allowed CDN, not the default.references/chart_chooser.json.references/annotation_layers.json.references/axis_label_polish.json.references/encoding_craft.json, references/chart_chooser.json.--accent for the highlighted datum and mute the rest. For sequential/diverging/categorical scales, cross-reference frontend-design/references/design_tokens.json data_color_scales — the same value means the same color across map, bars and callouts. Colorblind-safe rules live in references/encoding_craft.json.references/chart_chooser.json — the decision core: 9 message intents → ranked chart candidates, each tagged vega_lite_native; the purpose-first frame (comparison/composition/distribution/relationship/trend → narrow intent) and the Cleveland–McGill channel-accuracy hierarchy.references/vega_recipes.json — per-type editorial Vega-Lite recipe skeletons for every native type (bar/grouped/stacked, line/area/layered, slope, dot/lollipop, facet small-multiples, heatmap, strip/beeswarm, connected-scatter, scatter/bubble, choropleth): mark, key encoding notes, highlight, editorial defaults.references/annotation_layers.json — Vega-Lite annotation techniques: rule marks for threshold/reference lines and range bands, text + argmax for line-end labels instead of a legend, in-chart callout boxes, conditional highlight of the key datum.references/axis_label_polish.json — the BBC bbplot de-clutter ruleset as Vega-Lite config: gridline/tick/axis-line/title removal, legend on top, tick format/labelExpr ($/%/abbreviated, Vega-expr not JS), the zero-baseline rule, log-scale domain.references/encoding_craft.json — beyond color: bubble area-not-radius, sort-by-value, the dual-axis warning, colorblind-safe palettes and redundant encoding. Cross-refs design_tokens.json data_color_scales for the actual scales.references/d3_fallback_recipes.json — ONLY the non-native types (sankey, treemap, chord, sunburst, force-network): when to reach for D3, a recipe outline (D3 module + layout generator), and the SVG-mark performance ceiling.../frontend-design/references/design_tokens.json — (cross-reference, not owned here) data_color_scales for sequential/diverging/categorical color.A chart is well-crafted when its type matches the message intent, the baseline is honest, the one datum that matters is annotated, the frame carries no decoration, the strongest available channel encodes the key variable, and the colors mean the same thing everywhere and survive color blindness.
_license_note: This file encodes uncopyrightable methods and re-authored principles. Taxonomy and intent → chart mapping derive from the Financial Times Visual Vocabulary (method, re-authored — not FT prose). Channel-accuracy ordering from Cleveland & McGill (1984). De-clutter rules adapted from the BBC bbplot R package (MIT). Purpose-first framing and several encoding facts re-authored from rohitg00/data-visualization and chrisvoncsefalvay data-viz references. Vega-Lite mechanics extend the project's own component_implementations.json.
npx claudepluginhub qinghonglin/data2story-skill --plugin data2storyCreates and critiques data visualizations using Edward Tufte's principles: high data-ink ratio, direct labels, range frames, and small multiples. Covers Recharts, Plotly, matplotlib, Chart.js, ECharts, D3, SVG, and HTML.
Generates OpenChart VizSpec JSON for charts, tables, graphs, and sankeys from data. Guides chart selection, encoding rules, and editorial design like colors, typography, and annotations.
Guides data visualization workflows: discovers intent, selects chart types (bar, line, scatter), chooses libraries (D3.js, Chart.js, Recharts, Plotly) for React/Vue/etc.