Analyze hermesvm binary size changes and regressions across commit ranges.
This skill is marked as prompt-only and open-source, with no declared secrets, fixed remote endpoints, or built-in execution capability, so overall risk is low. However, its documentation guides local git/cmake/build workflows and fetching an external dependency, so it should still be used only with trusted repositories and in an isolated environment.
The material explicitly states there are no required keys or environment variables; the README also does not request API tokens, cloud credentials, or account authorization, so credential exposure and abuse risk is low.
No fixed remote endpoint is declared in the system fields, but the README includes steps to clone bloaty from GitHub, so real-world use may involve code download from github.com; there is no indication of user data being sent to unknown third parties.
The README instructs running local commands such as git, cmake, ninja, and readelf/otool, and may compile Hermes and bloaty; this is normal execution capability for a local build-analysis tool, requiring attention to command scope, but no system permissions beyond the stated purpose are requested.
Its purpose requires access to a local git repository, checking out commits, and reading build artifacts/binary section metadata, and the example creates ~/bloaty in the user directory; this is routine local data access for the stated function, with no evidence of broad access to unrelated directories or excessive authorization.
Positive factors are that the source is on GitHub and open-source, making it auditable; however, the repository shows 0 stars, unknown maintenance status, no declared license, and the README depends on the external bloaty project, so supply-chain confidence is only moderate and version pinning plus dependency review are advisable.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "binary-size-analysis" skill from askskill: 1. Download https://raw.githubusercontent.com/facebook/hermes/static_h/.claude/skills/binary-size-analysis/SKILL.md 2. Save it as ~/.claude/skills/binary-size-analysis/SKILL.md 3. Reload skills and tell me it's ready
Analyze hermesvm binary size changes between commits abc123 and def456, identify commits with notable size increases, and summarize likely reasons for each increase.
A commit-by-commit size change analysis highlighting major regression points and likely causes.
Compare hermesvm binary size between release-v1.2 and release-v1.3, explain how much it increased or decreased, and identify the most affected modules.
A version comparison report with total difference, change magnitude, and notes on key impacted modules.
Measure how this set of feature commits affects hermesvm library size, report the increase or decrease for each commit, and determine whether there is a size regression risk.
An impact assessment showing per-commit size changes and an overall regression risk evaluation.
Analyze per-commit binary size changes of the hermesvm shared library across a
git commit range. Produces a markdown report with per-commit sizes and summary
tables of significant increases and decreases.
Before starting, inform the user how size is measured and ask about verification:
Explain the measurement method: Tell the user that sizes are measured by
summing ALLOC section sizes (via readelf -SW on Linux or otool -l on
macOS), not by measuring the file size with stat. This excludes alignment
padding and non-shipping sections (symbol tables, string tables, code
signatures), matching what actually ships on-device after strip.
Ask about parent-commit verification: This verification is enabled by default. It builds each BUILD commit's parent to confirm no skipped commit changed the binary size. It catches miscategorized SKIP commits but roughly doubles the build time. If the user declines, skip all verification substeps in Step 2.
b48b6cc..HEAD or v0.290.0..v0.300.0cmake -B cmake-build-minsizerel -GNinja \
-DHERMESVM_GCKIND=HADES \
-DHERMESVM_HEAP_HV_MODE=HEAP_HV_PREFER32 \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DHERMESVM_ALLOW_JIT=2 \
-DHERMESVM_ALLOW_CONTIGUOUS_HEAP=ON \
-DHERMES_IS_MOBILE_BUILD=ON
If the user provides additional flags, append them to the cmake command. If the user provides a different value to flags in default build configuration above, replace it with the user-provided value (e.g., -DHERMESVM_ALLOW_JIT=0).
This skill requires a GitHub checkout of the static_h repo (commit hashes are git hashes). Before proceeding, verify the working directory is a valid git repo:
git rev-parse --is-inside-work-tree
If this fails (e.g., the repo is a Sapling/Mercurial checkout or not a repo at all), stop and inform the user that this skill only works in a git checkout of the Hermes repository.
Bloaty setup: This skill uses bloaty for detailed per-section diffs on large size increases. Download and build it:
git clone https://github.com/google/bloaty.git ~/bloaty
cd ~/bloaty && cmake -B build -GNinja && cmake --build build
If the download or build fails (e.g., no network access, missing dependencies),
ask the user to provide the path to a pre-built bloaty binary.
Generate the list of commits in the range and categorize each as BUILD or SKIP.
A commit is SKIP if it only touches files outside the directories that contribute to the hermesvm binary. The relevant source directories are:
lib/ (VM, Parser, Sema, IR, BCGen, Support, Regex, etc.)API/hermes/public/hermes/include/hermes/external/CMakeLists.txt (exact match, not filtered by .txt suffix), cmake/,
lib/config/Files that never affect the binary: test/, unittests/, .github/, docs
(.md, .txt, .rst), tools/, npm packages (hermes-parser,
prettier-plugin, etc.), utils/, benchmarks/, website/, blog/.
Use this Python script to categorize:
#!/usr/bin/env python3
import subprocess, sys
RELEVANT_PREFIXES = [
"lib/", "API/hermes/", "API/jsi/", "public/hermes/", "include/hermes/",
"external/", "cmake/", "lib/config/",
]
…
Programmatically rewrite non-top Git commits without needing an interactive editor.
Write and review GC-safe C++ code for the Hermes VM runtime.
Add new JSI Runtime features with Hermes and SynthTrace support.
Guide for adding a new IR instruction to the Hermes compiler. Use when the user asks to add, create, or define a new IR instruction (Inst/Instruction) in the Hermes intermediate representation. Covers all required files and the patterns for each.
Get idiomatic Relay guidance for React code, debugging, and code reviews.
Write and run Markdown-driven end-to-end tests for Relay apps.
Understand massive codebases with semantic search, dependency analysis, and impact tracing.
Analyze codebase size, complexity, and estimated effort with read-only metrics.
Analyze codebase health to find dead code, dependency cycles, and architecture drift.
Compare binary files read-only and generate structured diffs with section hashes.
Analyze local TS/JS repo dependencies and change impact before editing code.
Review code deeply across correctness, tests, security, performance, and product quality.