A phase may only be committed, and a unit may only move to
phases/complete/, when this script exits 0. It runs the project's real
gate from AGENTS.md §4 (full pytest including browser E2E, ruff check,
ruff format --check, pyright) so a failure anywhere blocks the commit,
plus language-agnostic repo-hygiene checks that reject tracked files
matching .gitignore rules and log-drop / key-material shapes
(.env.example stays allowed as a config template).
LLM-Generated: true