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.
Scanned 8/31/2026
Install to Claude Code
npx -y skills add victorgarciaesgi/regle --skill ts-memory-baseline --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Ts Memory Baseline?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/victorgarciaesgi-ts-memory-baseline)More formats (shields.io, HTML) on the badges page.
---
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.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!