---
suivi: 1071
date: 2026-07-30
sujet: Diagnostic Phase 0 — cartographie module Développement Foncier & Montage
chantier: module-foncier
type: diagnostic
statut: poussé
hash: a974821c
fichiers:
  - docs/foncier/PHASE0_CARTOGRAPHIE.md
  - tools/diag/foncier_phase0_prod.php
  - docs/suivi/SUIVI_1071_diag_phase0_foncier.md
---

## PROMPT ENVOYÉ

SUIVI #1071 — MODULE FONCIER PHASE 0 : DIAGNOSTIC DE CARTOGRAPHIE. Lecture seule.
Interdiction absolue de coder le module (pas de migration, modèle, contrôleur, route, .vue).
Livrables : (1) docs/foncier/PHASE0_CARTOGRAPHIE.md — 12 blocs avec sorties brutes et sources
[CODE]/LOCAL] ; (2) tools/diag/foncier_phase0_prod.php — script prod lecture seule
(spatial GEOMETRY SRID 4326, tables, colonnes, index, comptes) ; (3) ce fichier suivi.
Commit unique 3 fichiers, push HECTAREG, preuve origin/main.

## SYNTHÈSE

Cartographie de l’existant avant tout développement du module 5 (CDC v20). Base locale
Cursor inaccessible (leçon #1049) → colonnes/index/comptes reportés au script prod.

Verdicts 12 blocs :
1. Collisions — Destination compta (PROGRAMMES/FRAIS_GENERAUX) bloquante ; Offre/Financement
   bloquantes ; Tranche/TypeOperation/DossierFoncier libres.
2. programmes — libelle OUI, nom NON ; pas de type opération ni surface/parcelle.
3. Jalons — ProgrammeFrise = Vue orpheline ; vraie mécanique = EtapeModele/ProgrammeEtape
   (réutilisable programme, pas dossier foncier détaillé).
4. Nomenclature #920 confirmée code ; élargir clé composite = risque compta ÉLEVÉ (20+ PHP).
5. Alertes/Tasks/Teams/cloche accueillent famille foncier sans changement structurel ;
   HTTPS via PHP-FPM uniquement.
6. entite_commentaires polymorphe — trait + Context, pas de whitelist DB.
7. ACL par enregistrement — à construire (pattern TacheSuivi transposable, pas de brique générique).
8. fournisseurs sans type/categorie ; colonne locale OK si hors mapping Intacct.
9. lots.prescripteur_* ABSENTS — circuit fournisseur + dépôt facture.
10. LigneFinancement existe (crédits terrain inclus) ; GFA métier absente.
11. modules_actifs JSON booléen via Enseigne::aModule — brancher clé module sans === HECTARE.
12. SharePoint/GED couplés Programme ; 76 Log::warning ; primitives Graph généralisables.

## DÉPLOIEMENT / TEST

1. `git pull origin main`
2. Aucune migrate / rebuild / optimize
3. Exécuter en SSH OVH depuis la racine projet :
   `php tools/diag/foncier_phase0_prod.php`
4. Coller la sortie complète (sections 1–7) dans le ticket SUIVI #1071
5. Point critique : section 2 SPATIAL — OUI/NON + message SQL brut si échec
   (tranche stockage spatial natif vs GeoJSON JSON)

## LEÇON

Base locale Cursor ≠ prod : toute affirmation colonne/index/compte doit être [LOCAL]
explicitement et reconfirmée par script prod. Connexion locale refusée ici → zéro
chiffre inventé, tout dans foncier_phase0_prod.php.
