chart-big-idea
Skill0 starsChanged 9 days agoMITView on GitHub
Distill the one-sentence Big Idea, story arc, audience, and style stance for a chart BEFORE picking a chart type. Starts by questioning intent — whether the artifact should exist at all, and whether the stated purpose is the real one. Reads the surrounding docs / prose / ticket for an existing Big Idea first, then helps the user articulate one via a 3-question elicitation ladder if none is found. Asks whether the user wants a TRADITIONAL (safe) or INNOVATIVE (higher-impact, higher-risk) treatment. Use before invoking the flint-chart skill or the /render-chart prompt whenever the user's ask is 'chart this', 'visualize', 'make a chart', 'show the data', or when framing is unclear.
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-interpretationSkill
- chart-vocabularySkill
- 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
8 rules. About 0 are common, 8 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 25
Do NOT invoke when:
- Distinctive: line 60
Before drafting the Big Idea, verify the figure earns its place.
- Distinctive: line 68
If none apply, the figure does not earn its place.
- Distinctive: line 70
Deletion test: if the surrounding prose reads fine when the figure is removed, the figure is decorative.
- Distinctive: line 112
If a claim is not computable, replace it with an evidence boundary that names the missing input.
- Distinctive: line 153
If the user hasn't told you, infer defaults: Glance / General / Persuasive for external audiences, Read / Domain-fluent / Decision-critical …
- Distinctive: line 192
Rule of thumb: default to TRADITIONAL when the audience is glance-time or general-fluency.
- Distinctive: line 206
When color carries meaning (categorical distinction, severity, target vs actual), pair it with a second cue — shape, label, position, or …
≈ “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 Big Idea
Frame the chart before you pick it. A chart is a rhetorical act — it makes an argument about the data. If you can't state the argument in one sentence, the chart type will be wrong no matter how it's rendered.
This skill produces a Chart Brief — a short structured record of Big Idea + intent + story arc + audience + style stance + theme / tone stance — which then feeds the flint-chart skill's §0.2 selection table.
Scope. Steps 0, 1, and 3 — read the context, state the claim in one sentence, read the audience — apply to any communication artifact: a slide, a memo, a diagram, a report section. Steps 2, 4, and 5 are chart machinery, which is why this skill is chart-named. If you are framing something that is not a chart, run Steps 0–1 and 3 and stop there.
When to invoke
Invoke this skill BEFORE flint-chart selection when any of these fire:
- User says "chart this", "visualize this", "make a chart", "show me the data"
- User attaches a dataset without a stated question
- User says "which chart should I use for..." and gives a data description
- The
/render-chartprompt fires — this skill is its Step 0 - Existing chart is being redesigned ("this doesn't land — can we improve it?")
Do NOT invoke when:
- User provides a fully-formed spec asking to render it verbatim
- User is iterating on style/color/spacing of an already-chosen chart type
- The chart is diagnostic-only (e.g. exploratory data profiling); framing overhead isn't earned
Step 0: Read the surrounding context first (before asking anything)
Before you ask the user for the Big Idea, look for it in the material they've already produced. Often the Big Idea is written in prose next to where the chart will live — you just have to find it and lift it. Interrogating the user for a claim they already wrote is wasteful and slightly insulting.
Where to look, in order:
| Source | What to grep for | Example |
| The paragraph immediately before/after the chart's insertion point | Claim-shaped sentences ("...shows that...", "...demonstrates...", "...surprisingly...", "...contrary to...", "...three of the last five...") | Paper section says "Skeptics span the full Likert range" — that's a Big Idea seed |
| The doc / report / notebook section heading the chart sits under | The heading often IS the topic; the sentence beneath is often the Big Idea | Section titled "Clusters differ in shape, not just center" |
| The PR description, ticket, issue, or commit message that spawned the chart request | The "why" that justified opening the ticket | "Need to show finance the West is pulling away" |
Any existing chart caption, figure title, alt= text, or prior version of this chart | Prior authors' framing you can inherit or sharpen | Old caption: "BI by cluster with SD bars" (topic — needs upgrade) |
| The user's own recent messages in this conversation | Adjectives, verbs, and framings they used to describe the finding | User said "the Skeptics story is vivid" — "vivid" is the tell |
| README / abstract / one-pager / project overview | Confirms the audience the whole document is targeting | Fixes Step 3 audience-read without a separate question |
| Adjacent charts in the same doc | Their captions establish the narrative rhythm this chart plugs into | Fig06 caption sets up the comparison; fig07 caption should extend it |
What to do with what you find:
- Found a claim-shaped sentence: draft the Big Idea from it, show it to the user in Step 1 as "Here's what I think you're arguing — confirm or correct?", let them fix in one hop. Do not silently rewrite the user's own words — if their prose already states the Big Idea, quote it verbatim in the Brief and cite the source.
- Found only a topic: skip to Step 1 elicitation with the topic as your anchor.
- Found nothing (cold ask, no doc, no ticket): go directly to Step 1 elicitation with no anchor.
- Found conflicting framings (e.g. ticket says one thing, prose says another): surface the conflict to the user before drafting — "the ticket asks for X but the section prose argues Y — which is the chart supposed to land?"
Skip Step 0 when: the user pasted a Big Idea directly ("Chart this: X grew 3× faster than Y"). Context-gathering isn't needed when the framing arrived on the request.
Time budget: Step 0 should take under a minute. If you're spelunking through 20 files trying to reconstruct intent, stop and ask the user — the doc genuinely doesn't have it.
Step 0.5: What earns a figure — the 5-criteria gate
Before drafting the Big Idea, verify the figure earns its place. A figure earns its place when it does one (or more) of:
- Compresses a decision rule — matrix, decision tree, or before/after that turns branching prose into a single scan
- Shows a temporal or procedural sequence — a loop, flow, or timeline the prose can only enumerate
- Makes an abstraction concrete — labeled anatomy, storyboard, worked example that anchors an otherwise floating concept
- Surfaces a hidden failure mode — a side-by-side that reveals a defect the reader would miss in prose
- Anchors a recurring visual concept — a figure the reader will need to reference repeatedly across sections
If none apply, the figure does not earn its place. Restate the claim as a sentence or a table instead. An unearned figure adds visual weight without adding argument, which weakens the surrounding argument.
Deletion test: if the surrounding prose reads fine when the figure is removed, the figure is decorative. If the prose has to be substantially rewritten to compensate, the figure was doing real work.
Adapted from a published decision-analysis book's figure-authoring practice.
Step 1: The Big Idea (one sentence)
First, check the intent — not just the finding
The Big Idea asks what the data shows. Before that, ask what this artifact is actually for. Answer both from Step 0 context where you can; escalate to the user only when the answer is unclear or uncomfortable.
- Should this exist at all? A chart with no claim is decoration. If Step 0 surfaced no argument and the data holds no surprise, say so and offer the cheaper alternative — a sentence, a table, or nothing. A competent chart nobody needed is a failure that looks like success.
- Is the stated purpose the real one? Sometimes the request is "show that X worked" rather than "show what X did" — a decision already made, looking for a picture to ratify it. That is a legitimate thing to build, but name it: it belongs in the Brief as Persuasive, and the honest version makes its case without suppressing the counter-evidence.
If the intended message and the data disagree, surface it before drafting the Big Idea. Do not quietly pick the chart that makes the requested point. Say what the data supports, name the gap, and let the user decide. This is the one moment in the workflow where the right answer may be "not this chart" — every later step assumes the chart should exist.
Classify the intent before choosing a treatment:
| Intent | Job |
| Explanatory | Make one supported finding clear and memorable. |
| Exploratory | Help the reader inspect patterns without pretending the conclusion is settled. |
| Persuasive | Support a decision or position honestly, including material counter-evidence. |
Load and follow big-idea for shared claim distillation, audience, and narrative stance. This chart workflow owns the analytical intent, population, denominator, units, treatment choice, and Chart Brief. For a vague dataset request, use the chart-specific elicitation examples; do not duplicate the general distillation procedure or redirect back to this skill before completing the shared method.
Step 1.5: Claim computability
A Big Idea the data cannot support is a correctness failure, not a framing problem. Before spending effort on arc and style, make the claim's evidence executable. One row per decision-bearing claim:
| Claim | Required fields | Formula | Grain | Status |
| "Email returns $3.20 per $1" | pipeline, campaign spend | pipeline / spend | campaign-quarter | Computable |
Four rules decide the Status column:
- Denominator present. A ratio, rate, or "per" claim needs its denominator in the source. A larger numerator is not evidence of greater efficiency.
- Baseline named. "Jan to Jun" is not "versus prior period." State which one the claim means.
- Kind separated. Observations, calculations, scenarios, and forecasts are different claims. Never present a scenario as an observed result.
- Grain matches. Required fields must exist at the grain the claim asserts, not a coarser one.
If a claim is not computable, replace it with an evidence boundary that names the missing input. Do not estimate silently, and do not let the chart imply a number the data never contained.
Computable is not computed. Establish material shares/ratios with an executed script, query, or formula and retain its output as evidence. If execution is denied or unavailable, use another permitted deterministic tool or label the derived claim unverified; do not silently replace the failed check with prose arithmetic.
Adapted from the Claim Computability Gate in an earlier visual-storytelling curriculum, absorbed into this plugin.
Step 2: Story arc
Once the Big Idea is written, classify the story arc. This narrows chart families before flint-chart §0.2 fires:
| Story arc | What it argues | Chart-family shortlist |
| Comparison | A > B, A ≠ B, ranking | Bar, dot plot, lollipop, bullet |
| Change over time | X trended up/down/inflected | Line, area, slope, small-multiple line |
| Composition | X is made up of parts | Stacked bar, treemap, waffle, donut (rarely pie) |
| Distribution | X is spread this way | Histogram, box, violin, strip, jittered dot, density |
| Relationship | X co-varies with Y | Scatter, bubble, connected scatter, hexbin |
| Deviation | X differs from a benchmark / expectation | Diverging bar, dumbbell, bullet, error-bar |
| Flow | X moves from A to B | Sankey, chord, alluvial |
| Anomaly | X is unusual | Annotated line/scatter with the anomaly highlighted |
| Ranking-with-context | X's position vs peers and distribution shape | Lollipop on distribution, dot plot with reference bands |
A single chart usually leans on ONE arc. If the Big Idea needs two arcs (e.g. "compare + show distribution"), that's the hybrid signal — flag it for Step 4.
Step 3: Audience + stakes
Three quick reads. Do not turn this into an interview:
| Read | Options | Impact on chart choice |
| Reading time | Glance (5s) / Read (30s) / Study (2min+) | Glance → traditional + one message. Study → can afford complexity. |
| Statistical fluency | General / Domain-fluent / Technical | Fluent audiences can read box/violin/parallel coords; general audiences cannot. |
| Stakes | Informational / Persuasive / Decision-critical | Decision-critical earns a title-sentence overlay and annotation; informational may not. |
If the user hasn't told you, infer defaults: Glance / General / Persuasive for external audiences, Read / Domain-fluent / Decision-critical for internal analytics work.
Step 4: Style stance — TRADITIONAL vs INNOVATIVE
Ask the user explicitly (unless they already stated a preference):
"Do you want the traditional treatment — a familiar chart everyone will read at a glance — or an innovative treatment that shows more of the story but costs the reader a few seconds of study?"
Both are valid design choices. The tradeoff:
| Dimension | TRADITIONAL (safe) | INNOVATIVE (higher-impact, higher-risk) |
| Legibility | Universal — no explanation needed | Needs a caption, sometimes a legend walkthrough |
| Information density | One dimension per chart | Multiple dimensions layered |
| Risk of misreading | Low | Moderate — some readers will bounce off |
| Best for | Executive dashboards, first exposure, glance-time audiences | Analytical narratives, technical reports, curated presentations |
| Comparison example | Bar chart of cluster means | Lollipop on strip-jitter distribution |
| Change-over-time example | Line chart | Slope chart (first + last only) or connected scatter |
| Distribution example | Histogram | Ridgeline plot or beeswarm |
| Composition example | Stacked bar | Waffle grid or treemap |
| Deviation example | Bar with target line | Bullet chart or dumbbell |
| Ranking + context example | Ranked bar | Dot plot with reference band, or lollipop on distribution |
Style-stance × Story-arc → exact chartType candidates. Confirm the selected
backend's live list_chart_types catalog before handing a type to Flint; these
names are not snake_case aliases, and a composite treatment is not one chartType.
| Story arc | Traditional pick | Innovative pick |
| Comparison | Bar Chart or Grouped Bar Chart | Lollipop Chart |
| Change over time | Line Chart | Slope Chart or annotated Line Chart |
| Composition | Stacked Bar Chart | Treemap or faceted Bar Chart where supported |
| Distribution | Histogram or Bar Chart of prepared bins | Strip Plot, Boxplot, or Violin Plot where supported |
| Relationship | Scatter Plot | Scatter Plot with color/size, or Regression |
| Deviation | Bar Chart with a supported reference treatment | Bullet Chart or Ranged Dot Plot |
| Flow | Bar Chart of prepared source/target counts | Sankey Diagram where supported |
| Anomaly | Line Chart with a supported annotation | Line Chart with a separately verified reference treatment |
| Ranking-with-context | Ranked Bar Chart | Lollipop Chart and Strip Plot as separate/composed treatments, verified after rendering |
Rule of thumb: default to TRADITIONAL when the audience is glance-time or general-fluency. Default to INNOVATIVE when the audience is domain-fluent AND has 30+ seconds of study time AND the extra dimensions materially strengthen the Big Idea. When in doubt, ask.
Step 4.5: Focus discipline (executing the chosen stance)
Style stance decides scope. Focus discipline decides execution. Three rules govern the mark-level choices once Step 4 has picked TRADITIONAL or INNOVATIVE.
One pre-attentive attribute per emphasis
Color, size, position, and typeface are pre-attentive attributes — the eye finds them without scanning. Use exactly one to mark the point of the Big Idea. Two adds no signal (the reader already found it). Three degrades the signal (the emphasis reads as random rather than intentional).
Example: in a bar chart where the story is one region's shortfall, most bars in slate-300 and the story-carrying bar in blue-800 is enough. Adding stroke-width AND size on top is over-encoding.
Redundant encoding for accessibility
When color carries meaning (categorical distinction, severity, target vs actual), pair it with a second cue — shape, label, position, or texture. Roughly 8% of male readers cannot reliably distinguish red from green; a color-only encoding fails them silently. Color + shape and color + label both survive deuteranopia.
Deuteranopia-simulate any red/green pairing (browser DevTools, macOS Accessibility Inspector, or a color-blindness plug-in) before shipping.
BEFORE-only anti-pattern figures: neutral title
When a figure teaches by showing failure (a flawed chart the reader is asked to diagnose), keep the title and subtitle neutral. "As generated" / "First draft" / "Cold Copilot output" describe the artifact state without previewing what's wrong. Editorializing in the title spoils the diagnostic task the figure exists to teach.
Paired BEFORE/AFTER figures are the exception: the AFTER panel already reveals the argument, so the title can name it directly.
Adapted from a published decision-analysis book's figure-authoring practice.
Step 5: Write the Chart Brief and hand off
Output a compact brief (fits in one message, ~10 lines) that the flint-chart skill or /render-chart prompt consumes directly:
### Chart Brief
- **Big Idea**: <one sentence, from Step 1>
- **Intent**: EXPLANATORY | EXPLORATORY | PERSUASIVE
- **Story arc**: <one label from Step 2 taxonomy>
- **Audience**: <reading-time> / <fluency> / <stakes>
- **Style stance**: TRADITIONAL | INNOVATIVE (with one-sentence rationale)
- **Theme / tone stance**: <e.g. restrained editorial, playful explainer, technical instrument, executive deck>
- **Suggested chartType(s)**: <1-2 from the Step 4 crosstab>
- **Alternates considered**: <1-2 the crosstab surfaced but you didn't pick, with why>
- **Anti-patterns to avoid**: <call out any per flint-chart §0.3 that this brief risks>Then invoke flint-chart §0.2 with the brief as context. The brief locks the framing; §0.2 handles the mechanical chartType lookup + Flint coverage check.
For a standalone Vega-Lite chart, the Big Idea becomes chart_spec.title and
the measurement context becomes chart_spec.subtitle. This preserves the claim
when the chart travels without the surrounding prose.
Anti-patterns
| Anti-pattern | Correction |
| Asking the user for the Big Idea without doing Step 0 first | Read the surrounding prose / ticket / section heading first. If the user already wrote the claim, lift it — don't make them re-articulate it. |
| Accepting the stated purpose without testing it | Ask what the artifact is really for before writing the claim. A chart built to ratify a decision already made is legitimate, but it belongs in the Brief as Persuasive — not dressed as neutral reporting. |
| Framing a chart that should not exist | If the data holds no claim, the honest output is a sentence or a table, not a well-framed chart. Say so before Step 2. |
| Silently rewriting the user's own claim into your preferred phrasing | If Step 0 surfaces their sentence, quote it verbatim in the Brief and cite the source. Sharpen only with permission. |
| Writing a topic ("Q3 metrics") and calling it a Big Idea | Topics don't argue anything. Force the subject-verb-implication shape. |
| Running the Step 1 elicitation ladder as a batch of 3 questions | Interrogation, not conversation. One question at a time; stop as soon as the sentence writes itself. |
| Stalling forever when the user can't articulate the Big Idea | Propose one yourself from Step 0 + the data, mark it **Proposal**:, let them react. Specific proposals unlock faster than open prompts. |
| Skipping Step 4 because "the chart is obvious" | If the chart is obvious, the style stance is a 10-second confirmation, not skipped work. Ask. |
| Defaulting to INNOVATIVE because it's more visually interesting to you | Traditional charts win most decisions. Innovation is earned by audience + stakes, not by aesthetics. |
| Picking INNOVATIVE when the reader has 5 seconds | Innovative charts need study time. If the audience is glance-time, an innovative chart fails the Big Idea, no matter how elegant. |
| Writing the Brief AFTER rendering | The Brief is the constraint on the render, not a post-hoc justification. |
Worked example (AIRS fig07 ultimate)
- Step 0 sources (context found before asking the user anything):
AIRS/paper/manuscript.html§ Results — paragraph before the figure reads "cluster centroids on BI diverge sharply, but the within-cluster spread tells the more actionable story" → near-verbatim Big Idea seed- Existing R plot caption: "BI by cluster with SD bars" → topic-shaped, needed upgrading to a claim
AIRS/SUMMARY.mdaudience note: technical readers, decision-critical for training program design → fixed Audience read without a separate question
- Big Idea: "The three AI-readiness clusters differ not just in average Behavioral Intention but in how tightly their members cluster around the mean — Enthusiasts are uniformly high, Skeptics span the full Likert range." (drafted from Step 0 seed, confirmed by user in one hop — no elicitation ladder needed)
- Story arc: Ranking-with-context (comparison + distribution)
- Audience: Study (2min+) / Domain-fluent / Decision-critical
- Style stance: INNOVATIVE — the Big Idea has two arcs, so a traditional single-arc chart (bar of means) loses half the argument. Study-time + domain-fluent audience can afford the extra read cost.
- Suggested chartType:
Lollipop Chart(centroid + stem) andStrip Plot(respondent-level jitter), as a separately verified composite rather than one registered chartType - Alternates considered: (a) traditional bar with error bars — chosen against because it hides the floor/ceiling clamping that makes the Skeptics story vivid; (b) boxplot + strip — chosen against because box quartile lines are redundant with the strip density and add visual noise.
- Anti-patterns to avoid: over-layering (kept to strip + lollipop + centroid, no boxplot); starting y at 0 on a Likert scale (started at 1); putting metadata inside the plot area (n= labels moved to the axis).
Related skills
big-idea(Alex ACT Core) — the generalized Big Idea distillation for any summary-shaped output.chart-big-ideais the chart-specific specialization.chart-vocabulary— 7-goal catalog + CSAR override table. Consumed by Step 5 (Chart Brief) to pick a chart type once the Big Idea is locked; also consumed by the selection tree inchart-vocabularyModule 5 which delegates back here for Step 1.flint-chart— §0.2 chart-family-before-type +ChartAssemblyInputauthoring. Consumes the Chart Brief.render-verify— post-render check + Prose-coupling check for the shipped figure.print-svg-style-guide— how figures LOOK once framing (this skill) is locked. Canvas + typography + palette + composition idioms.figure-generator— deterministic engineering discipline for shipping figures backed by real datasets.
Would Revise If
Revise this skill if any of the following fires:
- Cole Nussbaumer Knaflic publishes a materially revised Big Idea framing that supersedes the three-part rule used here.
- Users invoke this skill to frame non-chart artifacts often enough that Steps 2/4/5 are routinely skipped → the general half (Steps 0/1/3) has outgrown the chart-specific half, and it should be split into its own skill rather than scope-noted.
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.

