adding-benchmarks

Add performance benchmarks to CI pipelines with .bench.json arrays.

Updated May 14, 2026
One-click install
npx skills add https://github.com/HabibTorjmen/Blockchain --skill adding-benchmarks-habibtorjmen
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: adding-benchmarks
Source: https://github.com/HabibTorjmen/Blockchain/tree/main/aztec-packages/.claude/skills/adding-benchmarks
Command: npx skills add https://github.com/HabibTorjmen/Blockchain --skill adding-benchmarks-habibtorjmen

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It helps teams add new performance benchmarks to the existing CI benchmark pipeline so results are generated, merged, uploaded, and shown in the benchmark dashboard over time.

Core Features & Use Cases

  • Benchmark JSON generation guidance: Defines the required .bench.json array format with name, value, and unit, including conventions for naming and hierarchy.
  • CI integration walkthrough: Explains how to register benchmark commands in bootstrap.sh so package benchmarks produce bench-out/*.bench.json and get merged/uploaded by the CI workflow.
  • Operational tuning for repeatability: Recommends CPU isolation, Docker isolation, memory limits, and timeouts to keep benchmark runs stable and comparable.
  • Dashboard-friendly organization: Shows how /-delimited benchmark names map to group trees and how to use extra: "stacked:GROUP_NAME" for stacked charts.

Quick Start

Ask to “Create bench-out entries for a new benchmark metric named Tx/private/getTxHash/avg in a .bench.test.ts test file, register it in the package bench_cmds in bootstrap.sh, and confirm it uploads as .bench.json during the CI merge-queue or full CI runs.”

Frequently Asked Questions about adding-benchmarks

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add performance benchmarks to a CI pipeline using GitHub Actions?

To add CI benchmarks, generate `.bench.json` arrays with `name`, `value`, and `unit` fields, then register the benchmark commands in `bootstrap.sh` so CI workflows can aggregate and upload the results to a dashboard.

What format is required for benchmark JSON files to display correctly on a benchmark dashboard?

Benchmark JSON files require an array of objects containing `name`, numeric `value`, and `unit` fields. Use `customSmallerIsBetter` expectations for metrics where lower values indicate improved performance.

How do I organize benchmark names using slash-delimited paths and stacked charts?

Organize benchmark names using `/`-delimited paths to map them into group trees within the dashboard. Use the `extra: "stacked:GROUP_NAME"` field in your JSON output to generate stacked charts for related metrics.

Can I use TypeScript, Python, and shell scripts to generate benchmark metrics for CI?

Yes, you can use TypeScript, Python, and shell-based benchmark generators. They must output `bench-out/*.bench.json` files following the correct naming conventions and numeric value requirements for CI integration.

How do I keep benchmark runs stable and comparable in continuous integration?

Keep benchmark runs stable by applying CPU isolation, Docker isolation, memory limits, and execution timeouts. This operational tuning ensures performance tracking metrics remain comparable across CI pipeline runs.

Do I need merge-queue or full labels to trigger benchmark publishing in GitHub Actions?

Yes, CI-trigger compatibility requires merge-queue or full labels to publish benchmark results to the target branch. This ensures `.bench.json` files upload during the CI workflow execution.