DIFF LOCK VALIDÉ. Procède au redéploiement complet.

ÉTAPE 1 — ARCHIVAGE LOGS DE TEST
Créer /sites/gaigi.ch/wp-content/uploads/_archive/dry-run-tests/ 
si absent.
Déplacer les 5 CAIGE_IMPORT_LOG_20260524_0813*.txt depuis 
uploads/ vers _archive/dry-run-tests/.
Capture après archivage (uploads/ propre).

ÉTAPE 2 — SAUVEGARDE ANCIEN MU-PLUGIN
Renommer dans /sites/gaigi.ch/wp-content/mu-plugins/ :
  caige-import-questions-v2.php 
  → caige-import-questions-v2.php.bak
Capture après renommage.

ÉTAPE 3 — UPLOAD NOUVELLE VERSION
Uploader caige-import-questions-v2.php dans mu-plugins/.
- Taille attendue : 16 969 octets
- SHA256 attendu : e76a03b2dcfa9ecba1bcd1a3fdd439d3d7700017fa3600a64984d68138459f9a
- Permissions : 644
Capture du fichier en place.

ÉTAPE 4 — VÉRIFICATIONS PRÉ-DRY-RUN
Confirmer dans /sites/gaigi.ch/wp-content/uploads/ :
- caige_quiz_M1_M2_M4_M5.csv présent (66 174 octets)
- CAIGE_BACKUP_DONE.flag présent
- CAIGE_TARGET.flag présent (contenu "M1")
- CAIGE_EXECUTE.flag ABSENT (priorité)
- CAIGE_IMPORT.lock ABSENT (sera créé puis nettoyé)
- Aucun CAIGE_IMPORT_LOG_*.txt résiduel
Capture WebFTP.

ÉTAPE 5 — DÉCLENCHEMENT DRY-RUN DE VALIDATION DU LOCK
1. Ouvrir /wp-admin/index.php (Tableau de bord)
2. Recharger UNE SEULE FOIS
3. Vérifier qu'aucune erreur PHP n'apparaît
4. Capture du tableau de bord
5. ATTENDRE 30 secondes (laisser shutdown_function se déclencher 
   sur tous les workers parallèles)
6. Retour WebFTP, lister les CAIGE_IMPORT_LOG_*.txt dans uploads/
7. CONTRÔLE CRITIQUE : doit y avoir EXACTEMENT 1 fichier log 
   (pas 5 comme la fois précédente)
8. Vérifier qu'il n'y a plus de CAIGE_IMPORT.lock dans uploads/ 
   (nettoyage shutdown OK)

ÉTAPE 6 — LECTURE DU LOG UNIQUE
1. Télécharger le log
2. Présenter contenu intégral en chat
3. Vérifier compteurs identiques au dry-run précédent :
   - Mode : DRY-RUN
   - Target : M1
   - 88 lignes CSV lues
   - 22 filtrées M1
   - 22 OK [DRY], 0 erreur, 0 doublon
4. Vérifier option WordPress caige_quiz_import_v2_last_run

CONTRAINTES STRICTES
- Mode dry-run STRICT : NE PAS créer CAIGE_EXECUTE.flag
- Si plus d'1 log généré : LOCK INSUFFISANT, ARRÊTER et signaler
- Si CAIGE_IMPORT.lock reste dans uploads/ après 60 secondes : 
  ARRÊTER (signal de shutdown non déclenché ou crash)
- Si erreur PHP visible : ARRÊTER et capturer
- Si log montre INSERTED (pas WOULD_INSERT/[DRY]) : ARRÊTER 
  immédiatement

RAPPORT ATTENDU
A. Confirmation archivage 5 logs précédents
B. Confirmation .bak posé sur ancien mu-plugin
C. SHA256 nouvelle version vérifié = e76a03b2...459f9a
D. Capture WebFTP état uploads/ pré-dry-run
E. Capture admin sans erreur PHP
F. Nombre de logs générés (CRITIQUE : doit être 1)
G. Absence du fichier .lock après nettoyage
H. Contenu intégral du log unique
I. Compteurs : 88 / 22 / 22 / 0 / 0

ARRÊT APRÈS ÉTAPE 6.
NE PAS créer CAIGE_EXECUTE.flag.
Je validerai le log unique avant tout passage en mode execute.<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="//www.gaigi.org/main-sitemap.xsl"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
	<sitemap>
		<loc>https://www.gaigi.org/post-sitemap.xml</loc>
		<lastmod>2026-04-28T05:27:15+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://www.gaigi.org/page-sitemap.xml</loc>
		<lastmod>2026-05-23T14:06:57+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://www.gaigi.org/elementskit_template-sitemap.xml</loc>
		<lastmod>2026-05-21T09:49:55+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://www.gaigi.org/press-release-sitemap.xml</loc>
		<lastmod>2026-04-08T21:15:55+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://www.gaigi.org/press-review-sitemap.xml</loc>
		<lastmod>2026-04-08T21:27:47+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://www.gaigi.org/publication-sitemap.xml</loc>
		<lastmod>2026-05-11T15:31:01+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://www.gaigi.org/sfwd-courses-sitemap.xml</loc>
		<lastmod>2026-05-23T19:42:25+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://www.gaigi.org/sfwd-lessons-sitemap.xml</loc>
		<lastmod>2026-05-23T18:14:18+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://www.gaigi.org/sfwd-quiz-sitemap.xml</loc>
		<lastmod>2026-05-23T09:50:17+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://www.gaigi.org/sfwd-certificates-sitemap.xml</loc>
		<lastmod>2026-05-23T08:15:51+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://www.gaigi.org/groups-sitemap.xml</loc>
		<lastmod>2026-04-25T19:01:27+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://www.gaigi.org/category-sitemap.xml</loc>
		<lastmod>2026-04-28T05:27:15+00:00</lastmod>
	</sitemap>
</sitemapindex>
<!-- XML Sitemap generated by Rank Math SEO Plugin (c) Rank Math - rankmath.com -->