Asd Ste100
danyuchn/asd-ste100-skill
A skill your agent uses when English text must be parsed without a human to resolve ambiguity — tool descriptions, error messages, inter-agent instructions, system prompts, status reports — and…
Name the piece — re-write the masthead (headline + standfirst + kicker), every section title, and every figure/photo/table caption to a research-driven titling standard, killing the AI-tell patterns…
$ npx skills add QinghongLin/data2story-skill --skill copywriter -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install QinghongLin/data2story-skill copywriter --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/QinghongLin/data2story-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/data2story-pro/copywriter .claude/skills/copywriter && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "copywriter" agent skill from https://github.com/QinghongLin/data2story-skill/tree/main/skills/data2story-pro/copywriter into .claude/skills/copywriter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "copywriter", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/QinghongLin/data2story-skill/tree/main/skills/data2story-pro/copywriterType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add QinghongLin/data2story-skill --skill copywriter -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install QinghongLin/data2story-skill copywriter --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/QinghongLin/data2story-skill.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/data2story-pro/copywriter .agents/skills/copywriter && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "copywriter" agent skill from https://github.com/QinghongLin/data2story-skill/tree/main/skills/data2story-pro/copywriter into .agents/skills/copywriter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "copywriter", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add QinghongLin/data2story-skill --skill copywriter -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install QinghongLin/data2story-skill copywriter --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/QinghongLin/data2story-skill.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/data2story-pro/copywriter .cursor/skills/copywriter && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "copywriter" agent skill from https://github.com/QinghongLin/data2story-skill/tree/main/skills/data2story-pro/copywriter into .cursor/skills/copywriter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "copywriter", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/QinghongLin/data2story-skill.git --path skills/data2story-pro/copywriter--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add QinghongLin/data2story-skill --skill copywriter -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install QinghongLin/data2story-skill copywriter --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/QinghongLin/data2story-skill.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/data2story-pro/copywriter .gemini/skills/copywriter && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "copywriter" agent skill from https://github.com/QinghongLin/data2story-skill/tree/main/skills/data2story-pro/copywriter into .gemini/skills/copywriter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "copywriter", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install QinghongLin/data2story-skill copywriterInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add QinghongLin/data2story-skill --skill copywriter -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/QinghongLin/data2story-skill.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/data2story-pro/copywriter .github/skills/copywriter && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "copywriter" agent skill from https://github.com/QinghongLin/data2story-skill/tree/main/skills/data2story-pro/copywriter into .github/skills/copywriter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "copywriter", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add QinghongLin/data2story-skill --skill copywriter -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install QinghongLin/data2story-skill copywriter --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/QinghongLin/data2story-skill.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/data2story-pro/copywriter .opencode/skills/copywriter && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "copywriter" agent skill from https://github.com/QinghongLin/data2story-skill/tree/main/skills/data2story-pro/copywriter into .opencode/skills/copywriter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "copywriter", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
copywriterName the piece — re-write the masthead (headline + standfirst + kicker), every section title, and every figure/photo/table caption to a research-driven titling standard, killing the AI-tell patterns…
Copywriter is an agent skill from QinghongLin/data2story-skill. Name the piece — re-write the masthead (headline + standfirst + kicker), every section title, and every figure/photo/table caption to a research-driven titling standard, killing the AI-tell patterns (the 'flat statement. flat counter-statement.' two-beat above all) a competent default falls into. Reads editor.md/json + analyst.json + the resolved topicprofile; writes copywriter.json — STRINGS ONLY (masthead{headline,standfirst,kicker}, items{edtxx:{title}, desxx:{caption}}), each backed by a real ana. Names…
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/schema.json`).
It sits in Writing & Content, covering Copywriting. The repository describes itself as: Data Journalist Agent: Transforming Data into Verifiable Multimodal Story. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 63a55c1. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteFrom allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Copywriter loads about 3.7k tokens when it runs, and up to ~5.6k if it reads all its reference files. Until then it costs about 195 tokens; SKILL.md has 1,684 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from QinghongLin/data2story-skill at commit 63a55c1, republished under its MIT licence (© QinghongLin). 1,684 words, ~3,725 tokens.
.claude/skills/copywriter/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.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.
PROJECT_DIR = first argument.SKILL_DIR = the directory containing this SKILL.md (.../skills/data2story-pro/copywriter).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.PROJECT_DIR/analyst.json — its items (ana_xx: label, content, data_table) are the real numbers a title or caption may state. Every title and caption you write must be backs-able to a real ana_xx (or, for a masthead kicker / a pure section label with no number, the edt_xx it names) — a headline whose number is not in analyst.json is fabrication, not naming.PROJECT_DIR/detective.json — for the shared topic_profile (is_computational / is_visual / tags) and controversy/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).PROJECT_DIR/designer.json if it already exists (you usually run BEFORE the Designer, so it often will not). When present, it tells you which des_xx are 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 per des_xx the Editor signalled, keyed by the finding it shows.PROJECT_DIR/copywriter.json (the strings — schema in references/schema.json).Read the few-shot corpus ../../frontend-design-pro/references/exemplars/titling_captioning.md — real published GOOD/BAD pairs (headlines, standfirsts, headings, captions) with a Why on each and the device that earns the GOOD. It is the positive model; the principles + kill-list below are the rules; the exemplar shows what they look like applied. Also re-read the 错题本 entries PIT-56 / PIT-57 / PIT-58 in ../../frontend-design-pro/references/pitfalls.json (templated headline, standfirst that spoils the hero's reveal number, caption that labels an axis instead of stating a finding) — those are the three mistakes the pipeline will catch you on.
The headline is the single most load-bearing line on the page. Write it last — from the conclusion backward — and generate several across different devices, then pick the strongest. Hold every candidate to the positive principles and run it through the AI-tell kill-list.
Positive headline principles
AI-tell kill-list (auto-reject or rewrite)
Device taxonomy (generate ACROSS devices for variety — don't ship four headings of the same shape) D1 flat verdict · D2 earned superlative (data-backed) · D3 surprising number / odds · D4 quantify ("Measuring…", "Mapping…") · D5 container ("An Atlas of…", "The Index of…") · D6 second-person imperative ("Swing the Election") · D7 self-challenge ("How Bad Is Your…?") · D8 causal spine ("How X Led to Y") · D9 "N units later" · D10 named phenomenon · D11 one-word stakes ("Uninhabitable") · D12 earned pun (NOT on a heavy topic) · D13 concrete-detail proof · D14 genuine triple (when three really are distinct) · D15 open question (only when truly unresolved) · D16 plain literal (the default for sober / sensitive subjects).
Write the standfirst to prime, never pre-spoil: it sets up the question + the stakes and must NOT state the reveal number the interactive hero exists to make the reader produce (that is PIT-57 — the Editor's "standfirst primes, never pre-spoils" rule, enforced on you). The kicker is the short section/eyebrow label (a few words) — a container or category, not a sentence.
For each edt_xx in editor.json, write a title that states that section's takeaway in the section's own voice — the most surprising thing the section adds, in a device different from its neighbours (vary across D1–D16 so AT8 never fires). A section whose only honest label is a category gets a plain D16/D5 label; never invent a finding to make a title sound punchier. The title backs the ana_xx whose finding it states (or the edt_xx it labels, for a pure category heading).
Captions are titles too — a caption that says "Figure 3: championship probabilities" or "the x-axis shows year" wastes the most-read line under a chart. Write each caption to state the finding, by visual kind:
../../dataviz-craft/references/annotation_layers.json (the chart's annotation layer) so the caption asserts and the annotation locates.Forbidden caption openers (the same AI-tells, caption-flavoured): "This chart/figure shows…", "The graph/visualization depicts…", "the x-axis / y-axis shows…", "is pictured / poses / looks on…" (wire-caption cliché), "may suggest a possible…" (hedge-stack). A caption that only labels the axes instead of stating the finding is PIT-58 and caps narrative_pacing at 3.
Every caption backs the real ana_xx it states a number from (a pure-illustration photo with no number backs the des_xx/edt_xx it sits in, and says so in its rationale).
copywriter.jsonWrite the strings only. Shape (full schema + field notes in references/schema.json):
{
"meta": { "role": "copywriter", "is_computational": true, "is_visual": true },
"masthead": {
"headline": "Every bookmaker has Argentina behind the model",
"standfirst": "We ran the 2026 field 100,000 times. Pick a side and watch the favourite emerge — then see who the money disagrees with.",
"kicker": "World Cup 2026 · The forecast",
"headline_device": "D3",
"headline_backs": "ana_01",
"rationale": "states the model-vs-market conflict as ONE spine (kills the AT1 two-beat 'Argentina is the favourite. No bookmaker agrees.'); number traces to ana_01"
},
"items": {
"edt_03": { "title": "How ten thousand simulations name a favourite", "device": "D8", "backs": "ana_01",
"rationale": "states the section's method-as-narrative; different device from its neighbours (no AT8)" },
"des_07": { "caption": "Argentina lead, but the gap is one upset wide", "subtitle": "Champion probability, 100k Monte-Carlo runs, as of 2026-06-18", "backs": "ana_01",
"rationale": "takeaway-title (conclusion, <10 words, active) + descriptive subtitle (metric/method/date); not 'championship probabilities'" }
}
}masthead.headline / standfirst / kicker — the three masthead strings the Programmer renders verbatim. headline_device ∈ D1–D16; headline_backs is the ana_xx whose number the headline states (or null for a number-free verdict that still traces to a finding's direction).items[edt_xx].title — the section title; device ∈ D1–D16; backs the ana_xx/edt_xx.items[des_xx].caption (+ optional subtitle for charts/tables) — the figure/photo/table caption; backs the ana_xx/des_xx.rationale (every entry) — one line: the device used + which AI-tell it avoids + why the number is honest.Naming, not editing — the boundary (do not cross it). You write masthead.*, items[*].title, items[*].caption/subtitle, and a rationale per entry — strings. You do NOT add a finding, change a number, introduce a data-* id, reorder anything, or write body prose. If a title needs a number the Analyst never computed, you have over-reached — pick a device that states what the data does say (or label the section plainly), never invent the number.
references/schema.json — full copywriter.json structure + field notes.../../frontend-design-pro/references/exemplars/titling_captioning.md — the few-shot GOOD/BAD corpus (T# headlines, S# standfirsts, K# headings, C# captions), each with a Why + cross-ref to PIT-56/57/58. Read it first.../../frontend-design-pro/references/pitfalls.json — the 错题本; PIT-56 (templated headline), PIT-57 (standfirst spoils the hero's reveal), PIT-58 (caption labels an axis, not a finding) are the entries that catch a weak title. The Auditor's check_15_titling_caption_quality greps for them.../references/topic_profile.json — the shared classifier that decides register (sober → plain literal D16; computational → surprising-number D3).../../dataviz-craft/references/annotation_layers.json — pair the chart caption's asserted takeaway with the chart's own annotation that locates the point.../editor/SKILL.md — the Editor's "standfirst primes, never pre-spoils" writing rule, which PIT-57 enforces on your standfirst.Done when copywriter.json carries a re-titled masthead (headline + standfirst + kicker), a title for every edt_xx, and a caption for every figure/photo/table des_xx — each on a real device, each backs-ed to a real ana_xx/edt_xx/des_xx, none tripping an AI-tell — and you have changed not one finding, number, id, or line of body prose.
© QinghongLin, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/data2story-pro/copywriter of QinghongLin/data2story-skill.
Open the folder on GitHubat commit 63a55c1
Copywriter next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Copywriter this skillQinghongLin/data2story-skill | 155 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Asd Ste100danyuchn/asd-ste100-skill | 4.3k | — | ~4.1k | Automated safety check: Pass | MIT | |
| AI Copywritermikiarlo3/ai-copywriter | 1.2k | — | ~12k | Automated safety check: Pass | MIT | |
| Brand Voice Guideluongnv89/claude-howto | 42k | — | ~609 | Automated safety check: Pass | MIT | |
| Ralph Copywritermuratcankoylan/ralph-wiggum-marketer | 778 | — | ~2.4k | Automated safety check: Pass | None | |
| Humanities Writing Companiontizzy916/humanities-writing-companion | 436 | — | ~3.4k | Automated safety check: Pass | CC-BY-NC-4.0 |
danyuchn/asd-ste100-skill
A skill your agent uses when English text must be parsed without a human to resolve ambiguity — tool descriptions, error messages, inter-agent instructions, system prompts, status reports — and…
mikiarlo3/ai-copywriter
Write copy that converts and doesn't sound like a robot. An agent skill from mikiarlo3/ai-copywriter.
luongnv89/claude-howto
Ensure all communication matches brand voice and tone guidelines. Use when creating marketing copy, customer communications, public-facing content, or when…
muratcankoylan/ralph-wiggum-marketer
A skill your agent uses when the user asks to "analyze my content", "learn my writing style", "research competitors", "find content angles", "improve my blog", "write like me", "embody my brand…
tizzy916/humanities-writing-companion
Help with humanities scholarly writing: sharpen research questions, map supplied readings, plan and draft arguments, review chapters, preserve authorial voice, and respond to reviewers.
crawfordxx/xiaoma-durex-copywriter
用杜蕾斯黄金期(2011-2017 环时互动)那套「双层语义 + 留白」的方法产出文案与海报。先识别用户意图并给 3-5 个方案供选,再出短文案(长文案可选)+ 五种比例配图。适用于借势热点、节日节气、产品卖点、课程/知识付费推广、自媒体标题与封面、品牌人格化运营。当用户说「写个文案」「借势热点」「节日海报」「想句…
QinghongLin/data2story-skill
Run sentence-level traceability verification on a Data2Story blog (verify.py - verifier.json), then emit the in-page Inspector panel (the reader-facing runnable verifier) + the verify/ artifacts…
QinghongLin/data2story-skill
Audit a generated Data2Story blog for build correctness across ALL modalities by ACTUALLY RENDERING it in a real headless browser (when available) — catching blank/0-width charts, broken/oversized…
QinghongLin/data2story-skill
Review a finished Data2Story blog against the 5 quality rubric dimensions (visualdesign, narrativepacing, datamethodtransparency, claimdataalignment, insightvalue), score each 1-7 with on-page…
QinghongLin/data2story-skill
Research external context for a dataset — domain background, history, related studies, and why this data matters.
QinghongLin/data2story-skill
Run sentence-level traceability verification on a blog, then generate viewer.html with interactive evidence panel.
QinghongLin/data2story-skill
A skill your agent uses to turn a dataset into a verifiable multimedia blog (a data story / data-driven article / interactive dashboard from a dataset).
Categories
Name the piece — re-write the masthead (headline + standfirst + kicker), every section title, and every figure/photo/table caption to a research-driven titling standard, killing the AI-tell patterns…. Copywriter is an agent skill from QinghongLin/data2story-skill. Name the piece — re-write the masthead (headline + standfirst + kicker), every section title, and every figure/photo/table caption to a research-driven titling standard, killing the AI-tell patterns (the 'flat statement.
Copywriter fits situations like: tasks that involve Copywriting.
Run `npx skills add QinghongLin/data2story-skill --skill copywriter -a claude-code`. Or copy the skill folder (skills/data2story-pro/copywriter in QinghongLin/data2story-skill) into .claude/skills/copywriter in your project. Claude Code loads it when a task matches its description.
Run `npx skills add QinghongLin/data2story-skill --skill copywriter -a codex`. Or copy the skill folder (skills/data2story-pro/copywriter in QinghongLin/data2story-skill) into .agents/skills/copywriter in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add QinghongLin/data2story-skill --skill copywriter -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/copywriter, .gemini/skills/copywriter, .github/skills/copywriter and .opencode/skills/copywriter in your project.
SKILL.md names no scripts, command-line tools or credentials: Copywriter is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Write.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Copywriter is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Copywriter: Asd Ste100 (danyuchn/asd-ste100-skill, 4.3k stars), AI Copywriter (mikiarlo3/ai-copywriter, 1.2k stars), Brand Voice Guide (luongnv89/claude-howto, 42k stars) and Ralph Copywriter (muratcankoylan/ralph-wiggum-marketer, 778 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
QinghongLin (a GitHub user) maintains it in QinghongLin/data2story-skill, which has 155 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on July 5, 2026.
Source: QinghongLin/data2story-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.