a17d86a767
Chasse au défaut d'abord (2 axes) → tree propre : le seul candidat Explore (mobile/AGENT.md:81 « upgrade 54 abandonné » vs mobile_spec.json expo_sdk_major:54) RÉFUTÉ — la ligne distingue runtime ACTUEL (Expo 51) de cible rebuild (Expo 54 S5), le 54 du spec = « rebuild cible Expo 54 (S5) » (mobile-runtime-actual-vs-rebuild-target). Drift numérique README déjà gaté (check_readme_claims vert). Vrai locus = 4e axe de déterminisme jamais balayé : l'ORDRE d'exécution des suites (frères hash-seed / locale-tz / forward-compat n'en varient aucun). Monkeypatch discover_suites→reversed + re-run run_matrix, diff vs regression_run.json commité : totaux byte-identiques (629/612/17) + 24/24 suites tuples identiques. Fermé PAR CONSTRUCTION (runner.run_suite = subprocess+cwd isolé, agrégation = somme indép. de l'ordre) → confirmation teeth, pas découverte. Replayable, occurrence-zéro, isolation subprocess = contrat existant → PAS un gate (#5). 0 chiffre inventé (#6, lus de l'artefact). 0 code moteur V18 (bloqué #6). 0 module produit touché. 0 artefact modifié. 0 commande VPS (#8). Fichiers : ce journal. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>