---
description: Vérifications obligatoires avant chaque commit/push (php -l, ReflectionClass, bundle Vite, git status)
alwaysApply: true
---

# Vérifications avant push

## PHP — TOUJOURS, sur chaque fichier .php modifié
1. `php -l <fichier>` sur chaque .php modifié.
2. `ReflectionClass` (instanciation) sur chaque classe modifiée (controller, modèle, service).

⚠️ `php -l` NE détecte PAS : un `use`/import de trait manquant, une classe/trait résolu dans le mauvais namespace, une redéclaration, une relation Eloquent inexistante. Ces erreurs sont des FATALS À L'EXÉCUTION (HTTP 500) invisibles au lint. Seul `ReflectionClass` + une instanciation les attrape. Les tests sqlite sont souvent skipped → ne pas s'y fier.

Compléter avec la règle `fatals-runtime-laravel` : `authorize` + trait, alignement paramètre↔route, et `FoncierControllersIntegritySourceTest` (#1103) avant push si des contrôleurs Foncier sont touchés — coller la sortie brute.

## Front — si un .vue / .css / .js source est modifié
- Se synchroniser sur `origin/main` **à jour** avant de builder (voir `zones-communes-serialisation`).
- Rebuild Vite EN LOCAL.
- Committer `public/build/` (manifest + bundles) DANS LE MÊME COMMIT que les sources.
- Donner le hash du/des bundle(s) régénéré(s) dans la synthèse.
- Oubli fréquent : modifier un .vue sans committer public/build/ → le changement n'apparaît pas en prod.
- JAMAIS deux lots front en parallèle (`manifest.json` commun).

## Avant commit
- `git status` doit être clean SAUF `PROJECT.md` et `UpdateAcquereurFicheRequest.php` (jamais committés).
- Le commit doit inclure TOUT : sources PHP + Vue + migration + public/build/ + entrée journal.
- Un lot = un commit (voir `convention-suivi`).
