Agent skill

Extension Perf Forensics

by mengxi-ream in mengxi-ream/read-frog

Diagnose extension-caused memory leaks, freezes, and CPU storms on live third-party sites via controlled attribution experiments, CDP metrics, heap snapshots, and browser-process trace profiling…

GPL-3.0Auto-check: notesDevelopment

Install Extension Perf Forensics

skills CLI
$ npx skills add mengxi-ream/read-frog --skill extension-perf-forensics -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mengxi-ream/read-frog extension-perf-forensics --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mengxi-ream/read-frog.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/extension-perf-forensics .claude/skills/extension-perf-forensics && rm -rf skills-src

Use ~/.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/

Facts

Skill name
extension-perf-forensics
GitHub stars
10k
Token cost
~1.6k tokens
SKILL.md length
830 words
Files
4 (incl. references)
Skills in repo
9
Repo updated
First seen
Licence
GPL-3.0

At a glance

Diagnose extension-caused memory leaks, freezes, and CPU storms on live third-party sites via controlled attribution experiments, CDP metrics, heap snapshots, and browser-process trace profiling…

  • Works in 4 steps: No-extension control on the reported… → Extension-on run on the reported page —… → Static-page control (e.g., a simple news… → …
  • Tasks that involve Performance optimization
  • SKILL.md covers Core principle: the…, Quick reference, Workflow and Verdict discipline, plus 1 more section
  • Calls pnpm

What it does

Extension Perf Forensics is an agent skill from mengxi-ream/read-frog. Diagnose extension-caused memory leaks, freezes, and CPU storms on live third-party sites via controlled attribution experiments, CDP metrics, heap snapshots, and browser-process trace profiling that works even when the renderer is starved.

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/heap-and-metrics.md`, `references/repro-harness.md` and `references/starved-renderer-profiling.md`).

It sits in Development, covering Performance optimization. It works with Chrome Extensions. The repository describes itself as: 🐸 Read Frog - Language Learning & Translate | 🐸 陪读蛙 - 语言学习与翻译. The licence is GPL-3.0.

When your agent uses it

  • Tasks that involve Performance optimization

Example prompts

  • “/extension-perf-forensics”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. No-extension control on the reported page — measures the site's own baseline (live sites leak and churn on their own).
  2. Extension-on run on the reported page — the reported scenario. Delta vs (1) is the extension's total contribution.
  3. Static-page control (e.g., a simple news site) with the extension on — separates "extension reacts to site churn" from "extension…
  4. Feature-isolation runs — same page, extension on, but one suspect neutralized (e.g., pre-mark a DOM region as excluded before the…

What it can do on your machine

Read from SKILL.md and the folder at commit 56f29ed. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Extension Perf Forensics loads about 1.6k tokens when it runs, and up to ~5.9k if it reads all its reference files. Until then it costs about 66 tokens; SKILL.md has 830 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~66
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.9k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:62
    - WXT builds need the env files; copy `.env.development` / `.env.production` into worktrees before `pnpm build`.

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.

SKILL.md

The full file from mengxi-ream/read-frog at commit 56f29ed, republished under its GPL-3.0 licence (© mengxi-ream). 830 words, ~1,641 tokens.

Download SKILL.mdSave it as .claude/skills/extension-perf-forensics/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
extension-perf-forensics
description
Diagnose extension-caused memory leaks, freezes, and CPU storms on live third-party sites via controlled attribution experiments, CDP metrics, heap snapshots, and browser-process trace profiling that works even when the renderer is starved.
metadata.author
read-frog
metadata.version
1.0.0

Extension Performance Forensics

Use this skill when a user reports that the extension makes a page leak memory, freeze, or burn CPU ("卡死", OOM, fans spinning, page renders wrong AND slows down), especially on a specific third-party site. It turns "it feels broken" into a measured, attributed root cause with pass/fail numbers you can re-run after every fix.

This skill complements extension-puppeteer-debugging (functional validation, screenshots). Use that one to prove behavior; use this one to find out who is burning the resources.

Core principle: the attribution ladder

Never conclude from a single run. A perf report on a live site has at least four possible culprits, and the fix differs for each. Run the ladder top-down; each rung is the same scripted interaction, changing exactly one variable:

  1. No-extension control on the reported page — measures the site's own baseline (live sites leak and churn on their own).
  2. Extension-on run on the reported page — the reported scenario. Delta vs (1) is the extension's total contribution.
  3. Static-page control (e.g., a simple news site) with the extension on — separates "extension reacts to site churn" from "extension misbehaves everywhere".
  4. Feature-isolation runs — same page, extension on, but one suspect neutralized (e.g., pre-mark a DOM region as excluded before the extension walks it; force a different config). If neutralizing X makes the numbers clean, X is the trigger.

Two hard-won corollaries:

  • Verify the effective config after the run (dump it from the extension's storage in the same profile). This session's first three runs silently tested the wrong target language because an onboarding page had overwritten it — every conclusion drawn before the dump was mis-attributed.
  • Suspect the site, not just the extension. Sites ship their own unbounded fit-loops (while (overflows()) moveItem() inside a ResizeObserver). Any extension that changes element sizes can trip them. If rung (4) with a region excluded is clean while your own code is already loop-free, read the site's bundle — the hot loop may be theirs, and the right fix is an exclusion rule, not more extension code.

Quick reference

TopicReference
Repro harness: launching with the extension (Chrome 137+), config patching races, instrumentation, sampling loop, freeze tolerance, control modesreferences/repro-harness.md
Metric semantics, GC-disciplined baselines, heap snapshots, memlab, retention signaturesreferences/heap-and-metrics.md
Profiling a starved renderer via the Tracing domain, mapping minified frames back to site code, the detached-DOM churn signaturereferences/starved-renderer-profiling.md
Show full SKILL.md (440 more words)Show less

Workflow

  1. Build the exact artifact under suspicion (or the fix candidate) and script the reported interaction (load → wait for the feature to engage → N interaction cycles → idle watch → final measurements). Log every sample as JSONL.
  2. Run the attribution ladder. Force-GC before baseline and final samples; snapshot heap only in runs where you are not measuring timing (snapshots pause the world).
  3. Read the failure signature from the metrics (see heap-and-metrics for the table). The three big ones:
    • heap grows after GC with DOM unchanged → JS-side retention → heap snapshots + memlab retainers;
    • CDP Nodes explodes while getElementsByTagName("*").length stays flat AND layout/style counters freeze → a JS loop building detached DOM at full speed → CPU profile, not heap;
    • everything stable but TaskDuration runs hot → churn without retention → count your own DOM insert/remove operations per cycle.
  4. If probes hang (evaluate timeouts, Profiler.start never returns), the renderer main thread is starved — capture the CPU profile through the browser-process Tracing domain instead (starved-renderer-profiling).
  5. Attribute the hot frames. Extension frames → fix the extension. Site frames → reproduce the site's trigger without the extension (simulate the DOM change by hand), then neutralize via exclusion/site rule and re-verify.
  6. After each fix: rebuild, rerun the identical harness, compare against the recorded broken/control baselines in a pass-criteria table (nodes order-of-magnitude, TaskDuration, freeze count, heap-after-GC delta, feature-still-works count). A fix that only moves one number may have missed a second cooperating root cause — this session's storm fix was correct yet the freeze persisted until the site's own loop was also neutralized.

Verdict discipline

  • Distinguish harmless churn (allocated then GC'd; oscillating Nodes) from retention (survives forced GC). Only the latter is a leak.
  • Distinguish deterministic failures from storm-intensity-dependent ones; re-run the broken build if a fix seems to "work" on a single lucky run.
  • Record which failure modes are absorbed by existing safety nets vs which escape them; prioritize the escaping ones.

Gotchas that cost hours

  • Chrome ≥137 ignores --load-extension. Launch with pipe: true, enableExtensions: true and call browser.installExtension(path) (Puppeteer ≥22.11). The install does not persist across sessions — re-install per run.
  • Config patch races: the extension's own init/migrations/onboarding can clobber your patch seconds after install. Patch → wait → re-assert → verify before navigating, and re-verify after the run.
  • Cloudflare: fresh automated profiles get challenged; curl gets 5xx. Grab site bundles via response interception inside a real page load, or use an interactive in-app browser pane which typically passes.
  • zsh nukes PATH if a loop variable is named path (lowercase path is tied to PATH).
  • Run timing-sensitive rungs sequentially, one browser at a time, separate profile dirs per experiment.
  • WXT builds need the env files; copy .env.development / .env.production into worktrees before pnpm build.

© mengxi-ream, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (references) in .agents/skills/extension-perf-forensics of mengxi-ream/read-frog.

  • SKILL.md
  • references/heap-and-metrics.md
  • references/repro-harness.md
  • references/starved-renderer-profiling.md

Open the folder on GitHubat commit 56f29ed

Compare with similar skills

Extension Perf Forensics 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.

Extension Perf Forensics compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Extension Perf Forensics this skillmengxi-ream/read-frog10k—~1.6kAutomated safety check: NotesGPL-3.0
Code Review ChecklistshareAI-lab/learn-claude-code78k5 repos~1.1kAutomated safety check: PassMIT
LLM Torch Profiler Analysissgl-project/sglang37k2 repos~6.4kAutomated safety check: PassApache-2.0
Pycrazyguitar/pysheeet8.2k—~886Automated safety check: PassMIT
Cmux Debugging Guidemanaflow-ai/cmux28k1 repos~1.1kAutomated safety check: PassCustom licence
Electron Heap Snapshot Analysiskeybase/client9.3k—~875Automated safety check: PassBSD-3-Clause

Similar skills

  • 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.

    78k GitHub starsUsed in 5 repos~1.1k tokens
    DevelopmentAuto-check passed
  • LLM Torch Profiler Analysis

    sgl-project/sglang

    Unified LLM torch-profiler triage skill for sglang, vllm, TensorRT-LLM, and TokenSpeed.

    37k GitHub starsUsed in 2 repos~6.4k tokens
    DevelopmentAuto-check passed
  • Py

    crazyguitar/pysheeet

    Comprehensive Python programming reference covering syntax, concurrency, networking, databases, ML/LLM development, and HPC.

    8.2k GitHub stars~886 tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Cmux Debugging Guide

    manaflow-ai/cmux

    Covers debug logging, the Debug menu, profiling rules and runtime pitfalls for working on the cmux macOS terminal app.

    28k GitHub starsUsed in 1 repo~1.1k tokens
    DevelopmentAuto-check passed
  • Analyzes V8, Chrome and Electron .heapsnapshot files with Node scripts to find memory leaks, detached DOM nodes and the retainer paths that keep objects alive.

    9.3k GitHub stars~875 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Runs controlled JMH experiments on the Caffeine cache to find shared contention and hot-path waste, then reviews correctness and returns a reviewable patch.

    18k GitHub stars~2.6k tokensUpdated yesterday
    DevelopmentAuto-check: notes

More from mengxi-ream/read-frog

All 9 skills in this repo
  • Adversarial Review

    mengxi-ream/read-frog

    Adversarial code review using cross-model approach. An agent skill from mengxi-ream/read-frog.

    10k GitHub starsUsed in 1 repo~905 tokens
    Auto-check passed
  • Record Extension Demo

    mengxi-ream/read-frog

    Record polished, evidence-backed demos of the Read Frog extension as MP4 (and optional GIF) by driving real Chrome with the built extension, following captioned scene scripts, asserting extension…

    10k GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Extension Puppeteer Debugging

    mengxi-ream/read-frog

    Debug the built Read Frog extension in real Chrome. An agent skill from mengxi-ream/read-frog.

    10k GitHub stars~2k tokensUpdated today
    Auto-check: notes
  • Webext Core

    mengxi-ream/read-frog

    Utilities for browser extensions - proxy services for cross-context RPC, type-safe messaging, URL match patterns, fake browser for testing, job scheduling, and shadow DOM isolation.

    10k GitHub stars~633 tokensUpdated today
    Auto-check passed
  • Wxt

    mengxi-ream/read-frog

    Build browser extensions with WXT - a next-gen framework with file-based entrypoints, Vite builds, auto-imports, typed storage with migrations, content script UIs, and multi-browser MV2/MV3 support.

    10k GitHub stars~500 tokensUpdated today
    Auto-check passed
  • Create PR

    mengxi-ream/read-frog

    Create a pull request, optionally for the issue provided as argument

    10k GitHub stars~2.4k tokensUpdated today
    Auto-check passed

Categories

Questions about Extension Perf Forensics

What does Extension Perf Forensics do?

Diagnose extension-caused memory leaks, freezes, and CPU storms on live third-party sites via controlled attribution experiments, CDP metrics, heap snapshots, and browser-process trace profiling…. Extension Perf Forensics is an agent skill from mengxi-ream/read-frog. Diagnose extension-caused memory leaks, freezes, and CPU storms on live third-party sites via controlled attribution experiments, CDP metrics, heap snapshots, and browser-process trace profiling that works even when the renderer is starved.

When should I use Extension Perf Forensics?

Extension Perf Forensics fits situations like: tasks that involve Performance optimization.

How do I install Extension Perf Forensics in Claude Code?

Run `npx skills add mengxi-ream/read-frog --skill extension-perf-forensics -a claude-code`. Or copy the skill folder (.agents/skills/extension-perf-forensics in mengxi-ream/read-frog) into .claude/skills/extension-perf-forensics in your project. Claude Code loads it when a task matches its description.

How do I install Extension Perf Forensics in Codex?

Run `npx skills add mengxi-ream/read-frog --skill extension-perf-forensics -a codex`. Or copy the skill folder (.agents/skills/extension-perf-forensics in mengxi-ream/read-frog) into .agents/skills/extension-perf-forensics in your project. Codex loads it when a task matches its description.

Can I use Extension Perf Forensics in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mengxi-ream/read-frog --skill extension-perf-forensics -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/extension-perf-forensics, .gemini/skills/extension-perf-forensics, .github/skills/extension-perf-forensics and .opencode/skills/extension-perf-forensics in your project.

What does Extension Perf Forensics need to run?

Going by SKILL.md and its folder, Extension Perf Forensics needs the command-line tools its instructions call (pnpm).

Does Extension Perf Forensics access the network?

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.

Is Extension Perf Forensics safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Extension Perf Forensics use?

Extension Perf Forensics is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Extension Perf Forensics use?

About 1.6k tokens (SKILL.md is roughly 6.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 4.3k tokens, read only when the agent opens those files.

What are the alternatives to Extension Perf Forensics?

Skills that share tags, products or a category with Extension Perf Forensics: Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), LLM Torch Profiler Analysis (sgl-project/sglang, 37k stars), Py (crazyguitar/pysheeet, 8.2k stars) and Cmux Debugging Guide (manaflow-ai/cmux, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Extension Perf Forensics?

mengxi-ream (a GitHub user) maintains it in mengxi-ream/read-frog, which has 10,013 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 9, 2026.

Source: mengxi-ream/read-frog on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.