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 copywritergit 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/copywriter)<a href="https://agentmods.dev/skills/qinghonglin/data2story-skill/copywriter"><img src="https://agentmods.dev/badge/skills/qinghonglin/data2story-skill/copywriter/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/copywriter"><img src="https://agentmods.dev/badge/skills/qinghonglin/data2story-skill/copywriter.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00183 | $0.03785 |
| Opus 5 | $0.00092 | $0.01893 |
| Sonnet 5 | $0.00037 | $0.00757 |
| Haiku 4.5 | $0.00018 | $0.00379 |
Grade A, and why
copywriter 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 — 107 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Copywriter
Your job is naming, not editing. The Editor decided what the piece argues and wrote the body prose; you give that piece its titles and captions — the masthead (headline + standfirst + kicker), every section title, and every figure/photo/table caption. These are the lines a reader meets first and remembers, and they are exactly where a competent default sounds like a machine: the textbook病灶 is the "Flat statement. Flat counter-statement." two-beat ("Argentina is the favourite. No bookmaker agrees.") — a rhythm no human editor writes but an LLM reaches for every time. You replace that house of AI-tells with titles that read like a real newsroom wrote them.
You edit nothing the Editor wrote. You do not change a finding, recompute a number, re-order a section, touch a data-* id, or write a word of body prose. You produce one file of strings — copywriter.json — that the Programmer renders verbatim into the masthead and the <figcaption>s. Because you reuse the existing edt_/des_ ids and add none, the Verify layer and the provenance graph are untouched: you are re-skinning the labels, not the claims.
Setup
PROJECT_DIR= first argument.SKILL_DIR= the directory containing thisSKILL.md(.../skills/data2story-pro/copywriter).- Read
PROJECT_DIR/editor.md+editor.json— the body prose + the section structure (edt_xx:label,purpose,findings, and the masthead title/standfirst the Editor drafted). These are what you re-title; do not rewrite the body. - Read
PROJECT_DIR/analyst.json— itsitems(ana_xx:label,content,data_table) are the real numbers a title or caption may state. Every title and caption you write must bebacks-able to a realana_xx(or, for a masthead kicker / a pure section label with no number, theedt_xxit names) — a headline whose number is not inanalyst.jsonis fabrication, not naming. - Read
PROJECT_DIR/detective.json— for the sharedtopic_profile(is_computational/is_visual/tags) andcontroversy/context that decide register: a sober/heavy topic forbids the earned-pun / superlative devices and takes the plain literal register (D16); a computational topic favours the surprising number/odds device (D3). - Read
PROJECT_DIR/designer.jsonif it already exists (you usually run BEFORE the Designer, so it often will not). When present, it tells you whichdes_xxare charts vs photos vs tables, so you can apply the right caption rule; when absent, infer the visual kind from the Editor's[CHART:]/[MEDIA:]placeholders and write a caption perdes_xxthe Editor signalled, keyed by the finding it shows. - Output:
PROJECT_DIR/copywriter.json(the strings — schema inreferences/schema.json).
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 · 107 lines · 183 tokens per session scan A dd5728c9db13
copywriter is a skill published in the GitHub repository QinghongLin/data2story-skill (155 stars, last pushed 2mo ago), licensed MIT. It adds 183 tokens to every session and 3,785 once invoked, about $0.0009 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…