Bio Metagenomics Visualization
GPTomics/bioSkills
Turns a shotgun profiler table (MetaPhlAn relative abundance, Bracken counts, HUMAnN function tables) into honest figures and defensible community statistics with phyloseq, vegan, microViz, and…
Structured performance opportunity investigation for SpiderMonkey (the Firefox JavaScript engine).
$ npx skills add SAP/project-foxhound --skill js-perf-investigation -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install SAP/project-foxhound js-perf-investigation --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/SAP/project-foxhound.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/js-perf-investigation .claude/skills/js-perf-investigation && 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 "js-perf-investigation" agent skill from https://github.com/SAP/project-foxhound/tree/main/.agents/skills/js-perf-investigation into .claude/skills/js-perf-investigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "js-perf-investigation", 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/SAP/project-foxhound/tree/main/.agents/skills/js-perf-investigationType 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 SAP/project-foxhound --skill js-perf-investigation -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install SAP/project-foxhound js-perf-investigation --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SAP/project-foxhound.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/js-perf-investigation .agents/skills/js-perf-investigation && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "js-perf-investigation" agent skill from https://github.com/SAP/project-foxhound/tree/main/.agents/skills/js-perf-investigation into .agents/skills/js-perf-investigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "js-perf-investigation", 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 SAP/project-foxhound --skill js-perf-investigation -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install SAP/project-foxhound js-perf-investigation --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SAP/project-foxhound.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/js-perf-investigation .cursor/skills/js-perf-investigation && 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 "js-perf-investigation" agent skill from https://github.com/SAP/project-foxhound/tree/main/.agents/skills/js-perf-investigation into .cursor/skills/js-perf-investigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "js-perf-investigation", 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/SAP/project-foxhound.git --path .agents/skills/js-perf-investigation--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 SAP/project-foxhound --skill js-perf-investigation -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install SAP/project-foxhound js-perf-investigation --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SAP/project-foxhound.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/js-perf-investigation .gemini/skills/js-perf-investigation && 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 "js-perf-investigation" agent skill from https://github.com/SAP/project-foxhound/tree/main/.agents/skills/js-perf-investigation into .gemini/skills/js-perf-investigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "js-perf-investigation", 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 SAP/project-foxhound js-perf-investigationInstalls 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 SAP/project-foxhound --skill js-perf-investigation -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/SAP/project-foxhound.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/js-perf-investigation .github/skills/js-perf-investigation && 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 "js-perf-investigation" agent skill from https://github.com/SAP/project-foxhound/tree/main/.agents/skills/js-perf-investigation into .github/skills/js-perf-investigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "js-perf-investigation", 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 SAP/project-foxhound --skill js-perf-investigation -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install SAP/project-foxhound js-perf-investigation --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SAP/project-foxhound.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/js-perf-investigation .opencode/skills/js-perf-investigation && 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 "js-perf-investigation" agent skill from https://github.com/SAP/project-foxhound/tree/main/.agents/skills/js-perf-investigation into .opencode/skills/js-perf-investigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "js-perf-investigation", 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.
js-perf-investigationStructured performance opportunity investigation for SpiderMonkey (the Firefox JavaScript engine).
JS Perf Investigation is an agent skill from SAP/project-foxhound, published by the product's own GitHub organization. Structured performance opportunity investigation for SpiderMonkey (the Firefox JavaScript engine). Use this skill when the user wants to investigate JS engine performance, profile SpiderMonkey, find optimization opportunities, write performance patches, or evaluate benchmark regressions. Trigger on mentions of: profiling JS, SpiderMonkey performance, JIT optimization, benchmark regression analysis, shell benchmarking, or any request to make JS workloads faster. The methodolgy is described mostly for the JS shell…
Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/advanced-tools.md`).
It sits in Research & Science, covering Statistics and Performance optimization. It works with JavaScript. The repository describes itself as: A web browser with dynamic data-flow tracking enabled in the Javascript engine and DOM, based on Mozilla Firefox (https://github.com/mozilla-firefox/firefox). It can be used to… The licence is GPL-3.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9dcb850. 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:
Bash(searchfox-cli *)Bash(profiler-cli *)Bash(samply *)Bash(mach *)Python(*.py)Markdown(*.md)From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash, cpp, javascript, yaml and python).
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.
JS Perf Investigation loads about 4.1k tokens when it runs, and up to ~4.8k if it reads all its reference files. Until then it costs about 146 tokens; SKILL.md has 1,916 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 SAP/project-foxhound at commit 9dcb850, republished under its GPL-3.0 licence (© SAP). 1,916 words, ~4,078 tokens.
.claude/skills/js-perf-investigation/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.This skill guides a structured, evidence-driven performance investigation for the SpiderMonkey JavaScript engine. The methodology has four phases: hypothesis generation, evidence gathering, patch writing, and evaluation. Each phase builds on the last: resist the urge to skip ahead to writing patches before you have empirical evidence that a change will help.
When asked to create multiple patches, iterate through the phases each time to ensure each patch is independently validated and measured. Always create commits before moving onto a new patch if you are creating multiple patches. This will make it easier to review and to measure contribution.
The end result of this skill will be a summary of the investigation, and one or more patches that measurably improve the performance of the targeted workload, with each patch describing supporting evidence and measured impact.
The user should provide:
You have access to:
samply — sampling profiler that produces Firefox Profiler-compatible outputprofiler-cli — for analyzing profiles. This can also be used to investigate Gecko
profiler profiles if the investigation is being done in the browser.searchfox-cli — source code search for the Firefox codebaseFor more details on how to use these tools load the "profiler-analysis" skill, which will also hint on how to get the tools installed if needed.
An artifacts/ directory can be created and this is excluded from version control.
The goal is to identify where time is being spent and form testable hypotheses about what could be improved.
Use an opt-nodebug (optimized, no debug checks) build. Debug builds distort profiles with assertion overhead.
The user should provide or confirm the mozconfig to use. The key settings for an opt-nodebug build are:
ac_add_options --enable-optimize
ac_add_options --disable-debugIf the user hasn't specified a mozconfig, ask them — build configurations vary across machines and the user will know which obj-dir and config is appropriate for their setup.
Always run the shell with --strict-benchmark-mode when investigating performance.
This flag validates the runtimeconfiguration and will error if something would produce
unreliable numbers (e.g. JIT is disabled unexpectedly). Generating profiles without this
flag risks producing misleading data.
Examine the workload to understand what it does. If the workload has an iteration count or loop parameter, determine an appropriate count so that the workload runs for at least 30 seconds under profiling. Statistical profilers need sufficient samples to produce meaningful data — short runs produce noisy profiles where real hotspots are hard to distinguish from sampling noise.
For targeted micro-optimizations (e.g. improving a single opcode or a specific stub), longer runs (60s+) may be necessary to accumulate enough samples in the specific code path of interest.
If the workload driver supports iteration configuration, prefer that.
Otherwise, wrap it:
for (let i = 0; i < ITERATIONS; i++) {
load("workload.js"); // or call the main function
}Record a profile with samply. Always set IONPERF=func and PERF_SPEW_DIR so that
JIT-compiled functions appear with readable names in the profile instead of raw addresses.
The overhead is negligible:
mkdir -p artifacts/perf-spew
PERF_SPEW_DIR=artifacts/perf-spew IONPERF=func \
samply record --save-only -o artifacts/profile.json.gz -- \
./obj-opt-nodebug/dist/bin/js --strict-benchmark-mode workload.jsUsing --save-only avoids opening the browser and gives you a local file you can analyze
with profiler-cli. Save profiles to the artifacts/ directory; you may need to gzip
the profile for profiler-cli to read it.
For deeper JIT investigation (e.g. understanding what IR the JIT emitted for a hot
function), use IONPERF=ir instead — see references/advanced-tools.md.
Start broad and narrow down: Looking at the profile, answer some of the following questionsfile:
For Speedometer profiles, always use --focus-marker="-async,-sync" to exclude async idle
time between benchmark iterations.
Based on the profile data, form specific, testable hypotheses. Good hypotheses look like:
Bad hypotheses (avoid these):
Before writing a patch, gather enough evidence to be confident the hypothesis is sound.
Use searchfox-cli to understand the relevant code and understand the current behavior.
Use searchfox-cli for blame on relevant code, as well as git history on relevant files. This might provide context on why things are the way they are.
Profiling shows where time is spent but not always why. When your hypothesis depends on runtime state (data distributions, cache hit rates, list lengths, frequency of code paths), add temporary instrumentation to measure it directly.
Use MOZ_LOG or JS_LOG for instrumentation.
JS_LOG(debug /* you can also add your own channel, but debug should be unused */, Debug, "list length: %zu, sorted: %s",
list.length(), isSorted ? "yes" : "no");Throttle instrumentation output when it would fire on every iteration — use a counter to log every Nth occurrence, or accumulate statistics and log a summary. Unthrottled logging in a hot path will drown the output and slow the workload enough to distort measurements.
static uint32_t callCount = 0;
if (++callCount % 10000 == 0) {
JS_LOG_FMT(debug, Debug, "after %u calls: avg length = %zu",
callCount, totalLength / callCount);
}Re run with MOZ_LOG=debug:5 to see the output.
In a browser build you can add profiler markers instead of logging which can be read through gecko-profiling and the profiler-cli.
Run the instrumented build and collect the data. This confirms whether your hypothesis about runtime behavior is correct before you invest in writing a real patch.
Now that you have evidence, write the patch.
Where possible, gate the optimization behind a JS::Prefs preference so you can do apples-to-apples comparison on the same binary. This eliminates build-to-build variation as a confounding factor and makes it trivial to re-measure later.
To add the pref, add an entry to StaticPrefList.yaml:
- name: javascript.options.experimental.my_optimization
type: bool
value: true
mirror: always
set_spidermonkey_pref: alwaysThen guard the code path:
if (JS::Prefs::experimental_my_optimization()) {
// new path (default: on)
} else {
// old path
}Use set_spidermonkey_pref: always (not startup) so the pref can be toggled via
--setpref without requiring a restart:
# Measure with optimization (default):
./js --strict-benchmark-mode workload.js
# Measure without:
./js --strict-benchmark-mode --setpref experimental.my_optimization=false workload.jsNote that pref-gating is not always feasible. For changes on extremely hot paths (tight JIT loops, inline caches), the branch on the pref check itself can be costly enough to distort measurements. In those cases, fall back to saving the obj-dir from a build without the patch and comparing against a build with the patch applied.
Note: You can't save -just- a js binary, as there are dynamically linked libraries.
Always save the obj-dir, or create a different mozconfig.
During patch development, add JS_LOG logging to the debug channel to verify the new
code path is being taken where expected. Throttle by a counter to avoid flooding output.
Do a run with the instrumentation logging to ensure the logging fires when/where/as-much
as expected. Remove or reduce this logging before the patch is finalized.
For a given optimization is is often compelling to also generate a microbenchmark which demonstrates in the absolute most ideal circumstances for the optimization what kind of result is achievable. This is not a replacement for measuring the real workload, but can be a useful sanity check that the optimization is working as intended and has the potential to produce the expected impact, and can help in choosing to keep patches which are effective in the microbenchmark but don't show good impact under the real workload.
When investigating multiple optimization opportunities:
Run the workload with and without the patch (using the pref toggle or separate builds).
If hyperfine is available, you can use that if. If not, start with 5 runs of each configuration, collecting timing results into arrays.
# With pref-gated optimization — collect results into a file:
for i in $(seq 1 5); do
./js --strict-benchmark-mode --setpref experimental.my_optimization=true workload.js \
2>&1 | tee -a artifacts/results_with.txt
done
for i in $(seq 1 5); do
./js --strict-benchmark-mode --setpref experimental.my_optimization=false workload.js \
2>&1 | tee -a artifacts/results_without.txt
doneAfter collecting initial results, use a Python script to assess whether the sample size is sufficient. Use the Mann-Whitney U test (non-parametric, robust to non-normal distributions common in benchmark data) to test for significance:
# /// script
# dependencies = [
# "numpy",
# "scipy",
# ]
# ///
# use `uv run script.py` and deps should be automaticaly installed
import numpy as np
from scipy import stats
baseline = np.array([...]) # times without patch
patched = np.array([...]) # times with patch
stat, p_value = stats.mannwhitneyu(baseline, patched, alternative='two-sided')
effect_size = (np.mean(baseline) - np.mean(patched)) / np.mean(baseline) * 100
print(f"Baseline: {np.mean(baseline):.2f} +/- {np.std(baseline):.2f}")
print(f"Patched: {np.mean(patched):.2f} +/- {np.std(patched):.2f}")
print(f"Effect: {effect_size:.2f}%")
print(f"p-value: {p_value:.4f}")
if p_value > 0.05:
print("Result not statistically significant at p<0.05 — consider more runs")If the p-value is borderline (0.01 < p < 0.10) or the effect size is small relative to the observed variance, collect additional runs and retest. But do not exceed 20 runs per configuration — if 20 runs on each side still can't produce a significant result, the effect is too close to the noise floor to be meaningfully measured this way. That's a signal to step back and reconsider: either the optimization isn't having the expected impact, or the workload needs to be restructured to isolate the effect better (e.g. more iterations of the hot path, a more targeted microbenchmark).
Don't just measure — profile again to confirm the patch is having the expected effect. The profile should show reduced time in the targeted code path. If it doesn't, investigate why.
After each patch is written, but before it's commited, run the correctness test suites.
Both of these must pass. Test with opt-nodebug first (because you have the build) but also test with an opt-debug build as well, as there are many debug-only assertions that catch errors that are needed to be evaluated.
./mach jit-test
./mach jstestsIf the patch touches GC-related code, run both suites with --jitflags=all for more
thorough coverage:
./mach jit-test --jitflags=all
./mach jstests --jitflags=allBeyond the test suites, consider adding test cases to address
Produce a summary document (outside the source tree, e.g. in artifacts/) that records:
--strict-benchmark-mode: Without this flag, the shell may be in a
configuration that produces misleading numbers. Always use it.© SAP, 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
SKILL.md and 1 other file (references) in .agents/skills/js-perf-investigation of SAP/project-foxhound.
Open the folder on GitHubat commit 9dcb850
We found 7 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in SAP/project-foxhound, which our catalogue first saw on October 7, 2026.
JS Perf Investigation 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 |
|---|---|---|---|---|---|---|
| JS Perf Investigation this skillSAP/project-foxhound | 180 | 2 repos | ~4.1k | Automated safety check: Pass | GPL-3.0 | |
| Bio Metagenomics VisualizationGPTomics/bioSkills | 1.2k | 1 repos | ~3.7k | Automated safety check: Pass | MIT | |
| Microsim Generatordmccreary/ibook-skills | 105 | — | ~11k | Automated safety check: Pass | None | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 4 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Antv L7antvis/L7 | 4.1k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Manuscript Statistics AuditYuan1z0825/nature-skills | 47k | 2 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 |
GPTomics/bioSkills
Turns a shotgun profiler table (MetaPhlAn relative abundance, Bracken counts, HUMAnN function tables) into honest figures and defensible community statistics with phyloseq, vegan, microViz, and…
dmccreary/ibook-skills
Creates interactive educational MicroSims, routing to the best-matched generator - p5.js, Chart.js, Plotly, Mermaid, vis-network, timelines, maps, Venn, causal-loop/feedback-loop diagrams (CLD)…
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.
antvis/L7
Comprehensive guide for AntV L7 geospatial visualization library.
Yuan1z0825/nature-skills
Audits or rewrites the statistical reporting in a manuscript: experimental units, replication, tests, uncertainty and figure legends, without inventing missing details.
shapeshift/web
Comprehensive React and Next.js performance optimization guide with 40+ rules for eliminating waterfalls, optimizing bundles, and improving rendering.
SAP/project-foxhound
Performs an accessibility code review of a local diff or Phabricator revision in the style of the Firefox accessibility team.
SAP/project-foxhound
File a Bugzilla bug for Firefox/Gecko work, or draft a bug summary and description.
SAP/project-foxhound
Map relationships between a web spec section, its Firefox implementation code, and Web Platform Tests.
SAP/project-foxhound
Manage Redash queries and dashboards on Mozilla's STMO (sql.telemetry.mozilla.org) using stmo-cli.
SAP/project-foxhound
Guide for creating new Android gradle modules in the android-components project.
SAP/project-foxhound
Analyze Firefox performance profiles using the profiler-cli CLI tool.
Works with
Structured performance opportunity investigation for SpiderMonkey (the Firefox JavaScript engine). JS Perf Investigation is an agent skill from SAP/project-foxhound, published by the product's own GitHub organization. Structured performance opportunity investigation for SpiderMonkey (the Firefox JavaScript engine).
JS Perf Investigation fits situations like: the user wants to investigate JS engine performance; profile SpiderMonkey; find optimization opportunities; write performance patches.
Run `npx skills add SAP/project-foxhound --skill js-perf-investigation -a claude-code`. Or copy the skill folder (.agents/skills/js-perf-investigation in SAP/project-foxhound) into .claude/skills/js-perf-investigation in your project. Claude Code loads it when a task matches its description.
Run `npx skills add SAP/project-foxhound --skill js-perf-investigation -a codex`. Or copy the skill folder (.agents/skills/js-perf-investigation in SAP/project-foxhound) into .agents/skills/js-perf-investigation 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 SAP/project-foxhound --skill js-perf-investigation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/js-perf-investigation, .gemini/skills/js-perf-investigation, .github/skills/js-perf-investigation and .opencode/skills/js-perf-investigation in your project.
SKILL.md names no scripts, command-line tools or credentials: JS Perf Investigation is instructions for the agent only. Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash(searchfox-cli *), Bash(profiler-cli *), Bash(samply *), Bash(mach *), Python(*.py), Markdown(*.md).
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.
JS Perf Investigation 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.
About 4.1k tokens (SKILL.md is roughly 16k 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 695 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with JS Perf Investigation: Bio Metagenomics Visualization (GPTomics/bioSkills, 1.2k stars), Microsim Generator (dmccreary/ibook-skills, 105 stars), Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars) and Antv L7 (antvis/L7, 4.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
SAP (a GitHub organization, an official publisher) maintains it in SAP/project-foxhound, which has 180 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 6, 2026.
Source: SAP/project-foxhound on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.