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.5 | $0.00063 | $0.01771 |
| Sonnet 5.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 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 — 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.
- 2mo ago First seen · 84 lines · 157 tokens per session scan A e8c15a0528e4
critic is a skill published in the GitHub repository QinghongLin/data2story-skill (161 stars, last pushed 4mo ago), licensed MIT. It adds 157 tokens to every session and 4,427 once invoked, about $0.0006 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.
critic compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| criticQinghongLin/data2story-skill | Skill | 161 | 4mo ago | MIT | A | 157 | 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 |