chart-vocabulary
Skill0 starsChanged 9 days agoMITView on GitHub
Catalog of chart types organized by seven communication goals (comparison, change over time, proportion, distribution, relationship, flow, deviation), with a selection algorithm, an evaluation loop for AI-suggested charts, and density limits for dashboards. Use when picking a chart type, sanity-checking a suggested one, or reviewing whether a chart matches its story intent.
In this repository66 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skills/bootstrap-project/resources/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- skills/bootstrap-project/resources/CLAUDE.mdCLAUDE.md
- act-tenetsSkill
- adversarial-reviewSkill
- annotate-screenshotSkill
- anti-hallucinationSkill
- ascii-chartSkill
- assess-brainSkill
- big-ideaSkill
- bootstrap-coreSkill
- bootstrap-projectSkill
- browser-toolsSkill
- chart-big-ideaSkill
- chart-interpretationSkill
- code-reviewSkill
- communication-craftSkill
- compile-brainSkill
- convertSkill
- corpus-qa-sweepSkill
- critical-thinkingSkill
- deep-reviewSkill
- doc-hygieneSkill
- docs-shellSkill
- docx-to-mdSkill
- ethical-reasoningSkill
- evaluate-before-adoptingSkill
- figure-generatorSkill
- flint-chartSkill
- flint-interactionsSkill
- flint-themeSkill
- git-workflowSkill
- html-to-mdSkill
- humanizerSkill
- install-visual-companionsSkill
- lint-clean-markdownSkill
- markdown-mermaidSkill
- markdown-sanitization-chainSkill
- md-to-emlSkill
- md-to-htmlSkill
- md-to-txtSkill
- md-to-wordSkill
- meditationSkill
- mutation-testingSkill
- planSkill
- platform-awarenessSkill
- print-svg-style-guideSkill
- proactive-awarenessSkill
- problem-framing-auditSkill
- project-capability-authoringSkill
- project-statusSkill
- render-chartSkill
- render-verifySkill
- rich-emailSkill
- risk-analysisSkill
- security-and-hardeningSkill
- setup-dependenciesSkill
- setup-enterprise-stackSkill
- spikeSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 2 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 146
When an AI tool generates a chart, evaluate before accepting.
- Distinctive: line 194
Use these galleries to browse real examples when Module 1's tables aren't enough.
- Distinctive: line 213
Run this algorithm when choosing charts for a dashboard, report, or book figure:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
chart-vocabulary
Pick the right chart for the story you want to tell, evaluate whether an AI-suggested chart is correct, and know when to override.
This skill is the selection and evaluation reference. It sits upstream of the plugin's other chart skills:
| Step in the flow | Skill |
| Frame the Big Idea before authoring | chart-big-idea |
| Pick the chart family + type | this skill |
| Author the Flint spec + render | flint-chart |
| Structural / hand-authored SVG | figure-generator + print-svg-style-guide |
| AI-generated illustration / hero image | Separately configured host image tool; ONE bundles no image-generation provider |
| Terminal, log, PR comment, or context window | ascii-chart |
| Verify after render | render-verify |
| Deliver / browse the gallery | docs-shell |
flint-chart §0.2 (Question → family → chart) is a compact router pointing into this catalog; when a decision needs more than the router's ~7 rows, read this file. When picking a chart to hand-author rather than render via Flint, this catalog is still the reference — the delivery skill differs, the taxonomy does not.
When to Use
- Choosing chart types for a dashboard, report, book figure, or data story
- Evaluating an AI-generated visualization (Copilot / ChatGPT / any tool that auto-selects chart types)
- Reviewing another agent's or teammate's chart choices for story-intent alignment
- Sanity-checking a dashboard's density (5-visual rule)
- Teaching a heir the chart taxonomy without them reading FT's catalog end to end
Module 1: Chart Catalog by Communication Goal
Seven communication goals. Pick the goal first, then the chart. Never pick the chart first.
Comparison
Show differences between items or groups.
| Chart | Best when | Avoid when |
| Horizontal bar | Ranking items; long category labels | More than 15 items (paginate or filter) |
| Grouped bar | Comparing 2-3 series across categories | More than 3 series (use small multiples) |
| Dot plot | Precise value comparison; tight ranges | Audience expects bars |
| Slope chart | Before/after comparison of ranked items | More than 10 items (too many crossing lines) |
| Radar | Multi-dimensional profile comparison | More than 7 axes; general audiences |
| Bullet chart | Actual vs. target with qualitative ranges | No clear target or benchmark |
Change Over Time
Show trends, seasonality, or evolution.
| Chart | Best when | Avoid when |
| Line | Continuous data; up to 5 series | Categorical time (use bar) |
| Area | Emphasizing volume or magnitude of change | Multiple overlapping series (use stacked) |
| Stacked area | Part-to-whole composition changing over time | Need to compare individual series precisely |
| Sparkline | Inline trend context (KPI cards, tables) | Trend shape matters less than precise values |
| Step line | Discrete changes (pricing, policy, thresholds) | Continuous gradual change |
| Small multiples | Comparing trends across 6-20 categories | Fewer than 4 categories (use single line chart) |
Proportion
Show part-to-whole relationships.
| Chart | Best when | Avoid when |
| Donut | 2-5 segments; one hero segment to highlight | More than 6 segments; comparing across groups |
| Stacked bar | Comparing composition across categories | More than 5 segments per bar |
| Waffle | Communicating percentages to general audiences | Precision matters (use table) |
| Treemap | Hierarchical part-to-whole with many items | Need to show change over time |
| Sunburst | Multi-level hierarchy exploration | Print or static context (needs interaction) |
| Waterfall | Showing additive/subtractive contributions | Non-sequential contributions |
Distribution
Show spread, shape, or outliers.
| Chart | Best when | Avoid when |
| Histogram | Single variable distribution shape | Comparing distributions (use violin or ridgeline) |
| Box plot | Comparing distributions across groups | General audiences (unfamiliar format) |
| Violin | Distribution shape comparison across groups | Fewer than 3 groups (use histogram) |
| Ridgeline | Many distributions stacked for pattern scanning | Precision on individual values |
| Scatter | Two-variable distribution and outlier detection | Categorical data |
| Beeswarm | Small dataset; every point matters | More than 500 points (use density) |
Relationship
Show correlation, causation, or connection.
| Chart | Best when | Avoid when |
| Scatter | Two continuous variables; outlier identification | Categorical variables |
| Bubble | Three variables (x, y, size) | More than 50 bubbles (overplotting) |
| Heatmap | Dense matrix relationships (correlation, time × category) | Fewer than 4×4 cells |
| Parallel coordinates | Multi-dimensional comparison (5+ variables) | General audiences |
| Network graph | Entity relationships, social connections | Hierarchical data (use tree) |
| Chord diagram | Bidirectional flows between categories | More than 10 categories |
Flow and Process
Show movement, conversion, or paths.
| Chart | Best when | Avoid when |
| Sankey | Multi-stage flow with branching paths | Fewer than 3 stages (use stacked bar) |
| Funnel | Sequential drop-off (conversion, pipeline) | No sequential order |
| Gantt | Timeline with parallel activities | More than 30 tasks (filter or paginate) |
| Swimlane | Process flow with role/team assignments | Simple linear process |
Deviation
Show variance from a reference point.
| Chart | Best when | Avoid when |
| Diverging bar | Above/below target or median | No clear reference point |
| Lollipop | Deviation from baseline; cleaner than bars | Audience expects standard bars |
| Line + reference | Trend deviation from target over time | Multiple baselines |
| Gauge | Single KPI vs. target (dashboards, KPI cards) | More than 3 gauges on a page |
Module 2: The CSAR Evaluation Loop
Module 1.5: Storytelling Technique Router
Choose a technique because it solves a reading problem, not because it makes the chart look authored.
| Reading problem | Technique | Constraint |
| Reader cannot find the claim | Focal contrast on one story-carrying mark or series | Use one pre-attentive emphasis; keep context visible. |
| Legend lookup interrupts reading | Direct labels at line ends or beside marks | Check collisions and preserve a key when labels cannot fit. |
| Benchmark or threshold matters | Reference line, band, or structure | Label the reference and distinguish target from observed data. |
| Too many series obscure shape | Small multiples | Keep comparable scales unless independence is the point. |
| Order carries the argument | Sorting by value, time, or semantic order | Do not reorder cyclic or causal sequences arbitrarily. |
| Groups need comparison and context | Grouping or faceting | Prefer grouping for direct values; facets for shape and repeated structure. |
| Color may fail or print poorly | Redundant encoding through label, shape, position, stroke, or texture | Color is never the only carrier of critical meaning. |
| A specific event changes the story | Annotation with a concise evidence-linked note | Annotate the event, not every point. |
Theme choice follows technique and audience. It cannot repair a wrong chart family or unsupported claim.
When an AI tool generates a chart, evaluate before accepting. Compose with render-verify's Prose-coupling check for a two-layer safety net: CSAR asks did it pick the right chart family; render-verify asks did it render the right message.
| Step | Question | Action |
| Clarify | "What question am I answering?" | Write the question as a sentence before looking at the chart |
| Summarize | "The AI chose a [chart type]. Does it answer the question?" | Name the chart type and check it against Module 1 |
| Act | Accept, modify, or override | Accept if story-intent matches. Override if wrong goal group. Modify if right type but wrong emphasis |
| Reflect | "Why did I accept / override? What principle guided me?" | Document the rationale; builds judgment over time |
Override Decision Table
| AI chose | But your goal is | Override to | Rationale |
| Pie (8 slices) | Compare items | Horizontal bar, sorted | Pie with 8+ slices is unreadable |
| Clustered bar | Show trend | Line chart | Time series needs continuity |
| 3D column | Anything | 2D bar or line | 3D adds no information, distorts perception |
| Stacked bar | Compare individual series | Grouped bar or small multiples | Stacking hides individual values |
| Donut | Show precise values | Table with conditional formatting | Donut communicates rough proportion only |
| Line (20 series) | Compare trends | Small multiples or highlight 3 key series | Too many lines become spaghetti |
| Map | Compare values | Bar chart sorted by value | Maps encode position; bars encode length (more precise) |
Module 3: The 5-Visual Rule
Executive dashboards that work follow this constraint:
No more than 5 visuals per page. Each visual answers a different question. If you need more, you need a second page, not a denser layout.
Count the visuals, do not eyeball them, when the page is machine-readable. For an HTML or docs-shell dashboard, count chart containers per page from the DOM or the page manifest and assert the count is ≤5. In the browser console: document.querySelectorAll('canvas, svg, .chart, .chart-container, [data-chart]').length (narrow the selector to the page's chart-container convention so decorative SVGs do not inflate the count). A screenshot scanned by eye is not a count.
| Slot | Role | Typical chart |
| 1-3 | KPI cards | Card, gauge, or sparkline |
| 4 | Hero chart | The main visual that carries the story |
| 5 | Supporting chart | A second angle on the same story |
A sixth visual is a table for drill-down, placed below the fold or on demand.
Composition by Audience
| Audience | Visuals | Time budget | Design priority |
| Executive | 3-5 | 30 seconds | KPIs first, hero chart, one action item |
| Manager | 5-8 | 2 minutes | Filters, comparison charts, trend lines |
| Analyst | 8-15 | Unlimited | Detail tables, drill-through, cross-filters |
| General | 3-4 | 1 minute | Annotated hero chart, simple narrative |
Module 4: Living Gallery References
Use these galleries to browse real examples when Module 1's tables aren't enough. The galleries are the living source of truth; this skill is the decision framework.
| Gallery | URL | Organized by | Best for |
| FT Visual Vocabulary | ft-interactive.github.io/visual-vocabulary | Communication goal | Choosing chart type by what you want to say |
| From Data to Viz | data-to-viz.com | Data type and relationship | Choosing chart type by what your data looks like |
| Data Viz Catalog | datavizcatalogue.com | Chart function | Understanding individual chart strengths/weaknesses |
| Vega-Lite Examples | vega.github.io/vega-lite/examples | Chart type | Declarative spec examples for programmatic generation |
| Storytelling with Data | community.storytellingwithdata.com/exercises | Story challenge | Real-world "makeover" exercises with before / after |
When to consult a gallery
- Module 1 suggests 2+ chart types and you cannot decide
- The story intent doesn't fit any standard goal group
- You need to see a real example of a chart type before committing
- Stakeholder needs visual evidence that the chart type works for their data
Module 5: Chart Selection Decision Tree
Run this algorithm when choosing charts for a dashboard, report, or book figure:
1. Write the Big Idea sentence (audience + action + evidence)
→ delegate to chart-big-idea; if you can't write it, the analysis isn't done
2. List the 3-5 questions the artifact must answer
Each question becomes one visual
3. For each question:
a. Identify the communication goal (Module 1 header)
b. Check the chart catalog table
c. Filter by data shape and audience
d. If AI generated a chart, run CSAR (Module 2)
e. If still unsure, consult a gallery (Module 4)
4. Apply the 5-Visual Rule (Module 3)
Cut the weakest visual if over budget
5. Arrange by narrative flow:
KPIs → Hero chart → Supporting → Detail
6. Author + render:
→ statistical charts: flint-chart (Vega-Lite / ECharts / Chart.js via Flint MCP)
→ structural / hand-authored SVG: figure-generator + print-svg-style-guide
→ AI-generated illustration: separately configured host image tool (not bundled by ONE)
→ no renderer available (terminal, log, PR, context window): ascii-chart
7. Verify: render-verify (Prose-coupling + failure catalog)Attribution
The chart catalog (Module 1), CSAR loop (Module 2), 5-visual rule (Module 3), gallery references (Module 4), and selection tree (Module 5) are adapted from an earlier visual-vocabulary curriculum, absorbed into this plugin in 2026. Its ASCII delivery lives here as ascii-chart. Its SVG composition patterns (panel primitive, pie sizing, dark-slate palette) are covered by print-svg-style-guide and figure-generator, with print-legibility math and semantic palette colors, so they are not duplicated here.
FT Visual Vocabulary, Data-to-Viz, Data Viz Catalog, Vega-Lite examples, and Storytelling with Data are cited under their published URLs; this skill is a decision framework built on top of those galleries, not a replacement for them.
Would Revise If
Revisit if:
- The 5-visual rule is contradicted by a working dashboard that ships more visuals without density complaints (rule too strict)
- One of the five galleries in Module 4 retires or moves; the URL check fails
- A heir installs
chart-vocabularyandvisual-vocabularyfrom the Mall on the same brain and reports confusion about which is canonical (the absorption story isn't landing)
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

