name: tsz-project-bench description: Work on TSZ benchmark and project-corpus compatibility. Use when investigating bench.yml failures, project compile guard rows, benchmark dashboard data, PGO bench setup, fixture metadata drift, or real-project blockers such as utility-types, ts-toolbelt, ts-essentials, rxjs, type-fest, zod, kysely, Next, or Vite.
TSZ Project Bench
Use for project-corpus rows, benchmark harness, fixture metadata, PGO bench setup, and website benchmark data.
Rules
- Read
AGENTS.mdanddocs/plan/ROADMAP.mdfor durable benchmark/project work. - Inspect overlapping PRs/issues.
- Red row = correctness blocker before speed problem unless failure is runtime, residency, timeout, or OOM.
- Keep fixture metadata shared across
project-fixtures.sh,bench-vs-tsgo.sh, andproject-compile-guard.sh. - Wrap long/heavy local commands with
scripts/safe-run.sh.
Sources
scripts/bench/project-fixtures.shscripts/bench/bench-vs-tsgo.shscripts/ci/project-compile-guard.shcrates/tsz-website/src/_data/benchmark_data.js.github/workflows/bench.yml
Workflow
- Identify row, phase, and first failure: prepare,
tscvalidation, tsz check, emit scope, crash, timeout, OOM, metadata, website ingestion, timing. - Required/canary/all set:
TSZ_PROJECT_COMPILE_SET=<required|canary|all>. - Reproduce with the narrowest filter.
- If typecheck fails, reduce to owning compiler operation before optimizing.
- For speed work, name repeated operation and complexity change. No fixture-name special cases.
Commands
./scripts/bench/bench-vs-tsgo.sh --prepare-only
./scripts/bench/bench-vs-tsgo.sh --quick --filter "<row>" --json-file /tmp/bench.json
TSZ_PROJECT_COMPILE_FILTER="<row>" TSZ_PROJECT_COMPILE_SET=required scripts/ci/project-compile-guard.sh
TSZ_PROJECT_COMPILE_ALLOW_FAILURES=1 TSZ_PROJECT_COMPILE_SET=all scripts/ci/project-compile-guard.sh
PR notes: goal (green, fast, or grow), row, before/after failure class,
first broken phase, owner layer, fixture metadata changes, whether timing is
meaningful, commands/CI links.