Skip to main content

ts-memory-baseline

Measure and compare TypeScript memory usage for @regle/core and test typechecks. Use when checking TS server pressure, type-level perf regressions, or before/after heavy generic typing changes.

Source facts

Repository
victorgarciaesgi/regle
Last source activity
August 10, 2026 at 13:58
Detected SKILL.md language
English
Stars
506
Forks
22

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
ts-memory-baseline
description
Measure and compare TypeScript memory usage for @regle/core and test typechecks. Use when checking TS server pressure, type-level perf regressions, or before/after heavy generic typing changes.
metadata
{"author":"regle","version":"2026.03.19"}
# TypeScript memory baseline procedure This skill defines a reproducible process to measure TypeScript memory usage in this repository. ## Hard requirements 1. Use Node 24 for all measurements. 2. Run `pnpm build` before any test-related measurement. 3. `pnpm run test:typecheck` should never fail. If it fails, treat the run as invalid for regression tracking. ## Environment setup ```bash PATH="/Users/victorgarcia/.nvm/versions/node/v24.15.0/bin:$PATH" node -v pnpm -v ``` Expected: - Node `v24.x` - pnpm `11.20.0` (or project-compatible version) ## Measurement runbook (must follow) 1. Ensure no extra monorepo tasks are running. 2. Use the exact Node 24 PATH prefix in every command. 3. Run one warm-up pass that is discarded. 4. Run 3 measured passes and compare medians. 5. Save only the final medians in `tests/TS_MEMORY_BASELINE_RESULTS.md`. ## Measurement commands ### A. @regle/core compiler diagnostics ```bash PATH="/Users/victorgarcia/.nvm/versions/node/v24.15.0/bin:$PATH" \ ./node_modules/.bin/tsc -p "packages/core/tsconfig.json" --noEmit --extendedDiagnostics ``` Capture: - `Memory used` - `Instantiations` - `Check time` ### B. Full type tests memory Run build first: ```bash PATH="/Users/victorgarcia/.nvm/versions/node/v24.15.0/bin:$PATH" pnpm build ``` Then: ```bash PATH="/Users/victorgarcia/.nvm/versions/node/v24.15.0/bin:$PATH" \ /usr/bin/time -l pnpm run test:typecheck ``` Capture: - exit code (must be `0`) - `maximum resident set size` - `peak memory footprint` - `real/user/sys` Recommended sequence: ```bash # warm-up (discard) PATH="/Users/victorgarcia/.nvm/versions/node/v24.15.0/bin:$PATH" \ /usr/bin/time -l corepack pnpm run test:typecheck # measured runs (collect all 3) PATH="/Users/victorgarcia/.nvm/versions/node/v24.15.0/bin:$PATH" \ /usr/bin/time -l corepack pnpm run test:typecheck PATH="/Users/victorgarcia/.nvm/versions/node/v24.15.0/bin:$PATH" \ /usr/bin/time -l corepack pnpm run test:typecheck PATH="/Users/victorgarcia/.nvm/versions/node/v24.15.0/bin:$PATH" \ /usr/bin/time -l corepack pnpm run test:typecheck ``` ## Comparison protocol Use median deltas because absolute values can vary with machine/CPU load. 1. Compute medians for old baseline and new run. 2. Compute delta % = `(new - old) / old * 100`. 3. Evaluate with these thresholds: - **Likely noise**: within `±5%` for memory metrics. - **Watch zone**: `>5%` and `<=10%` increase. - **Regression candidate**: `>10%` increase. 4. For `Check time` and `real time`, treat as noisy: - investigate only if increase is `>15%` and reproducible across runs. 5. If `pnpm run test:typecheck` exit code is non-zero, invalidate the run (do not update baseline). ## Results storage Store only numeric outcomes in: - `tests/TS_MEMORY_BASELINE_RESULTS.md` Do not put procedural instructions in the results file.
View on GitHub