| 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 build before any test-related measurement.
pnpm run test:typecheck should 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.6.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 used
Instantiations
Check 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 size
peak memory footprint
real/user/sys
Recommended sequence:
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
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.
- For
Check time and real time, treat as noisy:
- investigate only if increase is
>15% and reproducible across runs.
- 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.