Feature Sliced Design
feature-sliced/skills
Official Feature-Sliced Design (FSD) v2.1 skill for applying the methodology to frontend projects.
Set up Lingui in a React framework. An agent skill from B0und/WikiSpeedrun.
$ npx skills add B0und/WikiSpeedrun --skill lingui-framework-setup -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install B0und/WikiSpeedrun lingui-framework-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/B0und/WikiSpeedrun.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/lingui-framework-setup .claude/skills/lingui-framework-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 "lingui-framework-setup" agent skill from https://github.com/B0und/WikiSpeedrun/tree/main/.agents/skills/lingui-framework-setup into .claude/skills/lingui-framework-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lingui-framework-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/B0und/WikiSpeedrun/tree/main/.agents/skills/lingui-framework-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 B0und/WikiSpeedrun --skill lingui-framework-setup -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install B0und/WikiSpeedrun lingui-framework-setup --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/B0und/WikiSpeedrun.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/lingui-framework-setup .agents/skills/lingui-framework-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 "lingui-framework-setup" agent skill from https://github.com/B0und/WikiSpeedrun/tree/main/.agents/skills/lingui-framework-setup into .agents/skills/lingui-framework-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lingui-framework-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 B0und/WikiSpeedrun --skill lingui-framework-setup -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install B0und/WikiSpeedrun lingui-framework-setup --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/B0und/WikiSpeedrun.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/lingui-framework-setup .cursor/skills/lingui-framework-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 "lingui-framework-setup" agent skill from https://github.com/B0und/WikiSpeedrun/tree/main/.agents/skills/lingui-framework-setup into .cursor/skills/lingui-framework-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lingui-framework-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/B0und/WikiSpeedrun.git --path .agents/skills/lingui-framework-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 B0und/WikiSpeedrun --skill lingui-framework-setup -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install B0und/WikiSpeedrun lingui-framework-setup --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/B0und/WikiSpeedrun.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/lingui-framework-setup .gemini/skills/lingui-framework-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 "lingui-framework-setup" agent skill from https://github.com/B0und/WikiSpeedrun/tree/main/.agents/skills/lingui-framework-setup into .gemini/skills/lingui-framework-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lingui-framework-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 B0und/WikiSpeedrun lingui-framework-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 B0und/WikiSpeedrun --skill lingui-framework-setup -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/B0und/WikiSpeedrun.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/lingui-framework-setup .github/skills/lingui-framework-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 "lingui-framework-setup" agent skill from https://github.com/B0und/WikiSpeedrun/tree/main/.agents/skills/lingui-framework-setup into .github/skills/lingui-framework-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lingui-framework-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 B0und/WikiSpeedrun --skill lingui-framework-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 B0und/WikiSpeedrun lingui-framework-setup --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/B0und/WikiSpeedrun.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/lingui-framework-setup .opencode/skills/lingui-framework-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 "lingui-framework-setup" agent skill from https://github.com/B0und/WikiSpeedrun/tree/main/.agents/skills/lingui-framework-setup into .opencode/skills/lingui-framework-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lingui-framework-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.
lingui-framework-setupSet up Lingui in a React framework. An agent skill from B0und/WikiSpeedrun.
Lingui Framework Setup is an agent skill from B0und/WikiSpeedrun. Set up Lingui in a React framework. Use when adding Lingui to a Next.js App Router, Vite, React Router 7, Remix, or TanStack Start project, when wiring locale detection, locale-prefixed URLs, or SSR locale resolution, or when a working setup breaks after a framework or build-tool upgrade.
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/nextjs-app-router.md`, `references/react-router-remix.md` and `references/tanstack-start.md`).
It sits in Frontend & Design. It works with React, TanStack, Next.js and Vite. The repository describes itself as: Wikipedia Speedrun Game. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit a03d655. 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:
npxnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx and npm, 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.
Lingui Framework Setup loads about 1.9k tokens when it runs, and up to ~15k if it reads all its reference files. Until then it costs about 78 tokens; SKILL.md has 853 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 B0und/WikiSpeedrun at commit a03d655, republished under its MIT licence (© B0und). 853 words, ~1,895 tokens.
.claude/skills/lingui-framework-setup/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Correct Lingui setup is framework-shaped: what works in a Vite SPA breaks in React Server Components, and a module-level i18n singleton that is fine in the browser bleeds locales across requests under SSR. This skill routes to a framework-native recipe instead of a generic I18nProvider answer.
Work in this order: detect the stack → apply the common steps → follow the framework reference → run the verification sequence.
Read package.json and the build config before recommending anything. Never guess the compiler — the macro transform silently does nothing when wired into the wrong one.
| Signal | Stack | Reference |
|---|---|---|
next in deps, app/ or src/app/ with layout.tsx | Next.js App Router | nextjs-app-router.md |
next in deps, pages/ with _app.tsx, no app/ | Next.js Pages Router | Supported by Lingui, brief notes in nextjs-app-router.md |
@tanstack/react-start in deps | TanStack Start (SSR) | tanstack-start.md |
@react-router/dev in devDeps + react-router.config.* | React Router 7 framework mode (SSR) | react-router-remix.md |
@remix-run/dev ≥ 2.7 in devDeps + vite | Remix v2 (Vite build, SSR) | react-router-remix.md |
vite + react, none of the above | Vite SPA (incl. declarative React Router, TanStack Router) | vite-spa.md |
Compiler detection (decides which macro-transform package to install):
| Signal | Compiler | Macro transform |
|---|---|---|
@vitejs/plugin-react-swc | SWC | @lingui/swc-plugin (pin exactly — see the swc-plugin-compatibility skill) |
@vitejs/plugin-react ^5 or lower | Babel | @lingui/babel-plugin-lingui-macro via the plugin's babel option |
@vitejs/plugin-react ^6+, Vite 8 | Babel, standalone pass | v6 removed the babel option — run the macro as its own pass: @rolldown/plugin-babel + linguiTransformerBabelPreset(). Keeps the stock React plugin |
@vitejs/plugin-react ^6+, Vite ≤ 7 | Babel, standalone pass | Same, via vite-plugin-babel (no Rolldown). Switching to @vitejs/plugin-react-swc also works, at the cost of an exact pin |
Next.js, no .babelrc | SWC | @lingui/swc-plugin via experimental.swcPlugins |
Next.js with .babelrc | Babel | @lingui/babel-plugin-lingui-macro in .babelrc (a Babel config disables Next's SWC) |
One more distinction that changes everything: react-router in deps without @react-router/dev is a declarative SPA (<Routes> in JSX) — that is the Vite SPA reference, not the framework-mode one. Route-module loader/+types code written into a declarative SPA is dead on arrival.
Version gate. Lingui 6 is current: ESM-only, requires Node ≥ 22.19 (or ≥ 24). Install @lingui/core@^6 @lingui/react@^6 and dev @lingui/cli@^6. If the project cannot meet the Node requirement, pin every @lingui/* package to ^5 — do not mix majors. Do not install @lingui/macro: since v5 the macros live at @lingui/react/macro and @lingui/core/macro.
Per-stack extras (details in each reference):
| Stack | Extra runtime | Extra dev |
|---|---|---|
| Next.js App Router | — | @lingui/swc-plugin (exact pin) |
| Vite SPA | @lingui/detect-locale | @lingui/vite-plugin + transform plugin per compiler |
| React Router 7 / Remix | — | @lingui/vite-plugin, @lingui/format-po, transform plugin |
| TanStack Start | — | @lingui/vite-plugin, transform plugin |
@lingui/detect-locale is browser-only (navigator, localStorage, window.location). Never install it on an SSR stack — it throws on the server or desyncs hydration; SSR stacks resolve locale from the request (cookie / Accept-Language) instead.
Config and catalogs. Create lingui.config.ts with sourceLocale, locales, and one catalogs entry; the lingui-best-practices skill owns catalog hygiene (build-script wiring, gitignore rules, CI drift check) and the single-sourced locale module (locales.ts with resolveLocale, getDirection, localeDisplayName) — reuse both, do not re-derive them.
Two catalog-loading models. On Vite-based stacks, @lingui/vite-plugin compiles .po on import — await import('./locales/en/messages.po') just works, there are no compiled artifacts to script or gitignore. Next.js has no Vite pipeline: run lingui compile prepended to dev/build scripts and import the compiled catalogs (@lingui/loader is webpack-only and Turbopack is the Next 15/16 default, so a loader-based setup is a trap).
Read the matching reference file fully before editing the project. Every reference follows the same section contract, in order:
packages → build-tool integration → lingui.config → locale resolution → provider/layout wiring → routing strategies → language switcher → gotchas → verification
If the project needs locale-prefixed URLs, every reference offers the same three strategies — unprefixed source locale, all locales prefixed, or no URL locale (cookie/storage only). Restructuring routes is invasive: ask the user which strategy they want before moving files.
Run in this order; each step must pass before the next:
npx lingui extract --clean # catalogs regenerate; count matches expectations
npx lingui compile # only on stacks with compiled catalogs (Next.js)
npx tsc --noEmit # types resolve, incl. catalog imports
npm run build # macro wiring errors surface hereThen prove the transform ran. A green build does not: a mis-wired macro transform is silently a no-op and the app ships in the source language. Translate one string in a non-source catalog, run the app in that locale, and confirm the translation reaches the browser (each reference gives the stack's exact check — curl the server-rendered HTML on SSR stacks, hard-load a deep link on the SPA). The setup is done when you have seen a translated string, not when the build is green.
Raw untranslated text at that point is a compiler wiring problem — wrong plugin, bare-string SWC entry, or the @vitejs/plugin-react@6 babel trap; see the swc-plugin-compatibility skill.
Another stack (a new meta-framework, a new build tool) costs two edits: one row in the Step 1 detection table, and one file under references/ following the Step 3 section contract. Framework-specific facts go in the reference; anything true of every stack — the version gate, the two catalog-loading models, the SSR detect-locale rule — stays here, stated once. Every non-obvious rule carries a one-sentence why.
© B0und, 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 4 other files (references) in .agents/skills/lingui-framework-setup of B0und/WikiSpeedrun.
Open the folder on GitHubat commit a03d655
Lingui Framework 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 |
|---|---|---|---|---|---|---|
| Lingui Framework Setup this skillB0und/WikiSpeedrun | 133 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Feature Sliced Designfeature-sliced/skills | 109 | — | ~5.5k | Automated safety check: Pass | None | |
| Reactericrisco/rsc-harness | 156 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Cometchat React V7 Patternscometchat/cometchat-skills | 129 | — | ~1.2k | Automated safety check: Notes | MIT | |
| Workos Widgetsusenotra/notra | 255 | — | ~2k | Automated safety check: Pass | AGPL-3.0 | |
| React Router Developmentremix-run/react-router | 57k | 1 repos | ~1.5k | Automated safety check: Pass | MIT |
feature-sliced/skills
Official Feature-Sliced Design (FSD) v2.1 skill for applying the methodology to frontend projects.
ericrisco/rsc-harness
A skill your agent uses when building or reviewing a client-side React SPA bundled by Vite (React 19.2): components, where state lives, hooks, server data fetching, client routing, re-render and…
cometchat/cometchat-skills
Framework wiring for the React v7 UI Kit across Vite, Create React App, Next.js, React Router (incl.
usenotra/notra
A skill your agent uses when the user is implementing, embedding, or debugging a WorkOS Widget — specifically the User Management, User Profile, Admin Portal SSO Connection, or Admin Portal Domain…
remix-run/react-router
Guides work on React Router apps by first identifying whether the app uses Framework, Data or Declarative mode, then loading the matching reference and the installed package docs.
chakra-ui/chakra-ui
Builds responsive, accessible Chakra UI v3 components and layouts, sets up Chakra in new or existing projects, and designs themes with tokens, semantic tokens and recipes.
B0und/WikiSpeedrun
Implement internationalization with Lingui in React and JavaScript applications.
B0und/WikiSpeedrun
Audit a Lingui project for hardcoded user-facing strings that were never wrapped in macros.
B0und/WikiSpeedrun
Migrate i18next/react-i18next projects to Lingui. An agent skill from B0und/WikiSpeedrun.
B0und/WikiSpeedrun
Add translator comments to Lingui messages so translations are accurate.
B0und/WikiSpeedrun
Diagnose and fix Lingui SWC plugin compatibility errors with Next.js, Vite, Rspack, or other SWC runtimes.
Works with
Categories
Set up Lingui in a React framework. An agent skill from B0und/WikiSpeedrun. Lingui Framework Setup is an agent skill from B0und/WikiSpeedrun. Set up Lingui in a React framework.
Lingui Framework Setup fits situations like: adding Lingui to a Next.js App Router; tanStack Start project; wiring locale detection; locale-prefixed URLs.
Run `npx skills add B0und/WikiSpeedrun --skill lingui-framework-setup -a claude-code`. Or copy the skill folder (.agents/skills/lingui-framework-setup in B0und/WikiSpeedrun) into .claude/skills/lingui-framework-setup in your project. Claude Code loads it when a task matches its description.
Run `npx skills add B0und/WikiSpeedrun --skill lingui-framework-setup -a codex`. Or copy the skill folder (.agents/skills/lingui-framework-setup in B0und/WikiSpeedrun) into .agents/skills/lingui-framework-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 B0und/WikiSpeedrun --skill lingui-framework-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/lingui-framework-setup, .gemini/skills/lingui-framework-setup, .github/skills/lingui-framework-setup and .opencode/skills/lingui-framework-setup in your project.
Going by SKILL.md and its folder, Lingui Framework Setup needs the command-line tools its instructions call (npx and npm). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx and npm, 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.
Lingui Framework 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 1.9k tokens (SKILL.md is roughly 7.6k 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 13k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Lingui Framework Setup: Feature Sliced Design (feature-sliced/skills, 109 stars), React (ericrisco/rsc-harness, 156 stars), Cometchat React V7 Patterns (cometchat/cometchat-skills, 129 stars) and Workos Widgets (usenotra/notra, 255 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
B0und (a GitHub user) maintains it in B0und/WikiSpeedrun, which has 133 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on September 19, 2026.
Source: B0und/WikiSpeedrun on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.