@@ -33,9 +33,18 @@ branch diff, which repays costs already paid on a repeat push.** Two levers:
3333Mid-work verification is a judgment call, and the cheapest sufficient check is
3434usually an ad hoc command, not this script — ` bun run ts ` after a frontend
3535edit, one pytest file after a backend fix. That habit is correct; this skill is
36- the ** push checkpoint** : run it right before ` git push ` , scoped as above.
37- Cheap gates (` pre-commit ` ~ 6s, ` ts ` 2–3s) cost nothing to include; the
38- expensive gates (` build ` ~ 78s, ` pytest ` ~ 96s) are the reason scoping matters. The script automates one shortcut itself: when HEAD is
36+ the ** checkpoint before sharing work** — a push, a handoff to the
37+ orchestrator, a pre-merge check — scoped as above. Cheap gates (` pre-commit `
38+ ~ 6s, ` ts ` 2–3s) cost nothing to include; the expensive gates (` build ` ~ 78s,
39+ ` pytest ` ~ 96s) are the reason scoping matters.
40+
41+ ** Skip the local pytest when your next operation triggers the backend-test
42+ CI anyway** (` test-backend.yml ` runs the suite on every push touching
43+ ` backend/** ` , any branch) — running it locally right before such a push pays
44+ twice for the same verdict (` --only pre-commit,ts,build ` covers the rest).
45+ Run pytest locally when iterating on expected failures, or at a checkpoint
46+ CI never sees (a worker handing a branch to the orchestrator, a pre-merge
47+ check of unpushed work). The script automates one shortcut itself: when HEAD is
3948exactly the pushed tip (clean ` backend/ ` worktree) and CI's ` test-backend.yml `
4049already completed for that SHA, it reuses CI's verdict instead of running
4150pytest locally — the summary line says so when it happens. A CI * failure* for
0 commit comments