Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/QinghongLin/data2story-skillnpx agentmods add skills/qinghonglin/data2story-skill/data2story-proWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/qinghonglin/data2story-skill/data2story-pro)<a href="https://agentmods.dev/skills/qinghonglin/data2story-skill/data2story-pro"><img src="https://agentmods.dev/badge/skills/qinghonglin/data2story-skill/data2story-pro/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/qinghonglin/data2story-skill/data2story-pro"><img src="https://agentmods.dev/badge/skills/qinghonglin/data2story-skill/data2story-pro.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Excessive Agency · line 42 Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.Fix: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00128 | $0.14102 |
| Opus 5.5 | $0.00051 | $0.05641 |
| Sonnet 5.5 | $0.00026 | $0.02820 |
| Haiku 4.5 | $0.00013 | $0.01410 |
Grade A, and why
data2story-pro scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 317 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Data Journalist Agent (Data2Story)
Turn $ARGUMENTS into a blog. Orchestrates the roles below in sequence.
Orchestration rituals
Five process rules earned from real runs. Each is one rule + why it exists; follow them across every run regardless of topic.
- (D1) Candidate-image review loop. For any hero/cover image of a named person or specific real object, generate N candidates, then run a VLM (or human) review and select one — never ship the first render. Why: text2image of named people intermittently refuses outright and quality varies shot-to-shot, so a single render is a coin-flip; a small candidate pool plus a review step is the only reliable way to land a usable, correctly-identified image.
- (D2) Audit-before-finalize. Run the read-only multi-agent audit (provenance / repro / assets / IP lenses) to find every defect FIRST, collect them, and only THEN make one editing pass to fix them. Why: interleaving find-and-fix makes agents edit the same file against a moving target and re-introduce each other's defects; separating the finding phase from the fixing phase prevents that churn.
- (D3) Single owner of one big file. Parallel agents may produce data and assets concurrently, but exactly ONE agent writes
index.html. Why: the HTML is one indivisible artifact; concurrent edits to it interleave and corrupt it, so it must have a single writer even when everything feeding it is parallel. - (D4) Headless-verify-then-defer-render. Prove everything you can without a browser —
node --checkthe scripts, recompute a known model output and compare, byte-compare each inline JSON island to itsverify/file — then hand the final visual/browser sign-off to the user. Why: deterministic checks catch the failures that don't need eyes cheaply and early, while genuine render correctness needs a real browser this harness can't drive, so the human does that last mile (see also the chart-width-0 class of bug, invisible to node shims). - (D5) Verify-coexistence-with-zero-engine-edits. New interactive features layer on top of the frozen Verify engine (the in-page Inspector panel +
verify/artifacts); never edit the engine to make a feature fit. Why: the Verify layer is the paper's coding verifier and a hard gate — editing it to accommodate a feature risks silently breaking provenance, so features adapt to it, not the reverse.
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- .gitignore 665 B
- analyst/references/data_table_rules.json 1.6 KB
- analyst/references/field_rules.json 1.7 KB
- analyst/references/paper_mode.json 2.6 KB
- analyst/references/schema.json 1.6 KB
- analyst/SKILL.md 9.4 KB
- auditor/references/checks.json 19 KB
- auditor/references/fix_patterns.json 16 KB
- auditor/references/flagship_contract.json 50 KB
- auditor/references/report_types.json 20 KB
- auditor/scripts/playtest_drive.js 61 KB runs code
- auditor/scripts/render_capture.js 36 KB runs code
- auditor/SKILL.md 25 KB
- cinematographer/references/cinematic_recipes.json 19 KB
- cinematographer/references/example_cinematic_scroll.html 19 KB
- cinematographer/references/schema.json 6.4 KB
- cinematographer/SKILL.md 17 KB
- copywriter/references/schema.json 7.4 KB
- copywriter/SKILL.md 15 KB
- critic/references/rubric.json 24 KB
- critic/SKILL.md 18 KB
- data/.gitkeep 0 B
- designer/references/audio_rules.json 23 KB
- designer/references/diversity_rules.json 9.2 KB
- designer/references/field_rules.json 5.2 KB
- designer/references/schema.json 9.1 KB
- designer/references/tools.json 2.1 KB
- designer/references/video_pipeline.json 10 KB
- designer/references/visual_modes.json 8.1 KB
- designer/scripts/openrouter-embeddings/config.json 176 B
- designer/scripts/openrouter-embeddings/scripts/embed.py 3.7 KB runs code
- designer/scripts/openrouter-embeddings/SKILL.md 2.0 KB
- designer/scripts/openrouter-image2video/config.json 319 B
- designer/scripts/openrouter-image2video/scripts/generate_video_from_image.py 14 KB runs code
- designer/scripts/openrouter-image2video/SKILL.md 3.4 KB
- designer/scripts/openrouter-text2image/config.json 181 B
- designer/scripts/openrouter-text2image/scripts/generate_image.py 5.8 KB runs code
- designer/scripts/openrouter-text2image/SKILL.md 1.4 KB
- designer/scripts/openrouter-text2music/config.json 450 B
- designer/scripts/openrouter-text2music/scripts/generate_music.py 6.5 KB runs code
- designer/scripts/openrouter-text2music/SKILL.md 2.4 KB
- designer/scripts/openrouter-text2video/config.json 321 B
- designer/scripts/openrouter-text2video/scripts/generate_video.py 7.2 KB runs code
- designer/scripts/openrouter-text2video/SKILL.md 1.9 KB
- designer/scripts/optimize_assets.py 15 KB runs code
- designer/SKILL.md 37 KB
- detective/examples/fetch_hle_images.py 6.3 KB runs code
- detective/examples/fetch_venue_weather.py 7.0 KB runs code
- detective/examples/README.md 1.7 KB
- detective/references/categories.json 676 B
- detective/references/field_rules.json 2.8 KB
- detective/references/instance_verification.json 5.3 KB
- detective/references/paper_mode.json 5.0 KB
- detective/references/schema.json 1.7 KB
- detective/scripts/fetch_flags.py 6.3 KB runs code
- detective/scripts/fetch_images.py 9.7 KB runs code
- detective/scripts/fetch_logos.py 7.1 KB runs code
- detective/scripts/fetch_openverse.py 10 KB runs code
- detective/SKILL.md 15 KB
- editor/references/editor_md_template.json 1.5 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 317 lines · 128 tokens per session scan A 8b6e66d00811
data2story-pro is a skill published in the GitHub repository QinghongLin/data2story-skill (161 stars, last pushed 4mo ago), licensed MIT. It adds 128 tokens to every session and 14,102 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
data2story-pro compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| data2story-proQinghongLin/data2story-skill | Skill | 161 | 4mo ago | MIT | A | 128 | Claude Code |
| chdb-sqlchdb-io/chdb | Skill | 2.9k | 6d ago | Apache-2.0 | A | 214 | Claude Code, Codex |
| waxchristopherkarani/Wax | Skill | 806 | 2d ago | Apache-2.0 | A | 76 | Codex |
| wax-memory-maintenancechristopherkarani/Wax | Skill | 806 | 2d ago | Apache-2.0 | A | 18 | Claude Code, Codex |
| alterlab-timesfmAlterLab-IEU/AlterLab-Academic-Skills | Skill | 85 | yesterday | MIT | A | 150 | Claude Code |
| alterlab-cobrapyAlterLab-IEU/AlterLab-Academic-Skills | Skill | 85 | yesterday | MIT | A | 91 | Claude Code |
| alterlab-molecular-dynamicsAlterLab-IEU/AlterLab-Academic-Skills | Skill | 85 | yesterday | MIT | A | 98 | Claude Code |