Agent skill

Tufte Report

by glebis in glebis/claude-skills

Create Tufte-inspired data reports and infographic dashboards as standalone HTML files.

MITAuto-check passedMedia & Creative

Install Tufte Report

skills CLI
$ npx skills add glebis/claude-skills --skill tufte-report -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install glebis/claude-skills tufte-report --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/glebis/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/tufte-report .claude/skills/tufte-report && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
tufte-report
GitHub stars
391
Token cost
~2.4k tokens
SKILL.md length
1,068 words
Files
9 (incl. scripts, references)
Skills in repo
92
Repo updated
First seen
Licence
MIT

At a glance

Create Tufte-inspired data reports and infographic dashboards as standalone HTML files.

  • Works in 5 steps: What data sources do you have? (CSV,… → What is the primary question this report… → How many sections do you need? (cap at 8… → …
  • The user wants to create a data report
  • SKILL.md covers Design Philosophy, Onboarding — Ask Before Building, Scope Protection and Architecture, plus 8 more sections
  • Runs Python scripts from its folder; calls python3

What it does

Tufte Report is an agent skill from glebis/claude-skills. Create Tufte-inspired data reports and infographic dashboards as standalone HTML files. Uses EB Garamond for text, Monaspace Argon for numbers, Chart.js for interactive charts, and inline SVG sparklines. Produces publication-quality reports with 2-column narrative+data layouts, status dashboards, scroll animations, and responsive mobile support. Use this skill whenever the user wants to create a data report, activity dashboard, infographic, personal analytics page, health tracker visualization, or any document…

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including scripts and reference files (for example `.claude-plugin/plugin.json`, `references/blocks.md` and `references/charts.md`).

It sits in Media & Creative, covering Infographics, Data visualization and HTML artifacts. It works with Chart.js. The repository describes itself as: Collection of Claude Code skills for enhanced AI workflows. The licence is MIT.

When your agent uses it

  • The user wants to create a data report
  • Activity dashboard
  • Personal analytics page
  • Health tracker visualization

Example prompts

  • “make a report like Tufte”
  • “create an infographic”
  • “build a dashboard”
  • “/tufte-report”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. What data sources do you have? (CSV, JSON, SQLite, API endpoint, or raw numbers)
  2. What is the primary question this report should answer? (one sentence — this becomes the title and drives all design decisions)
  3. How many sections do you need? (cap at 8 — push back if more are requested; each section should answer one sub-question)
  4. What's the output format? (standalone HTML file, or embedded component)
  5. Time budget? Provide an estimate

What it can do on your machine

Read from SKILL.md and the folder at commit 3b88261. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Tufte Report loads about 2.4k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 189 tokens; SKILL.md has 1,068 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~189
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~11k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from glebis/claude-skills at commit 3b88261, republished under its MIT licence (© glebis). 1,068 words, ~2,443 tokens.

Download SKILL.mdSave it as .claude/skills/tufte-report/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
tufte-report
description
Create Tufte-inspired data reports and infographic dashboards as standalone HTML files. Uses EB Garamond for text, Monaspace Argon for numbers, Chart.js for interactive charts, and inline SVG sparklines. Produces publication-quality reports with 2-column narrative+data layouts, status dashboards, scroll animations, and responsive mobile support. Use this skill whenever the user wants to create a data report, activity dashboard, infographic, personal analytics page, health tracker visualization, or any document that combines narrative text with interactive charts and tables. Also triggers for "make a report like Tufte", "create an infographic", "build a dashboard", "visualize my data", or requests for beautiful data-driven documents.

Tufte Report — Data-Driven Infographic Skill

Create standalone HTML reports that combine editorial narrative with interactive data visualization in Edward Tufte's style: high information density, minimal chart junk, typography-first design.

Design Philosophy

Tufte's core principles drive every decision:

  • Data-ink ratio: every pixel of ink should represent data, not decoration
  • Small multiples: repeat a design to show comparison, not animation
  • Sparklines: word-sized graphics that live inside prose
  • Layering: overview first, then detail on demand
  • Integration: text and graphics share the same visual space (sidenotes, not footnotes)

The report should feel like a well-edited magazine feature — you read it top to bottom, narrative carries you through the data, and every chart earns its space by answering a specific question.

Onboarding — Ask Before Building

Before writing ANY code, ask these questions. Do not proceed until all are answered:

  1. What data sources do you have? (CSV, JSON, SQLite, API endpoint, or raw numbers)
  2. What is the primary question this report should answer? (one sentence — this becomes the title and drives all design decisions)
  3. How many sections do you need? (cap at 8 — push back if more are requested; each section should answer one sub-question)
  4. What's the output format? (standalone HTML file, or embedded component)
  5. Time budget? Provide an estimate:
    • 1-2 sections with tables only: ~200 LOC, ~5 min bypass / ~10 min manual
    • 3-4 sections with 2-3 charts: ~500 LOC, ~15 min bypass / ~25 min manual
    • 5-8 sections with charts + health data + sparklines: ~1200 LOC, ~30 min bypass / ~50 min manual

Scope Protection

This skill enforces hard limits to prevent scope creep:

  • Max 8 sections — if the user asks for more, suggest combining related topics
  • Max 2 chart types per section — a section gets one primary chart and optionally one supporting chart or table. More than that means the section should split
  • Max 3 colors per chart — beyond that, use small multiples instead of rainbow legends
  • No 3D charts, no pie charts, no donut charts — these violate Tufte principles
  • No gratuitous animation — scroll-reveal on enter is fine; spinning, bouncing, or pulsing is not
  • Every chart must have a caption — if you can't write a one-sentence caption explaining what the chart shows, the chart shouldn't exist

When the user asks for something outside these limits, respond with: "That would take the report from [current LOC estimate] to [new estimate]. The extra complexity adds [X] but risks [Y]. Shall I proceed, or can we [simpler alternative]?"

Architecture

report.html (standalone, no build step)
├── Google Fonts CDN (EB Garamond)
├── jsDelivr CDN (Monaspace Argon woff2)
├── jsDelivr CDN (Chart.js 4.x UMD)
├── Inline <style> (design system CSS)
├── Inline HTML (semantic structure)
└── Inline <script> (data + Chart.js configs + sparklines + scroll-reveal)

No build tools, no frameworks, no npm. One file, opens in any browser.

Design System

Read references/design-tokens.md for the complete CSS variables, typography scale, and color palette.

Read references/components.md for the HTML+CSS snippet of every reusable component.

Read references/charts.md for Chart.js configuration patterns and inline SVG sparkline code.

Report Structure Template

Every report follows this skeleton:

1. Title + subtitle + data source tags (monospace, subtle)
2. [Optional] Status dashboard (4-column KPI strip)
3. Overview narrative with inline sparklines + TOC sidebar
4. Summary cards (2-4 KPI tiles with sparklines)
5. Sections (each: state-line → chart+narrative aside → table+narrative aside)
6. [Optional] Decision register (threshold table with status colors)
7. Footer (generation date, sources)
Section Pattern

Each section follows this rhythm:

<h2> with ↑ back-to-top link
<p class="state-line"> — one italic sentence, the takeaway
<div class="aside-container"> — chart on left, narrative on right
<div class="aside-container"> — table on left, interpretation on right

The alternation of chart→narrative→table→narrative creates visual breathing room and prevents "wall of data" fatigue.

Rules for Narrative Text
  • State-lines (the italic intro under each heading): one sentence, max 20 words, states the conclusion not the topic. "HRV down 13%, steps down 42%" not "This section covers health metrics"
  • Aside narratives: 3-4 short paragraphs, each starting with a bold keyword. Written like a newspaper sidebar — facts first, interpretation second
  • Flyouts: reserved for actionable insights or methodology notes. The ✦ symbol marks them as "pay attention"
  • No "tells its own story" or similar filler. Every sentence should contain a number or a decision

Dual-Font Strategy

ContextFontWhy
All body text, headers, captionsEB GaramondClassical editorial feel, excellent readability
All numbers in tablesMonaspace ArgonTabular figures align in columns, monospace scannability
Big numbers in cards/dashboardsMonaspace ArgonVisual weight, distinct from prose
Status indicators, trend percentagesMonaspace ArgonPrecision signaling
Data source tags, code referencesMonaspace ArgonTechnical register
Ornament separators (:::)Monaspace Argon with ligaturesProgramming aesthetic, replaces floral Unicode
Show full SKILL.md (432 more words)Show less

Color Principles

Use --ink (near-black) for text, --bg (warm white) for background. Chart colors must be semantically meaningful — don't assign colors randomly:

  • Orange (--spark-claude, #c45a28): primary data stream, effort/work metrics
  • Green (--spark-wispr, #2a7a5a): growth, positive health signals, English language
  • Purple (--spark-social, #5a5aaa): social/communication metrics
  • Blue (rgba(42,80,140)): secondary overlay lines on charts
  • Red (#a02a2a): alerts, negative trends, declining metrics
  • Amber (#c89000): warnings, watch-level signals
  • Green (#2a7a3a): healthy baselines, positive trends

Never use more than 3 colors in a single chart. If you need more, use opacity/saturation variations of the same hue.

Session Lessons (What Goes Wrong)

Based on building the reference report, these are the recurring problems:

  1. Chart.js CDN version: Use @4 not a specific patch version — specific versions may not exist
  2. Chart.js defaults: Set individual properties, never replace entire objects (Chart.defaults.scale.grid.color = '#eee' not Chart.defaults.scale.grid = {color: '#eee'})
  3. Legend circles: Use usePointStyle: false with boxWidth: 8, boxHeight: 8, borderRadius: 4 for true circles. usePointStyle: true creates ovals
  4. file:// protocol: Charts won't load CDN scripts via file://. Always test via localhost
  5. Back-to-back charts: Always separate consecutive charts with narrative, a table, or an ornament. Two charts in a row = "wall of data"
  6. Table overflow on mobile: Wrap in .table-wrapper and add .hide-mobile to secondary columns
  7. Dual-axis charts: Use sparingly — they invite false visual equivalence. Always label both axes clearly
  8. Narrative overreach: Don't claim correlations without computing them. "r = 0.10" is more trustworthy than "strong relationship"

Universal Data Adapter

When the user provides data from any source (CSV, JSON, SQLite, API, raw numbers), normalize it into the standard ReportData intermediate format before generating HTML. This decouples data ingestion from report rendering.

Read references/data-adapter.md for the ReportData JSON schema, field reference, and adapter instructions for each source type.

Workflow:

  1. User provides data → identify source type
  2. Transform into ReportData JSON (ask user for meta.question and desired sections)
  3. Confirm the normalized structure with the user
  4. Generate HTML from the ReportData using the block library

Composable Block Library

Reports are assembled from typed blocks, each with a defined data contract. This replaces ad-hoc HTML generation with a systematic approach.

Read references/blocks.md for the complete block catalog: sparkline-row, kpi-card, trend-chart, data-table, correlation-matrix, narrative, heatmap, strip-chart.

Each block defines:

  • Data contract (what JSON shape it expects)
  • HTML template (copy-paste ready)
  • Composition rules (how blocks pair and sequence)

Preview Server

For iterative development, use the built-in live-reload server:

bash
python3 ~/.claude/skills/tufte-report/scripts/serve.py report.html

Serves on localhost:8042, auto-reloads on file change with scroll position preserved. Zero dependencies — Python stdlib only.

Read references/preview-server.md for details. After generating a report, offer to start the preview server for the user.

© glebis, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 8 other files (scripts, references) in tufte-report of glebis/claude-skills.

  • SKILL.md
  • .claude-plugin/plugin.json
  • references/blocks.md
  • references/charts.md
  • references/components.md
  • references/data-adapter.md
  • references/design-tokens.md
  • references/preview-server.md
  • scripts/serve.py

Open the folder on GitHubat commit 3b88261

Compare with similar skills

Tufte Report next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Tufte Report compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tufte Report this skillglebis/claude-skills391—~2.4kAutomated safety check: PassMIT
Lieflat Chartslarashero3-dotcom/lieflat-charts6k1 repos~4.5kAutomated safety check: PassCC-BY-NC-4.0
Data Viz Rendererzebbern/claude-code-guide4.7k—~1.3kAutomated safety check: PassMIT
Alt Text DesignOwl-Listener/inclusive-design-skills105—~946Automated safety check: PassMIT
Visual Designaws-samples/sample-strands-agent-with-agentcore195—~1.5kAutomated safety check: PassMIT
Microsim Generatordmccreary/ibook-skills105—~11kAutomated safety check: PassNone

Similar skills

  • Lieflat Charts

    larashero3-dotcom/lieflat-charts

    Generates single-file HTML charts and full-page reports from real gallery templates, using a grayscale base with optional color presets.

    6k GitHub starsUsed in 1 repo~4.5k tokens
    Data & AnalyticsAuto-check passed
  • Data Viz Renderer

    zebbern/claude-code-guide

    Generate self-contained HTML/SVG infographics from JSON data, including stat cards, bar charts, flow diagrams, and mixed dashboards.

    4.7k GitHub stars~1.3k tokensUpdated today
    Media & CreativeAuto-check passed
  • Alt Text Design

    Owl-Listener/inclusive-design-skills

    Write meaningful alternative text for images, charts, diagrams, and visual content.

    105 GitHub stars~946 tokensUpdated 4 mo ago
    Media & CreativeAuto-check passed
  • Visual Design

    aws-samples/sample-strands-agent-with-agentcore

    Official

    Use this skill any time the user needs a visual output as an image or PDF — charts, diagrams, posters, infographics, abstract artwork, or any visual design.

    195 GitHub stars~1.5k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Microsim Generator

    dmccreary/ibook-skills

    Creates interactive educational MicroSims, routing to the best-matched generator - p5.js, Chart.js, Plotly, Mermaid, vis-network, timelines, maps, Venn, causal-loop/feedback-loop diagrams (CLD)…

    105 GitHub stars~11k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • SN Motion HTML

    OpenSenseNova/SenseNova-Skills

    Builds HTML stories where one continuous camera journey advances with page progress, using researched structure, AI stills, Seedance video clips and browser QA.

    5.7k GitHub stars~2.2k tokensUpdated yesterday
    Media & CreativeAuto-check: notes

More from glebis/claude-skills

All 92 skills in this repo
  • Runs a human-first workflow for labeling PII spans in a transcript, then scores inter-annotator agreement and drafts an adjudicated gold set.

    391 GitHub stars~1.3k tokensUpdated 2 days ago
    Auto-check passed
  • Automates a dedicated, logged-in Chrome instance per profile without ever closing the user's own open tabs or browser windows.

    391 GitHub stars~973 tokensUpdated 2 days ago
    Auto-check passed
  • Deep Research

    glebis/claude-skills

    This skill should be used when conducting comprehensive research on any topic using the OpenAI Deep Research API.

    391 GitHub stars~2.6k tokensUpdated 2 days ago
    Auto-check: notes
  • Elimination Research

    glebis/claude-skills

    This skill should be used for elimination-style research where the user wants to choose from a shortlist of products, tools, services, vendors, or other options using explicit criteria, numeric…

    391 GitHub stars~1.6k tokensUpdated 2 days ago
    Auto-check passed
  • Narrated HTML Presentations

    glebis/claude-skills

    Generates a self-contained HTML presentation with article and slides modes, ElevenLabs voiceover narration and optional GPT Image 2 illustrations.

    391 GitHub stars~2.3k tokensUpdated 2 days ago
    Auto-check: notes
  • Writes fictional but realistic coaching or therapy session transcripts for evals, demos and few-shot examples, in several modalities and export formats.

    391 GitHub stars~2.9k tokensUpdated 2 days ago
    Auto-check passed

Works with

Questions about Tufte Report

What does Tufte Report do?

Create Tufte-inspired data reports and infographic dashboards as standalone HTML files. Tufte Report is an agent skill from glebis/claude-skills. Create Tufte-inspired data reports and infographic dashboards as standalone HTML files.

When should I use Tufte Report?

Tufte Report fits situations like: the user wants to create a data report; activity dashboard; personal analytics page; health tracker visualization.

How do I install Tufte Report in Claude Code?

Run `npx skills add glebis/claude-skills --skill tufte-report -a claude-code`. Or copy the skill folder (tufte-report in glebis/claude-skills) into .claude/skills/tufte-report in your project. Claude Code loads it when a task matches its description.

How do I install Tufte Report in Codex?

Run `npx skills add glebis/claude-skills --skill tufte-report -a codex`. Or copy the skill folder (tufte-report in glebis/claude-skills) into .agents/skills/tufte-report in your project. Codex loads it when a task matches its description.

Can I use Tufte Report in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add glebis/claude-skills --skill tufte-report -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tufte-report, .gemini/skills/tufte-report, .github/skills/tufte-report and .opencode/skills/tufte-report in your project.

What does Tufte Report need to run?

Going by SKILL.md and its folder, Tufte Report needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Tufte Report access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Tufte Report safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Tufte Report use?

Tufte Report is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Tufte Report use?

About 2.4k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 8.6k tokens, read only when the agent opens those files.

What are the alternatives to Tufte Report?

Skills that share tags, products or a category with Tufte Report: Lieflat Charts (larashero3-dotcom/lieflat-charts, 6k stars), Data Viz Renderer (zebbern/claude-code-guide, 4.7k stars), Alt Text Design (Owl-Listener/inclusive-design-skills, 105 stars) and Visual Design (aws-samples/sample-strands-agent-with-agentcore, 195 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tufte Report?

glebis (a GitHub user) maintains it in glebis/claude-skills, which has 391 GitHub stars. The repository holds 92 skills in this directory. The repository was last updated on October 8, 2026.

Source: glebis/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.