Code Review Checklist
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
Make a studio's game run faster with a measured loop, and keep only what really helped.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill perf -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins perf --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/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/homie-rocks/homie/skills/perf .claude/skills/perf && 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 "perf" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/homie-rocks/homie/skills/perf into .claude/skills/perf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf", 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/hashgraph-online/awesome-codex-plugins/tree/main/plugins/homie-rocks/homie/skills/perfType 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 hashgraph-online/awesome-codex-plugins --skill perf -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins perf --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/homie-rocks/homie/skills/perf .agents/skills/perf && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "perf" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/homie-rocks/homie/skills/perf into .agents/skills/perf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf", 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 hashgraph-online/awesome-codex-plugins --skill perf -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins perf --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/homie-rocks/homie/skills/perf .cursor/skills/perf && 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 "perf" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/homie-rocks/homie/skills/perf into .cursor/skills/perf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf", 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/hashgraph-online/awesome-codex-plugins.git --path plugins/homie-rocks/homie/skills/perf--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 hashgraph-online/awesome-codex-plugins --skill perf -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins perf --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/homie-rocks/homie/skills/perf .gemini/skills/perf && 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 "perf" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/homie-rocks/homie/skills/perf into .gemini/skills/perf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf", 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 hashgraph-online/awesome-codex-plugins perfInstalls 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 hashgraph-online/awesome-codex-plugins --skill perf -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/homie-rocks/homie/skills/perf .github/skills/perf && 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 "perf" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/homie-rocks/homie/skills/perf into .github/skills/perf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf", 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 hashgraph-online/awesome-codex-plugins --skill perf -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins perf --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/homie-rocks/homie/skills/perf .opencode/skills/perf && 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 "perf" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/homie-rocks/homie/skills/perf into .opencode/skills/perf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf", 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.
perfMake a studio's game run faster with a measured loop, and keep only what really helped.
Perf is an agent skill from hashgraph-online/awesome-codex-plugins. Make a studio's game run faster with a measured loop, and keep only what really helped. Measure a baseline on a computer and an emulated phone in real Chrome on the GPU (frame times p50/p95/long frames, the game's JavaScript and the main thread per frame, time to the first meaningful frame, to the game's first frame and to playable, what it downloads, the heap, netplay messages a second, the host against a replica), profile it to name the hot functions and the biggest files, then try one small change at a time…
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts and reference files (for example `references/METHOD.md`).
It works with JavaScript. The repository describes itself as: A curated list of awesome OpenAI Codex / ChatGPT plugins, skills, and resources. The 1 Codex Marketplace. See live plugins at: https://hol.org/plugins/best-codex-plugins. The licence is Apache-2.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9e7b281. 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.
Ships 3 files in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodenpmnpxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm and 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.
Perf loads about 3.2k tokens when it runs, and up to ~5.4k if it reads all its reference files. Until then it costs about 256 tokens; SKILL.md has 1,843 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); the scripts in this folder are not scanned.
The full file from hashgraph-online/awesome-codex-plugins at commit 9e7b281, republished under its Apache-2.0 licence (© hashgraph-online). 1,843 words, ~3,190 tokens.
.claude/skills/perf/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.The question is never "does it feel faster". It is: is this build measurably better than the one before it, beyond the noise, without looking or playing any differently, and does it still work? Every number here comes from a real Chrome on this computer's GPU, two browsers in a room (the host runs the rules and the bots, the replica draws from snapshots), playing the same seeded presses every run.
One script: scripts/perf.mjs in this skill's folder (Claude Code:
node "${CLAUDE_PLUGIN_ROOT}/skills/perf/scripts/perf.mjs" <command>), run from inside the studio. It drives the
studio's own @homie-rocks/studio (0.19.0 or later: homie-studio perf, perf compare, check, build --maps;
0.19.1 also reads whether each big script is minified),
opens at most two browsers at a time, all muted, and writes everything it measures under .perf/<game>/
(git-ignored). It prints paths and a few numbers, never the data: read the files it names.
df -h .: keep 10 GB free (it keeps every build it measures). The computer may be shared: every run records the
load, waits for a calm minute, and a run that started busy is taken again and left out. Never start other heavy work
(a render, a build of something else, more browsers) while a loop runs.run_in_background):
npm run dev (another port: npx --no-install homie-studio dev --port <n>). Never npm run build by hand while a
loop runs: the script builds and swaps builds itself and checks the site serves exactly the build it means to measure
(every file by SHA-256, and the game page as built). Scripts the site's Worker adds to the game page are the site's,
not the build's: HOMIE_NET, and any a studio's own Worker injects (a small shim) are set aside, listed in BASELINE.md,
and must stay the same through the loop. Don't change the Worker in the middle of a loop; start a new one.try only ever touches games/<game>/, and a revert puts that
folder back to the kept build.node <perf.mjs> baseline <game> --url http://127.0.0.1:8787 [--goal phone.host.frame.p95] [--runs 6] [--seconds 15]It builds the game keeping its source map (never shipped), runs the two-browser check (it must pass: a game that does
not work is not made faster), measures --runs runs per device, profiles one run per device, and writes BASELINE.md
in the loop's folder: every number with its run-to-run spread, the load during each run, the hottest functions (read
through the source map: draw (src/main.ts:620), not Xe), what a player downloads, and what to try first,
each hint naming the number it read. Ten to fifteen minutes; poll its output, never end your turn while it runs.
The goal is one metric, lower is better (perf.mjs goals lists them):
| the person said | goal |
|---|---|
| "it stutters on my phone", "make it smoother" | phone.host.frame.p95 (and frame.over50: hitches) |
| "it runs fine but my phone gets hot", frames already at 16.7 ms | phone.host.busy (main thread per frame) |
| "it takes ages to load" | phone.host.load.playable (4G, slow CPU), phone.host.load.prePlayKb (what was really fetched before play) or bytes.jsGzip |
| "is the scene too heavy for a phone" | phone.host.render.calls / render.triangles (the renderer's own counters while playing, when the game exposes them) |
| "I can move before my character has loaded", "it shows too early" | phone.host.load.ready (the game's own net.playable()) against load.playable (control-ready); the headline says the arrival mode, and "ready … after the cover had lifted" means the game should declare arrival: 'game' |
| "it opens on a blank screen" | phone.host.load.look (the first meaningful frame: the play page's arrival card, 0.26.0) |
| "it lags when lots of people play" | phone.host.busy (the host runs the rules) or phone.host.net.kbOut (its upload) |
Read BASELINE.md before choosing. If frames already keep pace with the display (p95 about 16.7 ms), a faster frame
cannot show on this profile: aim at busy (CPU per frame is battery and headroom on a slower phone), or measure a
slower phone with --cpu 6 or 8. A goal can be changed per change with try --goal (a change aimed at load time is
judged on load time); everything else stays guarded.
Pick the change from the profile and the hints, smallest first. Make one change in games/<game>/, then:
node <perf.mjs> try <game> --name "<the one change, in a line>" --looks same --plays sameIt builds, runs the two-browser check (two fresh browsers must finish a round together), then measures the kept build
and the changed one in turns (before, after, after, before, …), --runs each per device. Each before-run and the
after-run beside it are a pair, so a computer that got busier halfway hits both sides of every pair and cancels. Then
homie-studio perf compare:
--min at baseline). And no guard got worse (frame time, main thread per
frame, time to playable, heap, the host's upload: worse in every pair, or p < 0.01, and at least 5%).games/<game>/ goes back to the kept source (that folder only; files the change added are
removed) and the kept build is served again. A change that measures the same is reverted: it costs reading, not
frames. Never re-run a REVERT hoping for a luckier draw; change something else.try again later, or revert.--looks and --plays are required, every time. same is a promise the screenshots are checked against (brightness,
contrast, detail, colour of each run's host screen, against their own run-to-run spread); anything else is said in
words (--looks "shadows are softer at the edge") and goes into the report. A change made for how a move feels (the
lab skill: a hit-stop, sparks, a squash) is measured here when it costs frames: its --looks and --plays name it. Never trade how the game looks or plays
for frames without the person agreeing first; then say it. Fewer bots, a lower resolution, fewer particles, shorter
view distance and fewer physics steps are all trades, not optimisations.
--measure (a change kept for another reason: how a move feels, from the lab skill): the same build, check, paired
runs and comparison, reported as MEASURED with the verdict and every number, and nothing is reverted: the change
stays in games/<game>/ and is served, and the build to beat stays what it was. Say what it costs in those numbers.
Each try takes ten to twenty minutes. Its folder (experiments/<n>-<name>/) has RESULT.md, change.patch, the
runs and compare.json. status <game> lists the loop so far; revert <game> drops a change you made but never
measured.
What usually helps, roughly in order (references/METHOD.md has the detail and the traps):
new arrays and objects, measureText,
querying the DOM, reading location or localStorage.gcPct or hitches every few seconds mean allocation in the loop.net.kbOut).node <perf.mjs> report <game>It writes perf/<game>/ in the studio, to commit with the kept changes:
README.md: the goal, the result (first build against the kept one, with the change, the interval and p for the goal
and every guard), every change tried and why it was kept or reverted, what changed in how it looks or plays, where the
time went, what a player downloads, and how it was measured;numbers.json: the same numbers;before-after/: the host's screen before and after per device, and each kept change as a patch.With more than one change kept, it measures the first build against the kept one again (in turns) so the result is the whole effect, not a sum of steps. Then tell the person the result in one or two sentences, numbers first, and say plainly when nothing was kept: "nothing I tried was faster beyond the noise" is a result.
try's KEEP
says that, and the report's interval says how much.npm run dev; each run opens a fresh room of its own.Two numbers here are easy to confuse with ones that come from the game's files, and they are not the same thing:
load.prePlayKb, and "Fetched before playable" in the reports): every request the browser
made up to the moment the game was playable, on the wire, one run on one device. The shipped payload (bytes.*,
perf sizes, the asset check's download figure) totals the built folder, which also holds files the game never
asks for and music it streams later. A run that never became playable has no pre-play number at all.render.calls, render.triangles): the renderer's counters while the game is played, read
from the port probe when the game exposes them: exposePort(net, { extra: { drawCalls: () => renderer.info.render.calls, triangles: () => renderer.info.render.triangles } }). They include procedural geometry,
repeated characters, effects and shadow passes, which an inventory estimate from the asset manifest does not. A
game that exposes neither has no such metric: "not measured", never zero.An address this computer's Node.js cannot look up (a browser on the same computer may still open it) stops the loop
as BLOCKED, "network preflight failed, before any page or game was opened": measure against the local site
instead. It is never reported as the game or the site failing. check, perf, shoot, port check, the
playtest and a deploy's read-back all say it in these words.
© hashgraph-online, Apache-2.0. 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 (scripts, references) in plugins/homie-rocks/homie/skills/perf of hashgraph-online/awesome-codex-plugins.
Open the folder on GitHubat commit 9e7b281
Perf 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 |
|---|---|---|---|---|---|---|
| Perf this skillhashgraph-online/awesome-codex-plugins | 1.3k | — | ~3.2k | Automated safety check: Pass | Apache-2.0 | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 5 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Tailwindcss Developmentanonaddy/anonaddy | 4.9k | 10 repos | ~865 | Automated safety check: Pass | MIT | |
| Figma use_figma Plugin API Ruleswarpdotdev/warp | 65k | 4 repos | ~4.4k | Automated safety check: Pass | AGPL-3.0 | |
| GSAP Core Animationgreensock/gsap-skills | 16k | 4 repos | ~3.7k | Automated safety check: Pass | MIT | |
| JavaScript Concept Fact Checkerleonardomso/33-js-concepts | 67k | 1 repos | ~5k | Automated safety check: Pass | MIT |
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
anonaddy/anonaddy
Always invoke when the user's message includes 'tailwind' in any form.
warpdotdev/warp
Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.
greensock/gsap-skills
Covers the GSAP core API for tweens, easing, staggers, defaults and matchMedia, and when to choose GSAP over CSS animations or other JavaScript animation libraries.
leonardomso/33-js-concepts
Verifies the technical accuracy of JavaScript concept pages by checking code examples, MDN and ECMAScript claims and external links through a five-phase method.
oso95/scroll-world
Builds a scroll-driven landing page where a pre-rendered camera flies through connected AI-generated scenes, using Higgsfield for stills and video clips.
hashgraph-online/awesome-codex-plugins
Create original anime-style reaction stickers as looping GIFs and MP4 previews, using generated character pose sheets and timed key poses.
hashgraph-online/awesome-codex-plugins
Manage and query Calibre libraries with the calibredb CLI (local paths or Calibre Content server URLs).
hashgraph-online/awesome-codex-plugins
A skill your agent uses when adding, changing, testing, or debugging Rust HTTP APIs and services, especially when Codex needs black-box integration tests, random-port app startup, real database test…
hashgraph-online/awesome-codex-plugins
Make a studio's game look like something at build time — a cover from a real frame of the game (free), painted covers, backdrops, textures and character plates from image models through the…
hashgraph-online/awesome-codex-plugins
Use CALL-E from Codex through the calle CLI. An agent skill from hashgraph-online/awesome-codex-plugins.
hashgraph-online/awesome-codex-plugins
Balance game difficulty, resources, rewards, probability, progression, economies, and dominant strategies.
Works with
Make a studio's game run faster with a measured loop, and keep only what really helped. Perf is an agent skill from hashgraph-online/awesome-codex-plugins. Make a studio's game run faster with a measured loop, and keep only what really helped.
Perf fits situations like: someone asks to make a game faster; find out why it stutters; bots for frame rate; run a performance.
Run `npx skills add hashgraph-online/awesome-codex-plugins --skill perf -a claude-code`. Or copy the skill folder (plugins/homie-rocks/homie/skills/perf in hashgraph-online/awesome-codex-plugins) into .claude/skills/perf in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hashgraph-online/awesome-codex-plugins --skill perf -a codex`. Or copy the skill folder (plugins/homie-rocks/homie/skills/perf in hashgraph-online/awesome-codex-plugins) into .agents/skills/perf 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 hashgraph-online/awesome-codex-plugins --skill perf -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/perf, .gemini/skills/perf, .github/skills/perf and .opencode/skills/perf in your project.
Going by SKILL.md and its folder, Perf needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node, npm and npx). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npm and 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Perf is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k 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 2.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Perf: Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Tailwindcss Development (anonaddy/anonaddy, 4.9k stars), Figma use_figma Plugin API Rules (warpdotdev/warp, 65k stars) and GSAP Core Animation (greensock/gsap-skills, 16k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hashgraph-online (a GitHub organization) maintains it in hashgraph-online/awesome-codex-plugins, which has 1,255 GitHub stars. The repository holds 714 skills in this directory. The repository was last updated on October 9, 2026.
Source: hashgraph-online/awesome-codex-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.