diff --git a/03_agents/crm/AGENT.md b/03_agents/crm/AGENT.md index e9e7ae2..727a00d 100644 --- a/03_agents/crm/AGENT.md +++ b/03_agents/crm/AGENT.md @@ -44,7 +44,7 @@ de Michel, d'où son suivi séparé (il ne partage pas la source unique du trio) | [`financement_bancaire/`](../../05_deliverables_mvp/crm/financement_bancaire/README.md) | 4 (roadmap L52) | Parcours **hypothécaire RD** : cœur métier du **gate check 4 conditions** — aucun document n'est transmis à la banque tant que apport initial (20 % résident · 30 % étranger · Ley 189-11) + documents exigés + autorisations signées + validation référente ne sont pas réunis ; fonctions **pures** sans I/O | `financement_bancaire_gen.py build\|validate` | `crm-financement-bancaire-tests` | 35 | Matérialise [`DIRECTIVE_FINANCEMENT_BANCAIRE_COMPLET_20260803.md`](../../DIRECTIVE_FINANCEMENT_BANCAIRE_COMPLET_20260803.md) -(**Phase 1 · P0 · MVP** : contrat de données + cœur du gate + 6 sections + bannière +(**Phase 1 · P0 · MVP** : contrat de données + cœur du gate + 7 sections + bannière critique). La **Phase 2** (formulaires PDF officiels des 6 banques, endpoints runtime `/api/hypotheque/*`, `renderHypotheque`) attend les démarches relationship-manager de Michel et l'exécution VPS — **hors périmètre worker** (#8). diff --git a/05_activity_log/2026-08-05.md b/05_activity_log/2026-08-05.md index dfe64e7..44ab724 100644 --- a/05_activity_log/2026-08-05.md +++ b/05_activity_log/2026-08-05.md @@ -820,3 +820,46 @@ ajouté** (surface déjà couverte par le `row_re` générique des cellules Test Le trio CRM + « Total CRM 81 tests » + le financement laissés **INTACTS** (demo hors-trio, source distincte). **0 production éditée** (#5), **0 commande VPS** (#8), **aucun `git clean`**. `./run_ci.sh` → **33 PASS · 0 FAIL · 0 SKIP**. + +--- + +## Session 20260805_084202 · FIX RÉEL — « 6 sections » périmé dans les 2 docs d'implémentation du module `financement_bancaire` (le module en livre 7) + +**Classe** : prose FACT count périmée, ungated ([[prose-facts-vs-numeric-drift]] · +[[doc-numeric-claims-gate]]) — distincte des comptes gatés. + +**Défaut réel trouvé.** Deux surfaces d'implémentation décrivant le module livré +`crm/financement_bancaire` affirmaient **« 6 sections »** alors que le module en livre +**7** : +- `05_deliverables_mvp/crm/financement_bancaire/README.md:9` — « la structure des 6 sections » +- `03_agents/crm/AGENT.md:47` — « cœur du gate + 6 sections + bannière » + +**Preuve du bon compte = 7** (triple-sourcé, byte-gaté) : +- `out/MANIFEST.json` → `counts.sections = 7` (artefact byte-gaté par `check_regression`/`check_artifacts`). +- `financement_spec.json` → bloc `sections` = 7 (`apport_initial`, `info_achat`, + `choix_banque`, `formulaires`, `exigences`, `autorisations`, `envoi`). +- Le README **lui-même** se contredisait : ligne 49 énumère les **7** sections de + l'accordéon, ligne 57 « **7 sections** » (annotée « source de vérité = MANIFEST.json »). + Seule la ligne 9 (prose libre) était restée à « 6 ». + +**Origine du « 6 ».** La `DIRECTIVE_FINANCEMENT_BANCAIRE_COMPLET` originale (L106) +énumère exactement **6 sections non-gating** (`Info achat / Choix banque / Formulaires / +Exigences / Autorisations / Envoi`), **puis** a été **amendée** pour ajouter la section +gating `apport_initial` en position 1 → **7** au total. La spec + le module ont suivi (7), +mais les 2 phrases de prose d'implémentation avaient gardé le « 6 » d'avant l'amendement. + +**Correctif — 2 surfaces d'implémentation, 6→7. Directives laissées INTACTES.** +Les **4** occurrences « 6 sections » restantes vivent dans des **snapshots directive** +gelés (`DIRECTIVE_FINANCEMENT…` L106/L122/L131 + `DIRECTIVE_WORKFLOW_FAISABILITE_V10` +L22/L47) — **input-specs datés de Michel**, jamais réécrits ([[directive-vs-implementation]] · +`spec = authority, directive = snapshot`). Leur « 6 » est **historiquement exact** au +cadre pré-amendement (énumération des 6 aval). Seules les 2 surfaces décrivant le +**livrable** sont corrigées. + +**Aucun gate ajouté (#5).** Un gate structuré sur la ligne « Comptes courants » +recomputerait la ligne 57 (déjà correcte, adossée à MANIFEST) mais **ne mordrait pas** +la prose libre de la ligne 9 — la classe réelle du défaut. Financement reste le seul +module dont `MANIFEST.counts` n'est pas recompté dans `check_readme_claims` ; **SIGNAL +surfacé** (couverture prose ungated), pas d'ajout ce tour pour éviter un gate fragile + +hors-cible. **0 chiffre inventé** (#6 · 7 dérivé de MANIFEST/spec), **0 production éditée** +(#5), **0 commande VPS** (#8), **aucun `git clean`**. `./run_ci.sh` → **33 PASS · 0 FAIL · 0 SKIP**. diff --git a/05_deliverables_mvp/crm/financement_bancaire/README.md b/05_deliverables_mvp/crm/financement_bancaire/README.md index f25868a..5a9c8ed 100644 --- a/05_deliverables_mvp/crm/financement_bancaire/README.md +++ b/05_deliverables_mvp/crm/financement_bancaire/README.md @@ -6,7 +6,7 @@ financement).** Matérialise la (Michel, 2026-08-03) : un module **complet** de financement bancaire pour un vrai parcours hypothécaire dominicain, à la place du module « trop simpliste » antérieur. Livrable **Phase 1 (P0 · MVP)** : le contrat de données + le **cœur -métier du gate check** + la structure des 6 sections + la bannière critique. +métier du gate check** + la structure des 7 sections + la bannière critique. > Ce worker **n'écrit jamais sur le VPS** (contrainte #8). Il produit le contrat > et les artefacts en-repo ; le backend `/api/hypotheque/*` et le frontend