name: compiler-verify
description: Use when you need to run all compiler checks (tests, lint, format) before committing. Detects whether TS or Rust code changed and runs the appropriate checks.
Compiler Verify
Run all verification steps for compiler changes.
Arguments:
- $ARGUMENTS: Optional test pattern for yarn snap -p <pattern>
Instructions
Detect what changed by running
git diff --name-only HEAD(or vs the base branch). Categorize changes:- TS changes: files in
compiler/packages/ - Rust changes: files in
compiler/crates/ - Both: run all checks
- TS changes: files in
If TS changed, run these sequentially (stop on failure):
yarn snap(oryarn snap -p <pattern>if a pattern was provided) — compiler testsyarn test— test full compileryarn workspace babel-plugin-react-compiler lint— lint compiler source
If Rust changed, run these sequentially (stop on failure):
bash compiler/scripts/test-babel-ast.sh— Babel AST round-trip testsbash compiler/scripts/test-rust-port.sh— full Rust port test suite (compares Rust vs TS compiler output across all passes; must have 0 failures — do not regress)yarn snap --rust— end-to-end snap tests using the Rust compiler (compares compiled output and logger events against.expect.mdfixtures; useyarn snap --rust -p <pattern>for focused checks)
Always run (from the repo root):
yarn prettier-all— format all changed files
If implementing a plan doc, check:
- Plan doc has no unaddressed "Remaining Work" items
- Plan doc status is updated to reflect current state
Report results: list each step as passed/failed. On failure, stop and show the error with suggested fixes.
Common Mistakes
- Running
yarn snapwithout-pis fine for full verification, but slow. Use-pfor focused checks. - Running prettier from compiler/ — must run from the repo root.
- Forgetting Rust tests — if you touched
.rsfiles, always run the round-trip test andyarn snap --rust.