Chart Clarity logo

Chart Clarity

Community
Mathews-Tom
chart-clarity

Create, review, and restyle data visualizations using Edward Tufte principles: high data-ink ratio, direct labels, range-frame axes, small multiples, accessible color, responsive charts, and honest comparisons. Triggers on: "create a chart", "style this chart", "review this graph", "Tufte chart", "data visualization", "Recharts", "Plotly", "matplotlib", "Chart.js", "ECharts", "D3". Use when generating or critiquing charts, dashboards, sparklines, and data tables.

Overview

PublisherMathews-Tom
Repositoryarmory
Skill namechart-clarity
Stars
318
Forks
47
Bundled files
31
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 31 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by Mathews-Tom on GitHub. Read the source before you install it.

Installation

Install the Chart Clarity AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Mathews-Tom/armory.git /tmp/armory
mkdir -p .claude/skills
cp -r /tmp/armory/skills/chart-clarity .claude/skills/chart-clarity
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Chart Clarity in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Chart Clarity on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Chart Clarity is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Chart Clarity

Create and critique charts that make quantitative comparisons obvious without decorative chartjunk. This skill adapts Caylent's MIT-licensed tufte-data-viz skill into armory under the broader chart-clarity name. It applies Edward Tufte's core data visualization principles and adds screen-first requirements for accessibility, responsiveness, dark mode, progressive disclosure, and human-readable numbers.

Use this skill whenever the user asks for a chart, graph, plot, dashboard visualization, sparkline, slopegraph, data table, or visualization review. It covers Recharts, ECharts, Chart.js, matplotlib, Plotly, seaborn, D3.js, SVG, and HTML.

When to Use

User needUse chart-clarityUse instead
Generate chart code in Recharts, Plotly, matplotlib, Chart.js, ECharts, D3, SVG, or HTMLYes
Review an existing chart for misleading design, clutter, accessibility, or readabilityYes
Restyle dashboard charts while keeping the dashboard structure unchangedYesux-expert for broader dashboard UX
Build a static infographic or rich HTML artifact around chartsNostatic-web-artifacts-builder
Design a slide deck or presentation using chartsNohtml-presentation, marp-slides, or pptx
Design logos, posters, icons, or non-data visualsNoconcept-to-image or canvas-design

Trigger Families

  • Chart creation: "create a chart", "plot this data", "make a graph", "build a sparkline", "generate a slopegraph".
  • Chart review: "review this visualization", "what is wrong with this graph", "make this chart clearer", "remove chartjunk".
  • Tufte-specific: "Tufte chart", "high data-ink ratio", "range-frame axes", "small multiples", "direct labels".
  • Library-specific: "Recharts", "ECharts", "Chart.js", "matplotlib", "seaborn", "Plotly", "D3", "SVG chart".

Workflow

Follow this order for every chart task.

  1. Identify the message. Determine the finding the chart needs to make visible. A useful title states the finding: "Revenue Beat Target by 24% in Q2", not "Revenue by Month".
  2. Identify comparison context. Add a baseline, prior period, target, average, peer group, or distribution. A number without comparison context is weak evidence.
  3. Choose the chart type. Use the data shape to select line, horizontal bar, scatter, small multiple, sparkline, slopegraph, heatmap, or table. Refuse pie charts by default; use sorted horizontal bars unless the user explicitly asks for a pie chart.
  4. Apply the universal rules. Remove decorative ink, direct-label series, use gray-first color, annotate notable features, format numbers for humans, and ensure the chart earns its space.
  5. Read one library reference. For implementation code, read exactly one matching library file from references/rules/ unless the task compares multiple libraries.
  6. Validate before presenting. Run the checklist at the end of this file against the final chart or review output.

Universal Rules

  1. Remove top and right borders, spines, frames, and plot boxes.
  2. Use direct labels instead of legends. Remove legend components unless the user explicitly requires one.
  3. Remove gridlines by default. If precision reading requires gridlines, use horizontal-only rules at 8-12% opacity.
  4. Use range-frame axes where the axis spans the data range rather than arbitrary empty space.
  5. Use two-dimensional marks only. No 3D, shadows, bevels, gradients, or perspective effects.
  6. Avoid pie charts. If explicitly requested, use no more than four slices, direct percentage labels, and 2D rendering only.
  7. Aim for an aspect ratio near 1.5:1 for ordinary charts. Sparklines and small multiples are exceptions.
  8. Start with gray data marks and one accent color for the key point, line, or series. Use no more than four distinct colors.
  9. Use off-white light backgrounds (#fffff8) and intentional dark backgrounds (#151515). Avoid pure white and pure black.
  10. Use serif fonts for titles, labels, annotations, and data values. Small axis ticks can use system sans-serif.
  11. Do not use dual y-axes. Use small multiples with shared x-axis or shared scales.
  12. Annotate peaks, troughs, inflection points, event boundaries, and outliers directly on the chart.
  13. Show comparison context with a reference line, target, prior-period series, shaded band, or peer group.
  14. Keep tooltips plain: label, value, unit, and minimal context. No shadows, arrows, decorative panels, or color blocks.
  15. Use progressive disclosure. Keep the overview clean and reveal details through hover, focus, tap, or click.
  16. Make charts accessible: 3:1 contrast for chart elements, 4.5:1 for text, text alternatives, keyboard access, and no color-only encoding.
  17. Make charts responsive by changing layout, tick density, or chart type across viewport widths. Do not merely shrink dense desktop charts.
  18. Animate data transformations only. Respect prefers-reduced-motion.
  19. Treat dark mode as a separate palette. Never invert colors mechanically.
  20. Make titles assert findings, not describe axes.
  21. Format numbers for humans: $1.2M, 12,450, consistent precision, units stated once.
  22. Do not chart one or two numbers. Use a sentence or table when that communicates more clearly.

Library Quick Reference

Read one matching reference file for concrete implementation details:

LibraryReferenceEssential defaults
Rechartsreferences/rules/recharts.mdHide grid, remove <Legend />, direct labels, no top/right axes, minimal tooltip
EChartsreferences/rules/echarts.mdsplitLine.show: false, legend.show: false, grid.show: false, endLabel
Chart.jsreferences/rules/chartjs.mdgrid.display: false, plugins.legend.display: false, direct labels plugin
matplotlib/seabornreferences/rules/matplotlib.mdHide top/right spines, set spine bounds, serif fonts, off-white figure background
Plotlyreferences/rules/plotly.mdshowgrid=False, showlegend=False, plot_bgcolor='#fffff8', zeroline=False
D3/SVG/HTMLreferences/rules/svg-html.mdMinimal domains, no plot backgrounds, direct SVG text labels, accessible roles

Cross-cutting references:

TopicReference
Anti-pattern detection and one-line fixesreferences/rules/anti-patterns.md
Accessibility, responsiveness, animation, dark modereferences/rules/interactive-and-accessible.md
Full palettes, font stacks, numeric typographyreferences/rules/typography-and-color.md
Small multiples, sparklines, slopegraphsreferences/rules/small-multiples-sparklines.md
Working examplesreferences/examples/
Interactive before/after demo, CDN-backed and reference-onlyreferences/interactive-demo.html
Upstream license and provenancereferences/upstream/

Chart Type Guidance

TypeDefault treatment
Line1.5-2px stroke, no dots unless fewer than seven points, direct label at endpoint, annotate notable events
BarPrefer horizontal bars for categories, sort descending, label values directly, use gray with one accent
ScatterSmall gray dots, highlight key cluster or outlier, add regression line only when analytically justified
Time seriesLabel events on the chart, compare against target or prior period, avoid dual axes
Small multiplesSame scale across panels, shared labels, no panel borders, direct panel titles
SparklineWord-sized, no axes or labels, min/max dots, endpoint value when useful
TableWhitespace and thin rules, right-aligned numbers, no zebra striping, highlight meaningful outlier only
SlopegraphBefore/after endpoints labeled with names and values, gray slopes plus one highlight
HeatmapSequential or diverging palette, cell values where readable, companion table for accessibility

Review Checklist

Before presenting code or critique, verify:

  • No top or right border/spine/frame.
  • No legend where direct labels work.
  • Gridlines are absent or horizontal-only at opacity no greater than 0.12.
  • Aspect ratio fits the data and target viewport.
  • Background uses #fffff8 or an intentional dark palette, not pure white or black.
  • Data labels and titles use a serif font stack.
  • Default series color is gray; accent color is selective.
  • No 3D, decorative gradients, shadows, gauges, or chartjunk.
  • No dual y-axis.
  • The chart includes comparison context.
  • The most important peak, trough, outlier, event, or inflection point is annotated.
  • Tooltips are plain and accessible.
  • Hover details have tap or focus alternatives.
  • Text alternatives exist through aria-label, nearby summary text, or data table.
  • Colors meet contrast requirements and are not the sole encoding.
  • Animation is purposeful and respects reduced motion.
  • The chart remains usable at narrow and wide viewports.
  • The title states a finding.
  • Numbers use readable units and consistent precision.
  • The chart is warranted; a sentence or table would not communicate better.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Chart Clarity AI skill do?

Create, review, and restyle data visualizations using Edward Tufte principles: high data-ink ratio, direct labels, range-frame axes, small multiples, accessible color, responsive charts, and honest comparisons. Triggers on: "create a chart", "style this chart", "review this graph", "Tufte chart", "data visualization", "Recharts", "Plotly", "matplotlib", "Chart.js", "ECharts", "D3". Use when generating or critiquing charts, dashboards, sparklines, and data tables.

Why use Chart Clarity on TypingMind?

Because you install it once and use it with any model. Chart Clarity is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Chart Clarity in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Mathews-Tom/armory/tree/main/skills/chart-clarity. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Chart Clarity?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Chart Clarity?

As many as you like. As long as a model supports skills, you can use Chart Clarity with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Chart Clarity AI skill free?

Yes. It is published on GitHub by Mathews-Tom under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇