blog.vfg.lol

STATUS — cotejardin-site — 2026-10-03

STATUS — cotejardin-site

Article généré automatiquement depuis le STATUS.md de cotejardin-site — 2026-10-03. Les chemins locaux, les hôtes internes et les noms de variables ont été neutralisés.

STATUS — Côté Jardin

État vivant du projet : où on en est, ce qui reste ouvert, ce qui bloque.

Dernière MAJ2026-08-18 (correction responsive mobile déployée)
Archive historiquedocs/archive/status/STATUS-historique-jusqua-2026-08-15.md
Reprise sessiondocs/plan/REPRISE.md
Matrice de concurrencedocs/plan/00-index.md

Lire l’archive pour le journal détaillé. Une tâche terminée met à jour ce tableau dans le même commit.


Où en est le site

ProductionOui — cotejardin.pizza, Vague 6 déployée le 15/08/2026 (CMS thèmes + admin apparence + interactions ; code lot I sur main)
Indexation🔒 robots.txt → Disallow: / (délibéré jusqu’à la bascule SEO)
HTTPS✅ Certificat valide (www compris), revérifié 15/08/2026
DesignProposition C — « Grand & clair »
Carte publiqueMasquée temporairement (T-096) ; données internes conservées
Annonce braderie 15 aoûtDésactivée (textes.annonce.actif: false)
Admin OVHOuverte — https://cotejardin.pizza/admin/ (ADR-002)
ADR-003 archi✅ acceptée (16/08) — revue baseline corrigée
ADR-004 runtime✅ acceptée (16/08) — autorité runtime, sync-app préserve la runtime
T-090 + T-111✅ fait, mergé sur main — PR #6, commit 4d4c104 (17/08)
Données Yann (B3, B6, allergènes, avis, photos, GPS)Hors plan technique par décision FG (17/08) — saisie directe en admin, pas de développement à prévoir. Écrans déjà livrés (lot D). Détail : § En attente chez Yann
Bloquants levésB1, B2, B4, B5, B7, B8

Synthèse des lots

LotÉtat
A–F✅ terminés
G — Déploiement✅ T-060, T-062, T-063 · T-061 ⬜
H — Bascule SEO🔴 attend la saisie admin des données Yann (plus une tâche de dev — § En attente chez Yann)
I — CMS natif✅ clos — T-097…T-107 · Vague 6 déployée 15/08
J — Finalisation qualité✅ clos (vagues 0–4, 16/08) — T-120…T-148 · baseline 18/4 🟠 · JS 6060/6144 · plan PLAN-lot-J-ultime-2026-08-16.md
K — Portes qualité✅ clos (16/08) — T-150…T-155 · plan PLAN-lot-K-portes-qualite-2026-08-16.md · pas de deploy OVH
Cascade runtime portable🔄 en cours — T-110 ✅, T-090 ✅, T-111 ✅ (PR #6) · T-112 ✅ recadrée (PR #7) · T-113 ✅ fait, corrige un bug ADR-004 (17/08, PR en attente) · T-114…T-115 ⬜ GO séparé — objectif v1 stable

Détail : 00-index.md · lots clos : archive.


Tâches encore ouvertes

Lot I — CMS natif — clos

Presets : carnet-village, comptoir, maison-images ; fete-locale événements. Priorité : événement actif > thème visiteur > carnet-village. ADR-003 reportée. Recette : cms-recette.md.

#TâcheStatutFiche
T-097Cadrage CMS / thèmes✅T-097-cadrage-cms-themes.md
T-100Modèle / schéma CMS✅T-100-modele-cms.md
T-103Conditions + expiration✅T-103-conditions-expiration.md
T-098Thème visiteur mémorisé✅T-098-themes-visiteur.md
T-101Rendu + thèmes + pastille✅T-101-rendu-themes.md
T-102Admin Apparence / Événements✅T-102-admin-apercu-cms.md
T-104Micro-interactions sûres✅T-104-micro-interactions.md
T-105Tests + clôture CMS✅T-105-tests-cloture-cms.md
T-106Allowlist thème visiteur✅T-106-allowlist-theme-visiteur.md
T-107Retirer CSS mort .gros-texte✅T-107-retire-gros-texte-css.md

Vague 6 faite (15/08) : deploy + sync-app après verifier.php 11/4 🟠. robots.txt inchangé (Disallow: /). MDP admin conservé. Le code lot I est sur main ; les mentions « pas de commit » du 15/08 désignaient l'absence de commit de clôture dédié au moment du deploy, pas l'absence du code sur la branche.

Lot J — Finalisation qualité — ✅ clos (vagues 0–4, 16/08)

Plan : PLAN-lot-J-ultime-2026-08-16.md. Vague 1 mergée (16/08) : T-120, 121, 122, 123, 125, 126, 127, 128, 138, 146 → main. Vague 2 mergée (16/08) : T-124, 129, 130, 131, 132, 133, 142, 143, 144, 145 → main. Vague 3 mergée (16/08) : T-134, 135, 136, 137, 139, 147, 148 → main. Vague 4 mergée (16/08) : T-140, T-141 → main. Lot J clos — paliers humains : REPRISE.md §3. Matrice : 00-index.md § Lot J · DISPATCH.md § Lot J. T-044 absorbé par T-128 ✅.

#TâcheStatut
T-120Retirer djpizza accueil✅
T-121Lanceur tests/tous.php✅
T-122Garde-fou renforcé✅
T-123Schéma carte + filtres✅
T-125Auth admin durci✅
T-126Publication verrou✅
T-127API mesure atomique✅
T-128Purge audience + doc cron✅
T-138Deploy wrappers sync✅
T-146Guide admin Apparence✅
T-124CI GitHub verification✅
T-129Accueil LCP + meta✅
T-130Carte noindex + sitemap✅
T-131Pages légales alignées✅
T-132JSON-LD Restaurant✅
T-133Apparence defer + budget✅
T-134CSS polices contraste✅
T-135Backups rotation✅
T-136.htaccess sécurité + cache✅
T-137Verifier baseline 18/4✅
T-139Aperçu CSP / mbstring signal✅
T-148Doc garde sync-app✅
T-142Hygiène handoff 08✅
T-143Tuto admin Apparence✅
T-144Recette CMS → tous.php✅
T-145README lot I✅
T-147Budget JS CMS commentaires✅
T-140Instantanés régénération✅
T-141Restauration scénarios doc✅

Instantanés : tests/rendu/instantanes.test.php 32/32 (T-140).

Lot K — Portes qualité — ✅ clos (16/08)

Plan : PLAN-lot-K-portes-qualite-2026-08-16.md. Guide : portes-qualite-workflow.md. Handoff : 11-portes-qualite-session-2026-08-16.md. Preflight : preflight-deploy.md. Aucun deploy OVH dans ce lot.

#TâcheStatut
T-150Vague 0 docs + fiches✅
T-151Baseline machine + CI✅
T-152Vérifier Possède vs diff✅
T-153Hooks Cursor + /.tmp/✅
T-154Preflight deploy✅
T-155Hygiène docs + CI✅

Autres ouvertes

#TâcheStatutNote
T-061Mise en ligne noindex⬜Disallow: / déjà en place
T-070…T-072Bascule SEO🔴Attendent Yann — chemin de fiche
T-080MySQL OVH💡Pas de GO
T-110Autorité runtime + ADR-004✅ADR-004 rédigée ; handoffs + CLAUDE.md réconciliés
T-090Squelette archi (cascade)✅Mergé sur main (PR #6, commit 4d4c104, 17/08)
T-111Moteurs appelables (cascade)✅Mergé sur main (PR #6) ; moteurs appelables 17/17 ; tests/tous.php 32/33 (33/33 hors pitfall encodage Windows console — non-régression)
T-112Géométrie runtime OVH✅ recadréeObjectif déjà en prod (T-138) ; recentrée sur les tests manquants — voir fiche § Constat
T-113Publication transactionnelle✅ fait, PR en attenteCorrige un bug ADR-004 réel (publier() écrasait la graine) — voir fiche § Constat
T-114…T-115Suite runtime portable⬜Prochain GO

Clos récemment (ne pas redispatcher)

#Note
T-149✅ comparatif modèles Lot J livré : docs/reference/comparatif-modeles-lot-J-2026-08-16.md (post-Lot J documentaire)
T-090…T-092Architecture / miroir / mouvement
T-093✅ via T-095 (regex class="avis")
T-095✅ corrections post-audit
T-096✅ carte masquée
T-094✅ instantanés T-101/T-104 ; instantanes.test.php 32/32
T-105✅ recette Vague 5 ; Vague 6 déployée 15/08 (code sur main)
T-106✅ allowlist cotejardin-theme-visiteur ; Gros texte retiré
T-107✅ CSS mort .gros-texte retiré de styles.css

Lot L — Audit croisé (19/08/2026)

Audit croisé multi-agents sur SHA 8a7ee98 : 7 lentilles indépendantes, en aveugle les unes des autres, 74 findings. Rapport complet : docs/reference/audit-croise-2026-08-19.md. 11 fiches ouvertes, T-160 … T-170 (bloc T-160…T-179 réservé). Plan d'action : docs/plan/PLAN-lot-L-audit-2026-08-20.md — 6 décisions FG bloquent le dispatch de 4 fiches sur 11.

Trois S0 — ils bloquent le jalon noindex T-061. Tous rejoués sur copie hors dépôt :

  • A-LEG-03 — les 9 champs legal.* mis à "-" éteignent l'alerte 🟠 « bloquant B3 » (4 → 3) et font disparaître du HTML publié la bannière « ne pas mettre en ligne » (0 occurrence). C'est le geste le plus naturel de l'écran : faire taire la pastille 🔴.
  • A-LEG-01 — carte.publiee = true avec 24 plats sans allergènes → 18 verts, exit 0. tests/tous.php attraperait, mais ni cmd_deploy ni preflight_deploy.php ne le lancent : le filet existe et n'est branché sur aucun chemin de déploiement.
  • A-LEG-02 — cocher les allergènes éteint le 🟠 alors qu'aucun gabarit ne les rend.

Deux motifs de fond, chacun confirmé par plusieurs lentilles aveugles :

  1. Un contrôle mesure la forme de la donnée, jamais l'effet publié. src/inc/validation.php ne lit jamais dist/.
  2. ADR-004 a été écrite, jamais propagée. sync-app écrase la runtime de production (ftp_deploy.py:816) contre la règle 2 de l'ADR — redécouvert indépendamment par L3 (code) et L7 (docs), et la commande a déjà tourné en réel (voir §Dernières vérifications). Les règles Cursor l'ignorent, aucun test ne la protège, sa soupape fetch-runtime n'a jamais été ouverte en fiche.

7 mutations vérifiées passent la barrière au vert, dont robots.txt Disallow: / → Allow: /, Options -Indexes → +Indexes, et deux chiffres inversés dans le téléphone. Supprimer tests/legal/legaux.test.php en entier laisse Baseline conforme.

Réserve de fiabilité : la phase de réfutation croisée n'a pas eu lieu (limite de session). 11 findings parmi les plus lourds ont été contre-vérifiés par le coordinateur, dont 2 requalifiés — soit ~18 % de correction sur l'échantillon. Les S0 et S1 sont sûrs, tous rejoués ; les S3 et au-dessous sont solides mais non garantis.

Correction de mesure : tests/tous.php n'a pas un résultat unique. Le verdict a basculé pendant l'audit, sans qu'une ligne de code change : 34/35 exit 1 pendant les heures d'ouverture, 35/35 exit 0 après 22 h Paris. instantanes.test.php compare un instantané figé à data-cms-ouvert="0" avec une génération fraîche. Toute mesure publiée doit désormais porter son heure (T-164, T-169). Piège associé : sous Git Bash Windows, TZ=Europe/Paris date n'applique pas le fuseau — relever l'heure avec PHP et DateTimeZone("Europe/Paris").

Palier humain prioritaire : vérifier si un sync-app a déjà détruit une saisie de Yann, en comparant la runtime OVH aux sauvegardes site-*.json.

En attente chez Yann

Bloquent le lot H. Décision FG (17/08) : ce lot de données sort du plan technique — plus une entrée de backlog dev à suivre agent par agent. Les écrans admin qui permettent de les saisir existent déjà (lot D : legal.php, carte.php, avis.php, horaires.php…) ; la suite se fait en ligne, par Yann ou FG, pas par un agent qui « corrigerait » du code pour ça. Conservé ici comme mémo de contenu, pas comme tâche à dispatcher.

Attendu
🔴9 infos légales — saisissables dans l’admin
🔴Allergènes par pizza · modalités sans gluten
🟠Avis · réservation / terrasse / congés · fériés
🟠Autorisation photos — docs/handoff/autorisation-droit-image.md
🟡GPS relevés sur place

Relance : docs/handoff/questions-yann-telegram.md.


Dernières vérifications (18/08/2026)

  • php tests/tous.php → 35/35 au vert (43 découverts, 8 relayés CMS)
  • php bin/preflight_deploy.php --generer → OK (verifier 18/4 🟠 attendu, génération dist 4 pages / 33 ressources)
  • deploy OVH exécuté en réel : python scripts/ftp_deploy.py deploy (37 fichiers envoyés, sans miroir)
  • sync applicatif/runtime exécuté en réel : python scripts/ftp_deploy.py sync-app (136 fichiers envoyés + cotejardin-donnees/site.json)
  • wrappers admin/api régénérés en réel : python scripts/ftp_deploy.py symlink-admin (11 wrappers admin + api/mesure.php)
  • contrôles post-deploy : python scripts/ftp_deploy.py ls OK ; curl.exe -I https://cotejardin.pizza/ 200, curl.exe -I https://cotejardin.pizza/admin/ 200, curl.exe -I https://cotejardin.pizza/api/mesure.php 200
  • Paliers humains restants : cron purge (T-128) · drill T-141 · GO T-112 (suite cascade runtime) · Lot H (attend saisie admin, hors dev) — REPRISE.md §3

Ambiguïtés restantes

  1. Collisions de chemins — lot H portable ; toujours cibler le fichier (00-index § collisions). Anciens numéros CMS T-064…T-069 → T-100…T-105 ; cascade runtime → T-110…T-115.
  2. Allowlist localStorage — T-106 : legaux.test.php autorise cotejardin-theme-visiteur et cotejardin-guide-admin-v1. cotejardin-gros-texte n’est plus whitelistée (bouton retiré T-101).

Journal

Historique 13–15/08 gelé dans l’archive. Entrées courtes ici :

  • 2026-08-18 — Correction responsive mobile : le bandeau animé de l'accueil créait un scroll horizontal sur petit écran malgré le rognage de body. Ajout de overflow-x: clip sur html dans src/assets/styles.css. Génération et vérification OK (18/4 🟠), déploiement réel de 37 fichiers. Contrôle production à 390 px : scroll horizontal à 0 sur accueil ; tablette, PC et pages légales sans débordement détecté.

  • 2026-08-18 — Déploiement v1 exécuté + filière génération directe : extraction des helpers légaux dans src/inc/gabarits-legaux.php pour supprimer les collisions de fonctions au second rendu ; bascule de la publication et de l'aperçu CMS vers generer_site() en appel direct (plus de sous-processus sur cette filière), avec restauration explicite de COTEJARDIN_SITE_JSON en fin d'appel. Tests adaptés (legaux.test.php copie désormais gabarits-legaux.php dans son bac ; preuve de mutation conditions-cms.test.php rendue robuste aux warnings PHP de démarrage). Vérifications avant release : tests/tous.php 35/35, preflight OK. Déploiement réel exécuté : deploy (37 fichiers), sync-app (136 fichiers + runtime), symlink-admin (wrappers admin/api). Contrôles post-deploy : webroot listé en SFTP, endpoints publics/admin/api en 200.

  • 2026-08-17 — T-113 publication transactionnelle (corrige un bug ADR-004) : en lisant publication.php avant d'écrire du code, découverte que l'ancien publier() copiait le candidat admin sur donnees/site.json du dépôt avant validation/génération, et ne restaurait jamais cette copie sur succès — chaque publication réussie écrasait silencieusement la graine versionnée. Exactement le piège que l'ADR-004 documente, resté ouvert faute de mise à jour de publier() après son acceptation. Corrigé : le candidat admin (déjà hors webroot, déjà l'autorité runtime par construction ADR-001/002) est validé directement via valider_site() (T-111) sans jamais toucher donnees/site.json du dépôt — preuve directe : le dépôt renommé de côté pendant tout un appel publier(), qui réussit quand même. Deuxième découverte en écrivant le test : generer_site() (T-111) n'est appelable qu'une fois par processus PHP (fonctions globales des gabarits légaux qui collisionnent) — un appel direct aurait planté chaque worker FPM à sa deuxième publication. Recentré : validation directe, génération encore en sous-processus (hors Possède, src/gabarits/**) avec COTEJARDIN_SITE_JSON injecté explicitement. Promotion release simplifiée : dist/ n'est mis de côté qu'au tout dernier moment (staging séparé), pas pendant toute la génération. Nouveau hook de preuve COTEJARDIN_TEST_EXCEPTION_PROMOTION (rollback entre les deux promotions, jamais testé avant). verifier.php 18/4 🟠 inchangé ; tests/tous.php 35/35 ; persistance.test.php, publication-verrou.test.php, publication-cms.test.php (T-029/T-126/ T-102, hors Possède) toujours verts sans modification. Pas de merge vers main : PR ouverte pour relecture FG.

  • 2026-08-17 — T-112 recadrée (géométrie runtime OVH) : à l'ouverture, constat que l'objectif principal de la fiche (webroot séparé de l'application privée, ADR-002) est déjà en production depuis T-138 (16/08, commande symlink-admin dans scripts/ftp_deploy.py) — créer public/admin/index.php/public/api/mesure.php versionnés aurait dupliqué ce mécanisme plutôt que de le tester. Recentrée sur le trou réel : aucune preuve automatisée que ADMIN_WRAPPERS reste synchronisé avec src/admin/*.php (dérive = 404 silencieux en prod), ni que le générateur de wrapper reste inerte hors SFTP. Livré : tests/technique/geometrie-runtime.test.py (23 contrôles, dont deux preuves négatives — injection dans une cible piégée, écran ajouté hors liste) ; petit refactor pur de ftp_deploy.py (contenu_wrapper() extrait, comportement identique, symlink-admin --essai revérifié). verifier.php 18/4 🟠 inchangé ; tests/tous.php 34/34. Fiche T-112 mise à jour avec le constat et les critères recentrés. Pas de merge vers main : PR ouverte pour relecture FG.

  • 2026-08-17 — PR #6 mergée sur main + cap v1 stable : revue des 6 points de relecture du handoff 12 (autoloader src/amorce.php, garde-fou d'architecture avec preuve négative, profil_runtime() refuse source/cible vide, validerCible() appelé avant effacer() dans generation.php, adaptateurs CLI bin/verifier.php/bin/generer.php minces, preuve négative § 8 de moteurs-appelables.test.php détectée en appel direct et en sous-processus CLI) — tout conforme à ce qu'annonçait la PR. Merge confirmé par FG (commit 4d4c104). verifier.php 18/4 🟠 inchangé ; tests/tous.php 32/33 en environnement Bash Windows par défaut, 33/33 avec PYTHONUTF8=1 (le seul échec est un pitfall d'encodage console cp1252 sur l'emoji 🟠 dans verifier_baseline.test.py, pas une régression PR #6). Worktree T-090-T-111-squelette-moteurs désinscrit de Git (branche locale supprimée) ; dossier physique verrouillé par un process tiers, à nettoyer manuellement. Décision FG : les données Yann (B3, B6, allergènes, avis, photos, GPS) sortent du plan technique — saisie admin directe (écrans lot D déjà livrés), plus une tâche de dev à suivre. Cap : v1 release stable — prochaine étape technique = cascade runtime portable T-112…T-115.

  • 2026-08-17 — T-090 + T-111 commités (worktree, PR en attente) : squelette 4 couches (src/Domaine, src/Application + 4 ports DepotSite/DepotMesures/Journal/ReferenceOpposable, src/Infrastructure, src/Presentation) + autoloader PSR-4 maison (src/amorce.php, sans autoload Composer) + garde-fou d'architecture tests/architecture/dependances.test.php (pattern maison, 2/2 dont preuve négative). Moteurs extraits : valider_site() (src/inc/validation.php) et generer_site() (src/inc/generation.php) — appelables deux fois dans le même processus sans collision ni exit ; profils profil_depot() / profil_runtime() (src/inc/profils-execution.php), ce dernier refuse source/cible vide avant suppression (fiche T-111 § Piège). bin/*.php deviennent adaptateurs CLI minces. dist/ byte-pour-byte identique à main ; verifier.php 18/4 🟠 ; tests/tous.php 32/33 (instantanes.test.php — 4 "zéro diff" pré-existants sur main, pas une régression) ; moteurs-appelables.test.php 17/17 ; verifier-invariants.test.php 9/9. Limitation documentée : generer_site() appelable une fois par processus (gabarits mentions-legales.php / confidentialite.php déclarent des fonctions globales qui collisionnent au second rendu — nettoyage T-095, hors périmètre). Handoff 12-relecture-T-090-T-111-2026-08-17.md. Pas de merge vers main : FG relit puis décide.

  • 2026-08-16 — ADR-003 acceptée + ADR-004 rédigée : revue de l'ADR-003 (baseline corrigée 18 323 lignes / 65 fichiers au 16/08, ~32 tests à migrer au lieu de 7, doublon chemin_donnees_dir() ajouté, const RACINE étendue aux tests, taille réelle des écrans admin ~267 lignes, statut proposée → acceptée, renvoi vers ADR-004 pour l'autorité runtime). ADR-004 « Autorité runtime » créée — contrat à 4 niveaux (graine / copie dépôt / runtime / release), 8 règles opposables, sync-app préserve la runtime (inverse 05 §3 ligne 167), alerte humaine périodique pour 04 vs runtime, ReferenceOpposable lu par agents/dev seuls. Handoffs 03/04/05/08 + CLAUDE.md réconciliés (T-110). verifier.php 18/4 🟠 inchangé. Worktree T-090 + T-111 ouvert (pas de merge vers main). Voir ADR-003 et ADR-004.

  • 2026-08-16 — Lot K clos : portes qualité T-150…T-155 livrées (baseline pinnée, Possède, hooks Cursor, preflight, hygiène docs). verifier.php 18/4 🟠 ; verifier_baseline.py conforme (instantanés en ignore horaire). Pas de deploy OVH.

  • 2026-08-16 — Lot K Vague 0 : handoff 11 + guide portes qualité + PLAN PLAN-lot-K-portes-qualite-2026-08-16.md

    • fiches T-150…T-155. Objectif : portes mécaniques (baseline, Possède, hooks Cursor, preflight, hygiène docs). Pas de deploy OVH.
  • 2026-08-16 — T-149 : création fiche docs/plan/taches/T-149-comparatif-modeles-lot-J.md et livrable docs/reference/comparatif-modeles-lot-J-2026-08-16.md. Comparatif Cursor / Ollama / Opus produit selon handoff 10 (6 axes + avis sur fusion), sans reouverture Lot J ni dettes connues. verifier.php conserve la baseline 18/4 🟠. Pas de commit.

  • 2026-08-16 — Relecture Lot J : relecture lecture seule post-swarm. verifier.php 18/4 🟠 (conforme) ; tests/tous.php 27/28 (écart vs 28/28 annoncé — instantanes.test.php / data-cms-ouvert, point #5 du handoff 09, pas une régression). Conformités T-126/T-127/T-136/T-137/T-138/ T-139/T-140 vérifiées sur le code. Livrable docs/reference/rapport-relecture-lot-J-2026-08-16.md ; handoff 10-relecture-lot-J-2026-08-16.md (mission : retour comparatif forces/faiblesses des 3 modèles). Pas de commit.

  • 2026-08-16 — Lot J Vague 3 : merge coordinateur T-134…148 sur main (conflit STATUS résolu ; POLICES_REQUISES aligné post-T-134). verifier.php 18/4 🟠 ; budgets.test.php 35/35 (6060/6144) ; htaccess.test.php 12/12 ; tests/tous.php 27/28 (instantanes.test.php — T-140). Dette D1 contenu.php:123 notée REPRISE §4. Pas de push.

  • 2026-08-16 — T-137 : erifier.php durci — schéma, assets, pizzas vs 04 (compte dynamique), accès gardés. Baseline 18/4 🟠 documentée ; erifier-invariants.test.php 9/9. Pas de push.

  • 2026-08-16 — T-147 : budgets gzip documentés dans les 3 JS CMS (6060/6144, marge 84 o) ; en-tête evenements.js condensé ; commentaires seuls. udgets.test.php 35/35 ; baseline verifier 18/4 🟠. Worktree ache/T-147, pas de push.

  • 2026-08-16 — Lot J Vague 1 : merge coordinateur T-120…146 sur main (0 conflit). verifier.php 11/4 🟠 ; tests/tous.php 25/26 (instantanes.test.php 4 diffs — T-140). Pas de push.

  • 2026-08-16 — Lot J Vague 0 : plan fusionné PLAN-lot-J-ultime-2026-08-16.md ; fiches T-120…T-148 créées ; T-044 réintégré Lot E (absorbé → T-128) ; STATUS/REPRISE/index/DISPATCH alignés. Vague 1 prête (10 worktrees, pas de dispatch).

  • 2026-08-15 — Vague 6 : mise en ligne contrôlée. verifier.php 11/4 🟠 ; generer.php 4 pages / 38 ressources ; essais à blanc puis deploy (42 fichiers) et sync-app (263 fichiers). Prod : thèmes + pastille + interactions ; carte masquée ; admin connexion ; robots.txt Disallow: / inchangé. Pas de commit de clôture dédié ce jour-là ; code lot I sur main.

  • 2026-08-15 — T-105 : recette Vague 5 rejouée. Contrastes AA verts (T-101) ; instantanés 32/32 (T-094) ; T-107 CSS mort retiré. Batterie tests/cms/* + rendu + légaux + verifier.php 11/4 🟠. GO Vague 6. Pas de commit, pas de deploy.

  • 2026-08-15 — T-107 : règles CSS mortes .gros-texte retirées de src/assets/styles.css (bouton et clé déjà partis T-101/T-106). styles-mouvement.test.php 3/3 ; verifier.php 11 verts / 4 🟠. Pas de commit.

  • 2026-08-15 — T-094 : 4 instantanés régénérés (T-101/T-104). Diff = chrome CMS uniquement (pastille aria-label, anti-flash localStorage, interactions.css/js). Aucun fait commercial ajouté. instantanes.test.php 32/32 sans MAJ ; verifier.php 11 verts / 4 🟠. Pas de commit.

  • 2026-08-15 — T-105 : recette Vague 5. tests/cms/** + docs/reference/cms-recette.md. Matrice 36/36. T-102 et T-104 confirmés verts (STATUS était resté ⬜). 2 contrastes AA → T-101 ; instantanés 4 diffs → T-094. NO-GO Vague 6. Pas de commit.

  • 2026-08-15 — T-106 : allowlist légale = cotejardin-theme-visiteur

    • cotejardin-guide-admin-v1 ; cotejardin-gros-texte retiré (plus d’usage dans src/ hors commentaire). legaux.test.php 102/102. Fiche + index commités.
  • 2026-08-15 — T-101 : 4 gabarits + apparence.php / apparence.css. Presets carnet-village / comptoir / maison-images ; pastille pizza ; anti-flash amorcer() ; Gros texte retiré. Tests 130/130 + rendu 47/47. Pas de commit. Suite : T-102 ∥ T-104. Allowlist légale et instantanés T-094 restent hors Possède.

  • 2026-08-15 — T-103 : évaluateur Paris (conditions.php + evenements.js), fixtures partagées, 34/34 PHP et 59/59 JS (preuves mutation en bac). Pas de commit. Suite : T-101.

  • 2026-08-15 — T-098 : themes-visiteur.js + tests JS 41/41, PHP 22/22. Repli carnet-village, cycle 5 activations, clé cotejardin-theme-visiteur. Pas de commit. Suite : T-103 puis T-101.

  • 2026-08-15 — T-100 : schéma CMS + exemple + schema-cms.test.php (25/25). Suite : T-103 ∥ T-098.

  • 2026-08-15 — index : lot I = T-100…T-105 ; runtime = T-110…T-115 ; T-093 ✅ ; T-095 ✅ ; T-094 reste ⬜.

  • 2026-08-15 — horaires : confirmation écrite assumée par FG pour Yann (11 h–22 h, fermé mardi) — docs/handoff/04 §2 ; congés / fériés restent 🟠.

source markdown

Concepts de cet article

handoffworktreeMatricegardedérive

Partage le plus de concepts avec