Notion To Blog
wasp-lang/wasp
Transfer a blog post from Notion to the Wasp blog. An agent skill from wasp-lang/wasp.
Converts draft customer-story Markdown into Langfuse website MDX (Fumadocs), collects missing metadata and assets, wires meta.json and authors.
$ npx skills add langfuse/langfuse-docs --skill customer-story-setup -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install langfuse/langfuse-docs customer-story-setup --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/langfuse/langfuse-docs.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/customer-story-setup .claude/skills/customer-story-setup && 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-setup" agent skill from https://github.com/langfuse/langfuse-docs/tree/main/.agents/skills/customer-story-setup into .claude/skills/customer-story-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customer-story-setup", 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/langfuse/langfuse-docs/tree/main/.agents/skills/customer-story-setupType 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 langfuse/langfuse-docs --skill customer-story-setup -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install langfuse/langfuse-docs customer-story-setup --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/langfuse/langfuse-docs.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/customer-story-setup .agents/skills/customer-story-setup && 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-setup" agent skill from https://github.com/langfuse/langfuse-docs/tree/main/.agents/skills/customer-story-setup into .agents/skills/customer-story-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customer-story-setup", 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 langfuse/langfuse-docs --skill customer-story-setup -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install langfuse/langfuse-docs customer-story-setup --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/langfuse/langfuse-docs.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/customer-story-setup .cursor/skills/customer-story-setup && 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-setup" agent skill from https://github.com/langfuse/langfuse-docs/tree/main/.agents/skills/customer-story-setup into .cursor/skills/customer-story-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customer-story-setup", 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/langfuse/langfuse-docs.git --path .agents/skills/customer-story-setup--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 langfuse/langfuse-docs --skill customer-story-setup -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install langfuse/langfuse-docs customer-story-setup --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/langfuse/langfuse-docs.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/customer-story-setup .gemini/skills/customer-story-setup && 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-setup" agent skill from https://github.com/langfuse/langfuse-docs/tree/main/.agents/skills/customer-story-setup into .gemini/skills/customer-story-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customer-story-setup", 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 langfuse/langfuse-docs customer-story-setupInstalls 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 langfuse/langfuse-docs --skill customer-story-setup -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/langfuse/langfuse-docs.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/customer-story-setup .github/skills/customer-story-setup && 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-setup" agent skill from https://github.com/langfuse/langfuse-docs/tree/main/.agents/skills/customer-story-setup into .github/skills/customer-story-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customer-story-setup", 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 langfuse/langfuse-docs --skill customer-story-setup -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install langfuse/langfuse-docs customer-story-setup --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/langfuse/langfuse-docs.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/customer-story-setup .opencode/skills/customer-story-setup && 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-setup" agent skill from https://github.com/langfuse/langfuse-docs/tree/main/.agents/skills/customer-story-setup into .opencode/skills/customer-story-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customer-story-setup", 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-story-setupConverts draft customer-story Markdown into Langfuse website MDX (Fumadocs), collects missing metadata and assets, wires meta.json and authors.
Customer Story Setup is an agent skill from langfuse/langfuse-docs. Converts draft customer-story Markdown into Langfuse website MDX (Fumadocs), collects missing metadata and assets, wires meta.json and authors. Use when adding or converting a customer case study, user story, or /users page, or when the user mentions customer story setup, cresta/canva-style posts, or CustomerStoryCTA/BlogHeader for customers.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Writing & Content, covering Storytelling, Markdown and LLM observability. It works with Langfuse and Canva. The repository describes itself as: 🪢 Open source agent evals & observability: Trace, evaluate, and improve LLM applications with one open platform. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4c9f1f5. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml).
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.
Customer Story Setup loads about 2.4k tokens when it runs. Until then it costs about 91 tokens; SKILL.md has 731 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 langfuse/langfuse-docs at commit 4c9f1f5, republished under its MIT licence (© langfuse). 731 words, ~2,392 tokens.
.claude/skills/customer-story-setup/SKILL.md (or your agent's skills folder).Single source of truth: maintain this skill under
.agents/skills/customer-story-setup/only. Claude and Cursor load projected copies under.claude/skills/customer-story-setupand.cursor/skills/customer-story-setup.
Turns a plain Markdown draft into content/customers/<slug>.mdx in the
same pattern as content/customers/canva.mdx and cresta.mdx.
Do not guess. If any item below is missing from the user's draft or message, ask explicitly and wait for answers (or confirm defaults).
| Topic | Ask |
|---|---|
| Company name | Legal/marketing name for copy and quotes |
| Company website | Public URL for the [Company](https://...) link in About <Company> |
| Slug | Filename: <slug>.mdx (lowercase, hyphens), e.g. cresta -> cresta.mdx |
| Page title | H1 string for BlogHeader + YAML title (often "How <Company> ... with Langfuse") |
| Short description | YAML description + BlogHeader description (SEO/social; 1-2 sentences) |
| Publish date | YAML date + BlogHeader date (e.g. March 26, 2026) |
| OG image | Optional ogImage: path; if unset, leave empty like other stories |
authors={["..."]})| Topic | Ask |
|---|---|
| Byline author(s) | Who should appear under the title (keys from data/authors.json) |
| External / guest speaker | If not in authors.json: collect name, title, optional socials, and headshot path under public/images/people/ or public/images/customers/<slug>/, then add an entry to data/authors.json (see existing entries). Every authors key must resolve in authors.json. |
| Topic | Ask |
|---|---|
| Logos | Paths for customerLogo and customerLogoDark (light + dark mode), usually under public/images/customers/<slug>/ |
| Pull quote | customerQuote (short, for grid card) |
| Quote attribution | quoteAuthor, quoteRole, quoteCompany |
| Speaker headshot (optional) | quoteAuthorImage for card/SEO if you use the same as Canva |
| Show on /users | showInCustomerIndex: true | false |
Produce a numbered checklist for the user (and keep it in the PR description if useful):
public/images/customers/<slug>/<Frame fullWidth> around markdown images, e.g.  per site conventionssips -g pixelWidth -g pixelHeight <file> to get dimensions):<div className="flex justify-center"><Frame fullWidth className="w-1/2">...</Frame></div><div className="flex justify-center"><Frame fullWidth className="w-2/3">...</Frame></div><Frame fullWidth className="w-full">...</Frame> (no centering wrapper needed)If the draft says "screenshot here" without files, list placeholders in MDX with consistent paths so the user can drop files in later.
Ask whether to add sparse internal links. Default policy: only link major product concepts (match what we used on Cresta):
Do not pepper every noun with links. Use paths from llms-docs.txt /
available-internal-links rule so links resolve.
title, date, description, ogImage,
tag: customer-story, author (display string if needed), customerLogo,
customerLogoDark, optional quote fields, showInCustomerIndex.BlogHeader, CustomerQuote (if quote), ImpactChart (if
impact section), CustomerStoryCTA; use Frame for images (global in MDX).BlogHeader: title, description, customerLogo, authors, date;
optional image for hero.BlogHeader). Body uses
## and ###; do not skip levels.<CustomerQuote quote="..." name="..." role="..." company="..." />role / company with frontmatter so the byline reads "Name, Role at Company"rolew-1/2 centeredw-2/3 centeredw-full<ImpactChart items={[{ area, impact }, ...]} /> (optional)
then <CustomerStoryCTA />.Reference implementations: content/customers/canva.mdx,
content/customers/cresta.mdx.
content/customers/meta.json
"<slug>" to the pages array (with "index" first).sortCustomerStoriesByMetaOrder in
lib/sortCustomerStoriesByMeta.ts, which reads this list. Place the slug
where the card should appear (e.g. last in the list = bottom-right in a
2-column grid).Authors
data/authors.json (key must match BlogHeader
authors).Assets
public/images/customers/<slug>/.Users / adopters list
add-customer-to-user-list
so the Reference cell is [User Story](/users/<slug>).authors keys exist in data/authors.jsonmeta.json includes slug in desired order-) - the linter will do this anyway; better to do it upfrontAGENTS.md / documentation-pages.mdc: one H1 via BlogHeader, American English, accessible alt text---
title: "..."
date: ...
description: ...
ogImage:
tag: customer-story
author: ...
customerLogo: "/images/customers/<slug>/...-light.png"
customerLogoDark: "/images/customers/<slug>/...-dark.png"
customerQuote: "..."
quoteAuthor: "..."
quoteRole: "..."
quoteCompany: "..."
showInCustomerIndex: true
---© langfuse, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/customer-story-setup of langfuse/langfuse-docs.
Open the folder on GitHubat commit 4c9f1f5
Customer Story Setup 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 Setup this skilllangfuse/langfuse-docs | 247 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Notion To Blogwasp-lang/wasp | 19k | — | ~922 | Automated safety check: Pass | MIT | |
| AI Daily Newsgeekjourneyx/ai-daily-skill | 235 | — | ~2.3k | Automated safety check: Pass | None | |
| Insight Error Pagevercel/next.js | 143k | — | ~5.5k | Automated safety check: Pass | MIT | |
| Content Humanizerdigoal/blog | 8.6k | — | ~1.2k | Automated safety check: Pass | GPL-2.0 | |
| Blog AnalyzeAgriciDaniel/claude-blog | 2.3k | 1 repos | ~3.5k | Automated safety check: Pass | MIT |
wasp-lang/wasp
Transfer a blog post from Notion to the Wasp blog. An agent skill from wasp-lang/wasp.
geekjourneyx/ai-daily-skill
Fetches AI news from smol.ai RSS and generates structured markdown with intelligent summarization and categorization.
vercel/next.js
Write or audit an insight-kind error page for the Next.js dev overlay.
digoal/blog
分析一段内容或一个文件的"人味"(即像不像人类自然写出来的,AI 生成痕迹有多重),给出 0-100 量化打分,并在低于目标线(默认 80 分,用户可指定其他数值如90分)时在不改变原意的前提下改写到目标分数以上。触发条件:用户提到"人味"、"AI味"、"AI感"、"降AI率"、"去AI化"、"人性化改写"、"像人写的"、"过人工检测"、"过AI检测"、"让文章更自然"、"这段话是不是AI写的"…
AgriciDaniel/claude-blog
Audit and score blog posts on a 5-category 100-point scoring system covering content quality, SEO optimization, E-E-A-T signals, technical elements, and AI citation readiness.
cfug/dart.cn
Proofreads Markdown files against Google guidelines. An agent skill from cfug/dart.cn.
langfuse/langfuse-docs
Create a new Langfuse integration page in the langfuse-docs repo.
langfuse/langfuse-docs
Add or update a company in the Langfuse /users adopters table.
langfuse/langfuse-docs
Add a new team member to Langfuse's canonical team data and shared team table.
Converts draft customer-story Markdown into Langfuse website MDX (Fumadocs), collects missing metadata and assets, wires meta.json and authors. Customer Story Setup is an agent skill from langfuse/langfuse-docs.json and authors.
Customer Story Setup fits situations like: converting a customer case study; the user mentions customer story setup; cresta/canva-style posts; customerStoryCTA/BlogHeader for customers.
Run `npx skills add langfuse/langfuse-docs --skill customer-story-setup -a claude-code`. Or copy the skill folder (.agents/skills/customer-story-setup in langfuse/langfuse-docs) into .claude/skills/customer-story-setup in your project. Claude Code loads it when a task matches its description.
Run `npx skills add langfuse/langfuse-docs --skill customer-story-setup -a codex`. Or copy the skill folder (.agents/skills/customer-story-setup in langfuse/langfuse-docs) into .agents/skills/customer-story-setup 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 langfuse/langfuse-docs --skill customer-story-setup -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-setup, .gemini/skills/customer-story-setup, .github/skills/customer-story-setup and .opencode/skills/customer-story-setup in your project.
SKILL.md names no scripts, command-line tools or credentials: Customer Story Setup is instructions for the agent only.
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.
Customer Story Setup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Customer Story Setup: Notion To Blog (wasp-lang/wasp, 19k stars), AI Daily News (geekjourneyx/ai-daily-skill, 235 stars), Insight Error Page (vercel/next.js, 143k stars) and Content Humanizer (digoal/blog, 8.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
langfuse (a GitHub organization) maintains it in langfuse/langfuse-docs, which has 247 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 9, 2026.
Source: langfuse/langfuse-docs on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.