pre-pushlisted
Install: claude install-skill eric-sabe/engsys
# Pre-push Gate
Trigger: user says "run precheck", "pre-push check", "validate before push", or equivalent.
## The Contract
Run the project's pre-push gate from the repo root before every `git push`. The gate is a
**diff-aware contract**: it inspects `git diff origin/main...HEAD`, then runs only the checks
relevant to the files that changed. It should be enforced by a `pre-push` git hook so it runs
automatically on `git push`. Run it manually if you want early feedback before committing.
The gate is invoked through whatever the project defines — a script (`scripts/precheck.sh`), a
package-manager task (`npm/pnpm/yarn run precheck`, `make precheck`, `just precheck`,
`cargo`/`go`/`mvn` equivalents), or a Taskfile target. The name and runner are project-specific;
the contract is not.
```bash
<precheck-command> # standard — diff-driven, runs relevant gates only
<precheck-command> --full # force the full suite even if the diff didn't trigger it
PUSH_OVERRIDE=1 git push ... # emergency bypass — no local gates run, CI is sole safety net
```
## What It Does (diff-aware gate selection)
The gate maps changed paths to checks. Always run **build + lint**; layer on the rest based on
what the diff touched. Each project defines its own table — the shape is always
`changed files → gates triggered`:
| Changed files | Gates triggered |
| -------------------------------------- | -----------------------