data2story-skill is a Claude Code plugin with 27 hand-picked skills, indexed on Flowy in the Content category.
> /plugin marketplace add QinghongLin/data2story-skill
A data-journalist agent skill that turns any dataset into a verifiable, evidence-grounded multimodal story — a self-contained HTML article where every sentence traces back to the data or source that justifies it.
https://github.com/user-attachments/assets/7a2e2b65-3289-431d-b06a-230252df8774
viewer.html inspector where you can click any claim to see the data, code, or citation behind it.SKILL.md holds only its instructions; bulky reference material (output schemas, field rules, lookup tables) lives in that role's references/ folder as JSON and is loaded only when needed.Two versions. The repository ships two peer skills under
skills/— the richer, current build isdata2story-pro; the paper's reproducible version isdata2story.
Skill Invoke What it is data2story-pro/data2story-proImproved version of data2story. See skills/data2story-pro/README.md.data2story/data2storyThe paper's canonical 7-role pipeline.
Data2Story is an agent skill. The orchestrator lives in skills/data2story/SKILL.md — it works first-class with Claude Code, and equally with Codex, Cursor, Gemini CLI, and other agents.
Set your API key. Media generation routes through OpenRouter by default:
export OPENROUTER_API_KEY=sk-or-...
Run the skill on a dataset:
Claude Code — make the skill available (place skills/data2story/ under ~/.claude/skills/, or run from inside this repo), then:
/data2story data/pick_a_card
Codex / other agents — open the repo and ask the agent to follow the orchestrator:
Read skills/data2story/SKILL.md and run the Data2Story pipeline on data/pick_a_card
Open the output: index.html (the finished article) and viewer.html (the evidence inspector).
data2story-skill/
├── skills/
│ ├── data2story/ the paper's canonical 7-role pipeline · /data2story
│ ├── data2story-pro/ the extended 14-agent build · /data2story-pro
│ │ └ self-contained: its own README, package.json, example data/
│ ├── frontend-design/ visual design system used by data2story
│ ├── frontend-design-pro/ extended design system used by data2story-pro
│ ├── dataviz-craft/ chart-craft recipes · data2story-pro helper
│ ├── find-data/ dataset discovery & validation · data2story-pro helper
│ └── sparring-partner/ idea-to-topic ideation · data2story-pro helper
├── .claude-plugin/ marketplace.json · installs either skill
└── assets/ shared images
Inside each orchestrator, a role is a SKILL.md + a references/ folder (JSON schemas & lookup tables) + any scripts/ it runs — e.g. designer/scripts/ (OpenRouter media tools), inspector/scripts/ (the verify.py / generate_viewer.py verifier), detective/scripts/ (media fetch helpers).
Think of it as a small newsroom in a box. Each role reads what the previous one produced, then adds its own artifact — a fixed pipeline that runs once, end to end.
| # | Role | What it does | Produces |
|---|---|---|---|
| 1 | Detective | Researches external context — domain background, history, why the data matters | detective.json |
| 2 | Analyst | Exhaustively profiles the data — distributions, correlations, trends, anomalies | analyst.json, code/*.py |
| 3 | Editor | Decides the narrative — what the article argues and which findings matter | editor.md, editor.json |
| 4 | Designer | Chooses how to show each point — charts, images, video, audio, interactives | designer.json, assets/ |
| 5 | Programmer | Builds the final HTML, tagging every element with its source IDs | index.html |
| 6 | Auditor | Fixes layout issues — overlap, spacing, alignment — without changing content | index.html (fixed), auditor.json |
| 7 | Inspector | Verifies every sentence traces to its evidence; builds an interactive viewer | inspector.json, viewer.html |
flowchart TB
DATA[(dataset)]
subgraph plan [Plan and design]
direction LR
DET[Detective] -->|detective.json| ANA[Analyst]
ANA -->|analyst.json + code| EDT[Editor]
EDT -->|editor.md + editor.json| DES[Designer]
end
subgraph build [Build and verify]
direction LR
PRG[Programmer] -->|index.html| AUD[Auditor]
AUD -->|index.html| INS[Inspector]
end
DATA --> DET
DES -->|designer.json + assets| PRG
INS -->|inspector.json + viewer.html| OUT([article + evidence viewer])
Released under the MIT License.
If you use Data2Story in your research, please kindly cite:
@article{data2story,
title = {Data Journalist Agent: Transforming Data into Verifiable Multimodal Stories},
author = {Lin, Kevin Qinghong and EI, Batu and Shi, Yuhong and Lu, Pan and Torr, Philip and Zou, James},
journal = {arXiv preprint arXiv:2606.11176},
year = {2026}
}
data2story-skill is a Claude Code plugin with 27 hand-picked skills, indexed on Flowy in the Content category. Install it with the command on its page. It includes data2story-pro, analyst, auditor. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it