Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add QinghongLin/data2story-skill --skill criticgit clone --depth 1 https://github.com/QinghongLin/data2story-skillWrote 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/critic)<a href="https://agentmods.dev/skills/qinghonglin/data2story-skill/critic"><img src="https://agentmods.dev/badge/skills/qinghonglin/data2story-skill/critic/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/critic"><img src="https://agentmods.dev/badge/skills/qinghonglin/data2story-skill/critic.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 Output Handling · line 68 Output size or generation rate is not bounded. Unbounded output enables denial-of-service through resource exhaustion, log flooding, or context-window stuffing.Fix: Set explicit limits on output length, generation count, and rate. Use max_tokens and truncation to prevent unbounded output.
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.00157 | $0.04427 |
| Opus 5 | $0.00078 | $0.02214 |
| Sonnet 5 | $0.00031 | $0.00885 |
| Haiku 4.5 | $0.00016 | $0.00443 |
Grade A, and why
critic 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 10d 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 — 84 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Critic
Your job is quality review, like a demanding editor-in-chief. You read the finished article, score it against five fixed rubric dimensions, and hand back specific, minimal fixes for whatever falls short. You do not rewrite content yourself — you score and you send back.
This role exists because the pipeline otherwise has no quality gate: the Auditor only fixes layout, the Inspector only checks traceability. You are the only step that judges whether the article is actually good.
Setup
PROJECT_DIR= first argument.- Read
index.html(the finished article — read the prose, not just tags), plusverifier.json,analyst.json,editor.json,designer.json,detective.json. (verifier.jsonis produced byverify.pyat Stage 6.4, before the Critic, so the traceability index is available when you score.) - The rubric is
references/rubric.json— the 5 dimensions, the 1-7 scale anchored at 3, the score-gates, the global anti-leniency rules R1-R7, the per-dimensionsend_back_torole, and the ethos. Read it fully before scoring.
Step 1: Score each dimension (evidence-checked)
For each of the five dimensions (visual_design, narrative_pacing, data_method_transparency, claim_data_alignment, insight_value):
- Read what the article actually does for that dimension.
- Verify before scoring transparency & claim-data alignment: for each load-bearing claim/number, follow its
data-*lineage inverifier.jsonto the code line /data_table/ source URL and confirm it actually backs the claim (mirror how the project's judge works). A claim with no resolvable evidence cannot score above 3 on those two dimensions.- Reward the runnable coding verifier (transparency): beyond tracing provenance, check whether the reader can actually re-execute the statement. The in-page Inspector panel should let the reader open a load-bearing number and "run it yourself" — a computation snippet that re-executes in-browser and grades against the published output (stochastic ones graded "≈ within noise") — and a reproducible notebook should re-run the headline numbers from raw data and assert they match. A headline that is both traceable (
verifier.json) AND independently re-runnable clears thefive_plus_requiresbar fordata_method_transparency; provenance that is traceable-but-not-runnable (no working in-page run, no reproducible notebook) is weaker and should not score as high on that dimension. - Caveat-survival gate: the Auditor only checks that the page builds; you are the only step that checks whether material caveats reached the reader. Identify any MATERIAL limitation of the lead — one that could change the lead finding's direction or magnitude (a model assumption that biases the headline's own subject, an Analyst-flagged assumption, or a Detective
controversy/limitation bearing on the lead) — and confirm it survived into the VISIBLE prose, not just the JSONs. If such a caveat is present inanalyst.json/detective.json/editor.jsonbut is dropped fromindex.html, cut to a stray clause, or buried in a footnote, apply thematerial_caveat_survival_cap(capdata_method_transparencyandclaim_data_alignmentat 3) and send back to the Editor. Likewise, if a validation confirms a different granularity than the headline sells (e.g. per-event skill vs an aggregate/tournament figure) and the prose doesn't name that level gap, treat it as a claim_data_alignment failure.
- Reward the runnable coding verifier (transparency): beyond tracing provenance, check whether the reader can actually re-execute the statement. The in-page Inspector panel should let the reader open a load-bearing number and "run it yourself" — a computation snippet that re-executes in-browser and grades against the published output (stochastic ones graded "≈ within noise") — and a reproducible notebook should re-run the headline numbers from raw data and assert they match. A headline that is both traceable (
- Assign an INTEGER 1-7 per the scale +
score_gates+ rules R1-R7. Anchor at 3. Going to 5+ requires clearing the gate (≥3 concrete on-page evidence items AND a handled category-typical failure mode). Cite the concrete evidence you saw.
What ships with it
1 file 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.
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.
- 10d ago First seen · 84 lines · 157 tokens per session scan A e8c15a0528e4
critic is a skill published in the GitHub repository QinghongLin/data2story-skill (155 stars, last pushed 2mo ago), licensed MIT. It adds 157 tokens to every session and 4,427 once invoked, about $0.0008 per session on Opus 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.
Other skills, from other repositories
chdb-sql
Use when the user wants to run SQL — especially analytical SQL — on local files (parquet/csv/json), URLs, S3 paths, or remote databases (Postgres, MySQL, MongoDB, ClickHouse Cloud, Iceberg, Delta Lake) without setting up a server. Provides chDB — embedded ClickHouse SQL in Python with 1000+ functions, Session for…
wax
Swift framework guidance for Wax on-device memory/RAG. Use when writing Swift code with the public Memory facade, experimental PhotoMemory / VideoMemory, BuiltInMultimodalEmbeddings, embedding providers, retrieval modes, or hybrid search. For agent operators using the Wax MCP server tools, use the separate wax-mcp…
wax-memory-maintenance
Maintain the Wax memory store used by the Hermes wax-memory provider.
alterlab-paper-writer
Drafts and revises academic papers through a 12-agent pipeline with hardened LaTeX output (apa7 document class, justified text, table column-width formula, centered bilingual abstracts, standardized font stack, PDF compiled from LaTeX), supporting IMRaD, literature review, theoretical, case study, policy brief, and…
alterlab-molecular-dynamics
Runs and analyzes molecular dynamics simulations with OpenMM and MDAnalysis — setting up protein and small-molecule systems, assigning force fields, running energy minimization and production MD, and analyzing trajectories (RMSD, RMSF, contact maps, free energy surfaces). Use when simulating protein or ligand…
alterlab-timesfm
Zero-shot univariate time-series forecasting with Google's TimesFM foundation model, producing point forecasts and prediction intervals from CSV/DataFrame/array inputs, with a preflight system checker for RAM/GPU. Use to forecast any univariate series (sales, sensors, energy, vitals, weather) without training a custom…