---
suivi: 1181
date: 2026-08-04
sujet: Dictionnaire ERP généré (schema × code × remplissage)
chantier: outillage
type: tooling
statut: poussé
hash: 41ac0344
fichiers:
  - tools/diag/dictionnaire.php
  - tools/diag/Dictionnaire/Generator.php
  - tools/diag/Dictionnaire/config.php
  - tools/diag/Dictionnaire/module_map.php
  - tests/Unit/DictionnaireErp1181Test.php
  - docs/dictionnaire/
  - docs/suivi/SUIVI_1181_dictionnaire_erp.md
---

## PROMPT ENVOYÉ

SUIVI #1181 — dictionnaire généré à la demande (information_schema × code ×
remplissage), index + détail module, markdown commité, sans PII, sans
maintenance manuelle.

## SYNTHÈSE

### Fiches / scripts lus
- `diag_commercial_incoherences_1171.php` — fill rates type-aware (#1173),
  UI map, dettes assumées.
- `diag_commercial_1154`, `#1175` — volumes / croisements commercial.
- `AlerteService::GENERATION_ACTIVE` — interrupteur silence.

### Livrable
- CLI : `php tools/diag/dictionnaire.php` [| `commercial` | `all`]
- Sortie : `docs/dictionnaire/INDEX.md` + `docs/dictionnaire/<module>.md`
- Générateur : `tools/diag/Dictionnaire/Generator.php` (réutilise logique #1171)

### Première génération (locale)
Base `erp_immo_migrate_1113` (193 tables, volumes commercial = 0).
Chiffres de remplissage **non significatifs** → **re-run OVH obligatoire** pour
les taux prod (ex. sru_statut 61/61).

| Métrique | Valeur locale |
|----------|---------------|
| Tables | 193 |
| Colonnes | 1760 |
| Durée | ~4 s |
| Mortes (table non vide only) | admin 5 · programmes 6 · taches 1 · commercial 0 (tables vides) |

### Notions dupliquées (extrait)
TMA (3 emplacements) · prix_vente · remises · notaire · agence · délai SRU ·
notif SRU · appels_fonds legacy vs Intacct.

### Interrupteurs
`AlerteService::GENERATION_ACTIVE = false` + emails désactivés (Log::info).

### Garde-fous
VARCHAR≠0 (#1173) · dettes hors alerte · colonnes récentes (fenêtre migration
21 j) · PII jamais en distribution · 6 FK CASCADE → lots_commerciaux listées.

## DÉPLOIEMENT-TEST

1. `git pull` ; pas de migrate pour ce lot (script only)
2. Sur OVH (taux prod) puis repo :
   `php tools/diag/dictionnaire.php commercial --stdout > dico-prod.txt`
   En local (DB vide OK) : `php tools/diag/dictionnaire.php --apply < dico-prod.txt`
   puis commit `docs/dictionnaire/INDEX.md` + `commercial.md`
3. Vérifier tests 1–9 du prompt sur sortie prod

## LEÇON

Un document rédigé à la main dérive ; un générateur qui lit information_schema
+ le code dit la vérité du jour. Le piège MySQL `'en_attente' = 0` doit être
gravé dans tout script de remplissage.
