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
- Use Node 24 for all measurements.
- Run
pnpm buildbefore any test-related measurement. pnpm run test:typecheckshould never fail. If it fails, treat the run as invalid for regression tracking.
Environment setup
PATH="/Users/victorgarcia/.nvm/versions/node/v24.15.0/bin:$PATH"
node -v
pnpm -v
Expected:
- Node
v24.x - pnpm
11.5.0(or project-compatible version)
Measurement runbook (must follow)
- Ensure no extra monorepo tasks are running.
- Use the exact Node 24 PATH prefix in every command.
- Run one warm-up pass that is discarded.
- Run 3 measured passes and compare medians.
- Save only the final medians in
tests/TS_MEMORY_BASELINE_RESULTS.md.
Measurement commands
A. @regle/core compiler diagnostics
PATH="/Users/victorgarcia/.nvm/versions/node/v24.15.0/bin:$PATH" \
./node_modules/.bin/tsc -p "packages/core/tsconfig.json" --noEmit --extendedDiagnostics
Capture:
Memory usedInstantiationsCheck time
B. Full type tests memory
Run build first:
PATH="/Users/victorgarcia/.nvm/versions/node/v24.15.0/bin:$PATH" pnpm build
Then:
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 sizepeak memory footprintreal/user/sys
Recommended sequence:
# 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.
- Compute medians for old baseline and new run.
- Compute delta % =
(new - old) / old * 100. - Evaluate with these thresholds:
- Likely noise: within
±5%for memory metrics. - Watch zone:
>5%and<=10%increase. - Regression candidate:
>10%increase.
- Likely noise: within
- For
Check timeandreal time, treat as noisy:- investigate only if increase is
>15%and reproducible across runs.
- investigate only if increase is
- If
pnpm run test:typecheckexit 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.