Data Storytelling
ynulihao/AgentSkillOS
Transform data into compelling narratives using visualization, context, and persuasive structure.
Scaffold a customer story page under src/pages/use-cases/customers/ from the CustomerStory module.
$ npx skills add microlinkhq/www --skill customer-story -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install microlinkhq/www customer-story --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/microlinkhq/www.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/customer-story .claude/skills/customer-story && 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 "customer-story" agent skill from https://github.com/microlinkhq/www/tree/master/.cursor/skills/customer-story into .claude/skills/customer-story/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customer-story", 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/microlinkhq/www/tree/master/.cursor/skills/customer-storyType 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 microlinkhq/www --skill customer-story -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install microlinkhq/www customer-story --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microlinkhq/www.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.cursor/skills/customer-story .agents/skills/customer-story && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "customer-story" agent skill from https://github.com/microlinkhq/www/tree/master/.cursor/skills/customer-story into .agents/skills/customer-story/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customer-story", 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 microlinkhq/www --skill customer-story -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install microlinkhq/www customer-story --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microlinkhq/www.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.cursor/skills/customer-story .cursor/skills/customer-story && 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 "customer-story" agent skill from https://github.com/microlinkhq/www/tree/master/.cursor/skills/customer-story into .cursor/skills/customer-story/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customer-story", 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/microlinkhq/www.git --path .cursor/skills/customer-story--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 microlinkhq/www --skill customer-story -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install microlinkhq/www customer-story --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microlinkhq/www.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.cursor/skills/customer-story .gemini/skills/customer-story && 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 "customer-story" agent skill from https://github.com/microlinkhq/www/tree/master/.cursor/skills/customer-story into .gemini/skills/customer-story/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customer-story", 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 microlinkhq/www customer-storyInstalls 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 microlinkhq/www --skill customer-story -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/microlinkhq/www.git skills-src && mkdir -p .github/skills && cp -r skills-src/.cursor/skills/customer-story .github/skills/customer-story && 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 "customer-story" agent skill from https://github.com/microlinkhq/www/tree/master/.cursor/skills/customer-story into .github/skills/customer-story/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customer-story", 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 microlinkhq/www --skill customer-story -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install microlinkhq/www customer-story --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microlinkhq/www.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.cursor/skills/customer-story .opencode/skills/customer-story && 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 "customer-story" agent skill from https://github.com/microlinkhq/www/tree/master/.cursor/skills/customer-story into .opencode/skills/customer-story/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customer-story", 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.
customer-storyScaffold a customer story page under src/pages/use-cases/customers/ from the CustomerStory module.
Customer Story is an agent skill from microlinkhq/www. Scaffold a customer story page under src/pages/use-cases/customers/ from the CustomerStory module.
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/accent-colors.md`, `references/cta-routing.md` and `references/template.md`).
It sits in Writing & Content, covering Storytelling. The repository describes itself as: AI-ready infrastructure for interacting with the web. Built on real browsers. Exposed through a single API. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e1a2833. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
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.
Customer Story loads about 1.6k tokens when it runs, and up to ~4.8k if it reads all its reference files. Until then it costs about 28 tokens; SKILL.md has 582 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 microlinkhq/www at commit e1a2833, republished under its MIT licence (© microlinkhq). 582 words, ~1,581 tokens.
.claude/skills/customer-story/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Build a customer page at src/pages/use-cases/customers/<slug>.js (route /use-cases/customers/<slug>).
Unified route. Customer stories live under
src/pages/use-cases/customers/, next to the use-case recipes insrc/pages/use-cases/. Customer pages still use the CustomerStory module (testimonial, flow diagram, thanks section) — this skill — while use-case recipes use the UseCaseStory module (see theuse-case-landingskill). On the shared/use-caseslisting, "Customer stories" is the first (default) tab, followed by one tab per product. The full list lives on the/use-cases/customershub. The old/customers,/customers/<slug>and/use-cases/<slug>URLs redirect to the new ones viavercel.json; build links withcustomerPath(slug)fromcustomers.js, never by hand.
src/components/patterns/CustomerStory/index.js — barrel exports.src/pages/use-cases/customers/luckynote.js — reference page. Mirror its structure..cursor/skills/customer-story/references/template.md — template with {{TOKEN}} placeholders..cursor/skills/customer-story/references/cta-routing.md — use-case → CTA href mapping.All primitives live in src/components/patterns/CustomerStory/. Import by name. Never re-declare locally.
| Export | Notes |
|---|---|
ACCENT | Shared accent object (text: 'link'). Imported, never defined locally. |
CUSTOMERS | Registry of all customer metadata (slug, name, blurb, icon, quote, author, role, avatar, initials). |
Section, SectionInner, Caption, Figure, FigureImage | Layout primitives. |
DashedGridOverlay | Decorative background. |
Eyebrow | Accent-aware label. Pass accent={ACCENT}. |
Testimonial | Props: accent, quote, author, role, company, initials, optional avatar, maxWidth. |
MoreCustomers | Filters out currentSlug. Self-omits when < 2 siblings. |
CtaSection | CTA panel. Uses colors.link for background tint internally. Props: accent, headlinePrefix, headlineAccent, body, href, label, optional mt. |
WhyCard | Props: accent, number, kicker, title, body. |
FlowDiagram | Props: accent, nodes array ({ label, sub, active? }). |
<Text as='p'> — uses Text defaults (fontSize: [1,1,2,2], lineHeight: 3).<Text as='h2'> — same base component.BodyText, no SubheadBase. Just Text with the appropriate as prop.The hero shows logo + company name (not a "Customer story" tag):
<Flex css={theme({ alignItems: 'center', gap: 2, pb: [3, 3, 4, 4] })}>
<img src='/images/clients/{{ICON}}' alt='' width='40' height='40'
css={theme({ display: 'block', borderRadius: 2, width: '40px', height: '40px' })}
style={{ objectFit: 'cover' }} decoding='async' />
<Text css={theme({ color: 'black', fontSize: 2, fontWeight: 'bold', lineHeight: 1 })}>
{{CUSTOMER_NAME}}
</Text>
</Flex>Hero (logo + name, h1, intro paragraph, ArrowLink CTA)
AboutCustomer (Eyebrow, h2, paragraphs, external link, Testimonial)
HowTheyUseIt (Eyebrow, h2, paragraphs, FlowDiagram or image)
WhyMicrolink (Eyebrow, h2, lead paragraph, 3× WhyCard)
CtaSection (shared)
MoreCustomers (shared)
ThanksSection (logo + acknowledgement)When adding a customer, append to src/components/patterns/CustomerStory/customers.js:
{
slug: '<slug>',
name: '<name>',
blurb: '<~10 words, period>',
icon: '/images/clients/<icon>',
category: '<product> API',
quote: '<short quote for index page>',
author: '<name>',
role: '<role>',
avatar: '/images/clients/<avatar>.jpeg',
initials: '<XX>'
}The unified /use-cases listing (src/pages/use-cases/index.js) is data-driven over
CUSTOMERS — the rotating hero, the "Trusted by innovative companies" logo bar, the
"Customer stories" tab and the /use-cases/customers hub all map over it. Appending here is
enough; you do not edit index.js per customer. The cards link to
/use-cases/customers/<slug> through customerPath(slug).
pink/secondary/pinky/pinkest accent — reserved for feature pages.<Text as='a' target='_blank' rel='noopener'>, NOT the repo Link component (which adds noreferrer, killing SEO backlink value).See how to integrate <product>. Must differ from bottom CTA label.<h1> must include scrollMarginTop: 4.<name>: <use case> (no brand suffix — Meta appends — Microlink).cdnUrl('banner/screenshot.jpeg').npx standard src/pages/use-cases/customers/<slug>.js.Ask one question at a time:
src/pages/use-cases/customers/ or with a use-case route (test/integration/use-cases/registry.js enforces it).references/cta-routing.md. Propose and confirm.customers.js.npx standard src/pages/use-cases/customers/<slug>.js — fix until clean.{{ — no placeholders remaining.customers.js.Read the file, identify what needs changing, run only relevant steps, re-lint.
© microlinkhq, 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 3 other files (references) in .cursor/skills/customer-story of microlinkhq/www.
Open the folder on GitHubat commit e1a2833
Customer Story 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 |
|---|---|---|---|---|---|---|
| Customer Story this skillmicrolinkhq/www | 142 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Data Storytellingynulihao/AgentSkillOS | 618 | 15 repos | ~2.8k | Automated safety check: Pass | None | |
| Chinese Novel Writing Systemleenbj/novel-creator-skill | 671 | — | ~3.9k | Automated safety check: Pass | None | |
| Chinese Novelist Chapter WriterPenglongHuang/chinese-novelist-skill | 3.3k | — | ~491 | Automated safety check: Warn | MIT | |
| Liu Run Style Business Column Writerliangdabiao/liurun-bookwriter-skills | 277 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Business Insight Essay Writerliangdabiao/liurun-bookwriter-skills | 277 | — | ~2.5k | Automated safety check: Pass | MIT |
ynulihao/AgentSkillOS
Transform data into compelling narratives using visualization, context, and persuasive structure.
leenbj/novel-creator-skill
Guides long-form Chinese novel writing from a rough idea through outlines, chapter drafts and quality gates, with file-based memory for a story meant to reach 300万字.
PenglongHuang/chinese-novelist-skill
Writes long Chinese novels chapter by chapter through guided questions, outlining, drafting with cliffhangers and automatic validation, with resumable projects.
liangdabiao/liurun-bookwriter-skills
Writes long-form Chinese business commentary in Liu Run's voice, using his eight writing principles, three structures, and SCQA logic patterns.
liangdabiao/liurun-bookwriter-skills
Drafts Chinese business-insight essays, short audio scripts and year-end speeches in a specific public commentator's rhythm, built from his books, talks and broadcasts.
ZCZHAO-1999/shakespeare-writing-studio
Produce publish-ready Chinese and English writing packages across WeChat articles, Medium/Substack essays, research notes, founder memos, op-eds, speeches, data storytelling, statistical graphics…
microlinkhq/www
Create or revise docs guides under src/content/docs/guides with runnable MDX examples.
microlinkhq/www
Create or improve use-case landing pages under src/pages/use-cases/ from the UseCaseStory module.
microlinkhq/www
Generate concise, user-facing changelog entries for Microlink by inspecting git commits across relevant repositories.
microlinkhq/www
Verify UI changes in microlink/www by driving the Gatsby dev server with agent-browser.
microlinkhq/www
Create or improve competitor alternative pages under src/pages/alternative/.
Categories
Scaffold a customer story page under src/pages/use-cases/customers/ from the CustomerStory module. Customer Story is an agent skill from microlinkhq/www. Scaffold a customer story page under src/pages/use-cases/customers/ from the CustomerStory module.
Customer Story fits situations like: tasks that involve Storytelling.
Run `npx skills add microlinkhq/www --skill customer-story -a claude-code`. Or copy the skill folder (.cursor/skills/customer-story in microlinkhq/www) into .claude/skills/customer-story in your project. Claude Code loads it when a task matches its description.
Run `npx skills add microlinkhq/www --skill customer-story -a codex`. Or copy the skill folder (.cursor/skills/customer-story in microlinkhq/www) into .agents/skills/customer-story 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 microlinkhq/www --skill customer-story -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/customer-story, .gemini/skills/customer-story, .github/skills/customer-story and .opencode/skills/customer-story in your project.
Going by SKILL.md and its folder, Customer Story needs the command-line tools its instructions call (npx). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. 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.
Customer Story is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.3k 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 3.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Customer Story: Data Storytelling (ynulihao/AgentSkillOS, 618 stars), Chinese Novel Writing System (leenbj/novel-creator-skill, 671 stars), Chinese Novelist Chapter Writer (PenglongHuang/chinese-novelist-skill, 3.3k stars) and Liu Run Style Business Column Writer (liangdabiao/liurun-bookwriter-skills, 277 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
microlinkhq (a GitHub organization) maintains it in microlinkhq/www, which has 142 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 9, 2026.
Source: microlinkhq/www on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.