React Performance
affaan-m/ECC
React and Next.js performance optimization patterns adapted from Vercel Engineering's React Best Practices (https://github.com/vercel-labs/agent-skills).
Review React/Next.js code against the real vercel-react-best-practices skill, backlog the performance findings keyed to actual rule ids + impact tiers, rank the most over-subscribed tiers, then fix…
$ npx skills add ragnar-pwninskjold/tech-snacks --skill react-refactor-tournament -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ragnar-pwninskjold/tech-snacks react-refactor-tournament --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/ragnar-pwninskjold/tech-snacks.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/tech-snacks/skills/react-refactor-tournament .claude/skills/react-refactor-tournament && 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 "react-refactor-tournament" agent skill from https://github.com/ragnar-pwninskjold/tech-snacks/tree/main/plugins/tech-snacks/skills/react-refactor-tournament into .claude/skills/react-refactor-tournament/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-refactor-tournament", 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/ragnar-pwninskjold/tech-snacks/tree/main/plugins/tech-snacks/skills/react-refactor-tournamentType 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 ragnar-pwninskjold/tech-snacks --skill react-refactor-tournament -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ragnar-pwninskjold/tech-snacks react-refactor-tournament --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ragnar-pwninskjold/tech-snacks.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/tech-snacks/skills/react-refactor-tournament .agents/skills/react-refactor-tournament && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "react-refactor-tournament" agent skill from https://github.com/ragnar-pwninskjold/tech-snacks/tree/main/plugins/tech-snacks/skills/react-refactor-tournament into .agents/skills/react-refactor-tournament/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-refactor-tournament", 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 ragnar-pwninskjold/tech-snacks --skill react-refactor-tournament -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ragnar-pwninskjold/tech-snacks react-refactor-tournament --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ragnar-pwninskjold/tech-snacks.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/tech-snacks/skills/react-refactor-tournament .cursor/skills/react-refactor-tournament && 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 "react-refactor-tournament" agent skill from https://github.com/ragnar-pwninskjold/tech-snacks/tree/main/plugins/tech-snacks/skills/react-refactor-tournament into .cursor/skills/react-refactor-tournament/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-refactor-tournament", 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/ragnar-pwninskjold/tech-snacks.git --path plugins/tech-snacks/skills/react-refactor-tournament--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 ragnar-pwninskjold/tech-snacks --skill react-refactor-tournament -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ragnar-pwninskjold/tech-snacks react-refactor-tournament --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ragnar-pwninskjold/tech-snacks.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/tech-snacks/skills/react-refactor-tournament .gemini/skills/react-refactor-tournament && 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 "react-refactor-tournament" agent skill from https://github.com/ragnar-pwninskjold/tech-snacks/tree/main/plugins/tech-snacks/skills/react-refactor-tournament into .gemini/skills/react-refactor-tournament/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-refactor-tournament", 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 ragnar-pwninskjold/tech-snacks react-refactor-tournamentInstalls 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 ragnar-pwninskjold/tech-snacks --skill react-refactor-tournament -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ragnar-pwninskjold/tech-snacks.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/tech-snacks/skills/react-refactor-tournament .github/skills/react-refactor-tournament && 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 "react-refactor-tournament" agent skill from https://github.com/ragnar-pwninskjold/tech-snacks/tree/main/plugins/tech-snacks/skills/react-refactor-tournament into .github/skills/react-refactor-tournament/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-refactor-tournament", 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 ragnar-pwninskjold/tech-snacks --skill react-refactor-tournament -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ragnar-pwninskjold/tech-snacks react-refactor-tournament --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ragnar-pwninskjold/tech-snacks.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/tech-snacks/skills/react-refactor-tournament .opencode/skills/react-refactor-tournament && 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 "react-refactor-tournament" agent skill from https://github.com/ragnar-pwninskjold/tech-snacks/tree/main/plugins/tech-snacks/skills/react-refactor-tournament into .opencode/skills/react-refactor-tournament/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-refactor-tournament", 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.
react-refactor-tournamentReview React/Next.js code against the real vercel-react-best-practices skill, backlog the performance findings keyed to actual rule ids + impact tiers, rank the most over-subscribed tiers, then fix…
React Refactor Tournament is an agent skill from ragnar-pwninskjold/tech-snacks. Review React/Next.js code against the real vercel-react-best-practices skill, backlog the performance findings keyed to actual rule ids + impact tiers, rank the most over-subscribed tiers, then fix + test the top N in isolated worktrees. Use when the user wants to systematically harvest and fix React/Next.js PERFORMANCE refactors (waterfalls, bundle size, RSC fetching, re-renders, JS perf), or says "react refactor tournament", "find React performance refactors", "/react-refactor-tournament".
Its SKILL.md is about 1.3k 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 Development, covering Refactoring, React components and Git worktrees. It works with React, Next.js and Vercel. The repository describes itself as: A skill library for vibe coders that make cool stuff. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 2d9a73b. 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:
WorkflowBash(echo *)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, 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.
React Refactor Tournament loads about 1.3k tokens when it runs. Until then it costs about 131 tokens; SKILL.md has 614 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 ragnar-pwninskjold/tech-snacks at commit 2d9a73b, republished under its MIT licence (© ragnar-pwninskjold). 614 words, ~1,278 tokens.
.claude/skills/react-refactor-tournament/SKILL.md (or your agent's skills folder).Harvest React/Next.js performance refactor candidates straight from the
vercel-react-best-practices skill, persist them as a tracked backlog keyed to the skill's real
rule ids and impact tiers, rank the most contested tiers, then auto-fix the worst N (each in an
isolated git worktree, with tests, committed but not pushed). This runs a bundled dynamic
workflow that fans out skill-backed reviewers in parallel, then ranks and fixes under a hard
500k-output-token cap.
It only proposes and fixes on isolated worktree branches — it never pushes or merges, and it
refuses to run at all if the vercel-react-best-practices skill isn't installed (no hand-written
stand-in).
This skill drives Claude Code's dynamic workflows feature. Before running, confirm:
/config → Dynamic workflows, or disableWorkflows not set,
and CLAUDE_CODE_DISABLE_WORKFLOWS unset).vercel-react-best-practices skill is installed (project or user scope, .claude/skills
or .agents/skills). The workflow's first phase hard-checks this and aborts with an actionable
message if it's missing — do not try to work around it.If workflows are disabled, the Workflow tool call below will fail. If it does, tell the user to
enable Dynamic workflows in /config and re-run — do not fall back to doing the review inline
(the whole point is the parallel skill-backed harness + token cap).
The orchestration script ships inside this plugin. Resolve its absolute path now — this works whether the plugin is installed at the personal, project, or plugin level, and regardless of the current working directory:
echo "${CLAUDE_SKILL_DIR}/../../workflows/react-refactor-tournament.workflow.js"Use the path printed above as the scriptPath argument. Do not retype or guess it.
Determine the workflow args before launching:
repoPath (optional): absolute path to the repo root to review. Default to the current
project root (${CLAUDE_PROJECT_DIR} or the cwd) unless the user named a different repo.n (optional, default 3): how many top-ranked candidates the fix loop processes.
n=0 ranks only and skips the fix loop entirely.scope (optional): a glob/dir hint to constrain the review (e.g. src/components/dashboard).
Omit to auto-detect the React component areas.If repoPath is ambiguous, ask the user once. Otherwise proceed with the current project.
Call the Workflow tool with:
scriptPath: the absolute path resolved above.args: an object, e.g. { "n": 3 }, { "n": 0 } for rank-only, or
{ "n": 3, "scope": "src/components", "repoPath": "/abs/path/to/repo" }.The run executes in the background across these phases:
vercel-react-best-practices skill install path; abort if missing.async-parallel, bundle-barrel-imports, …), with severity = the rule's impact: tier..pro-brown/refactors/BACKLOG.{json,md}.n=0) — fix the top N in isolated worktrees, write tests where feasible,
and commit each (no push, no merge).Watch progress with /workflows. When it finishes, present the ranking + backlog paths to the
user. Fixes live on isolated worktree branches — point the user at git worktree list /
git branch to review, and let them merge/PR. Do not push or merge on their behalf.
A candidate qualifies only if it is a genuine violation of a specific vercel-react-best-practices
rule, pinned to a real file:line, with ruleId taken from the skill (never invented) and
severity taken from that rule's static impact:. Generic React hygiene the skill doesn't cover
(naming, alt text, design-system nits) does not qualify. Quality over quantity — a clean
codebase reporting zero candidates is a valid result.
© ragnar-pwninskjold, 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 plugins/tech-snacks/skills/react-refactor-tournament of ragnar-pwninskjold/tech-snacks.
Open the folder on GitHubat commit 2d9a73b
React Refactor Tournament 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 |
|---|---|---|---|---|---|---|
| React Refactor Tournament this skillragnar-pwninskjold/tech-snacks | 137 | — | ~1.3k | Automated safety check: Pass | MIT | |
| React Performanceaffaan-m/ECC | 276k | 1 repos | ~4.5k | Automated safety check: Pass | MIT | |
| Vercel React Best Practicessanity-io/sanity | 6.4k | 129 repos | ~1.6k | Automated safety check: Pass | MIT | |
| React Best Practicesryokun6/ryos | 1.3k | — | ~2k | Automated safety check: Pass | MIT | |
| Vercel React Best Practicesgambitph/Stackable | 351 | — | ~2k | Automated safety check: Pass | MIT | |
| React Best Practicesmajiayu000/spellbook | 287 | — | ~1.1k | Automated safety check: Pass | MIT |
affaan-m/ECC
React and Next.js performance optimization patterns adapted from Vercel Engineering's React Best Practices (https://github.com/vercel-labs/agent-skills).
sanity-io/sanity
React and Next.js performance optimization guidelines from Vercel Engineering.
ryokun6/ryos
React performance optimization guidelines from Vercel Engineering (vercel-labs/agent-skills).
gambitph/Stackable
React performance optimization guidelines from Vercel Engineering.
majiayu000/spellbook
React and Next.js performance playbook distilled from Vercel Engineering guidance.
shapeshift/web
Comprehensive React and Next.js performance optimization guide with 40+ rules for eliminating waterfalls, optimizing bundles, and improving rendering.
ragnar-pwninskjold/tech-snacks
A skill your agent uses when translating a PRD, feature spec, or raw product idea into screen-level prompts for web UX generators (Google Stitch, Figma AI, Pencil.dev, Claude Design, v0, or similar).
ragnar-pwninskjold/tech-snacks
A skill your agent uses when the user wants to create, draft, or scaffold a CLAUDE.md (or AGENTS.md) file for their project.
ragnar-pwninskjold/tech-snacks
A skill your agent uses when user provides a URL and wants to replicate or clone a website's UI, design, or visual style for their own product.
ragnar-pwninskjold/tech-snacks
Mine recent Claude Code sessions for non-obvious, multi-file CLAUDE.md candidates, adversarially verify them, and propose paste-ready additions.
ragnar-pwninskjold/tech-snacks
A skill your agent uses when the user wants a terse, opinionated, research-backed answer to a "what tech/tools/stack do I need for X" question, or asks how to approach building something.
ragnar-pwninskjold/tech-snacks
A skill your agent uses when the user hands you a vague or half-formed feature ask and wants it turned into a lightweight PRD, or asks to "write a PRD", "spec this feature", "flesh this out", or…
Categories
Review React/Next.js code against the real vercel-react-best-practices skill, backlog the performance findings keyed to actual rule ids + impact tiers, rank the most over-subscribed tiers, then fix…. React Refactor Tournament is an agent skill from ragnar-pwninskjold/tech-snacks.js code against the real vercel-react-best-practices skill, backlog the performance findings keyed to actual rule ids + impact tiers, rank the most over-subscribed tiers, then fix + test the top N in isolated worktrees.
React Refactor Tournament fits situations like: the user wants to systematically harvest and fix React/Next.js PERFORMANCE refactors (waterfalls; says react refactor tournament; find React performance refactors; /react-refactor-tournament.
Run `npx skills add ragnar-pwninskjold/tech-snacks --skill react-refactor-tournament -a claude-code`. Or copy the skill folder (plugins/tech-snacks/skills/react-refactor-tournament in ragnar-pwninskjold/tech-snacks) into .claude/skills/react-refactor-tournament in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ragnar-pwninskjold/tech-snacks --skill react-refactor-tournament -a codex`. Or copy the skill folder (plugins/tech-snacks/skills/react-refactor-tournament in ragnar-pwninskjold/tech-snacks) into .agents/skills/react-refactor-tournament 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 ragnar-pwninskjold/tech-snacks --skill react-refactor-tournament -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/react-refactor-tournament, .gemini/skills/react-refactor-tournament, .github/skills/react-refactor-tournament and .opencode/skills/react-refactor-tournament in your project.
Going by SKILL.md and its folder, React Refactor Tournament needs the command-line tools its instructions call (git). Its frontmatter pre-approves these tools: Workflow, Bash(echo *).
SKILL.md contains no URLs. Its commands use git, 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.
React Refactor Tournament 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.3k tokens (SKILL.md is roughly 5.1k 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 React Refactor Tournament: React Performance (affaan-m/ECC, 276k stars), Vercel React Best Practices (sanity-io/sanity, 6.4k stars), React Best Practices (ryokun6/ryos, 1.3k stars) and Vercel React Best Practices (gambitph/Stackable, 351 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ragnar-pwninskjold (a GitHub user) maintains it in ragnar-pwninskjold/tech-snacks, which has 137 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on August 18, 2026.
Source: ragnar-pwninskjold/tech-snacks on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.