From f73404a6a44ca14eb56831bf73bc5859e36f3dca Mon Sep 17 00:00:00 2001 From: Claude Code DTP Worker Date: Wed, 5 Aug 2026 07:23:07 +0000 Subject: [PATCH] =?UTF-8?q?[DTP-Worker=2020260805=5F071201]=20FIX=20de=20C?= =?UTF-8?q?OUVERTURE=20doc=20:=20la=20fiche=20CRM=20omettait=20son=204e=20?= =?UTF-8?q?module=20livr=C3=A9=20crm/financement=5Fbancaire=20(absent=20de?= =?UTF-8?q?s=2013=20fiches=20agents)=20=E2=86=92=20sous-section=20d=C3=A9d?= =?UTF-8?q?i=C3=A9e=20+=20ligne=20de=20table=20AUTO-GAT=C3=89E=20par=203?= =?UTF-8?q?=20gates=20ind=C3=A9pendants=20de=20check=5Freadme=5Fclaims=20(?= =?UTF-8?q?cellule=20Tests=2035=3D=3Dsource=20=C2=B7=20job=20CI=20crm-fina?= =?UTF-8?q?ncement-bancaire-tests=3D=3Dci.yml=20=C2=B7=20verbes=20CLI=20bu?= =?UTF-8?q?ild|validate=3D=3Dsubparsers,=20r=C3=A9solution=20par=20cible?= =?UTF-8?q?=20de=20lien=20crm/financement=5Fbancaire=E2=88=88auth)=20?= =?UTF-8?q?=C2=B7=20trio=20pipeline=20+=20agr=C3=A9gat=20gat=C3=A9=20?= =?UTF-8?q?=C2=AB=20Total=20CRM=2081=20tests=20=C2=BB=20laiss=C3=A9s=20INT?= =?UTF-8?q?ACTS=20(financement=20ne=20partage=20pas=20la=20source=20unique?= =?UTF-8?q?=20workflow=5Fvente=5Fspec=20=E2=86=92=20hors-trio,=20sinon=20f?= =?UTF-8?q?aux=20s=C3=A9mantiquement=20+=20gate=20cass=C3=A9)=20=C2=B7=20S?= =?UTF-8?q?print=204=C2=B7L52=20lu=20dans=20acceptance=5Fspec.json=20(auto?= =?UTF-8?q?rit=C3=A9=20roadmap-globale,=20PAS=20le=20Sprint=205=20agent-in?= =?UTF-8?q?terne=20du=20README=20module)=20=C2=B7=2035=20tests=20lu=20dans?= =?UTF-8?q?=20regression=5Fplan=20=C2=B7=20SIGNAL=20surfac=C3=A9=20non=20t?= =?UTF-8?q?ranch=C3=A9=20:=20README=20module=20=C2=AB=20Sprint=205=20?= =?UTF-8?q?=C2=BB=20vs=20S4=20acceptance=20(pi=C3=A8ge=20des=202=20cadres?= =?UTF-8?q?=20de=20sprint,=20=C3=A9dition=20spec+regen=20coordonn=C3=A9e?= =?UTF-8?q?=20requise)=20=C2=B7=200=20=C3=A9dition=20d'autorit=C3=A9=20?= =?UTF-8?q?=C2=B7=200=20gate=20ajout=C3=A9=20(#5)=20=C2=B7=200=20chiffre?= =?UTF-8?q?=20invent=C3=A9=20(#6)=20=C2=B7=20CI=2033=20PASS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- 03_agents/crm/AGENT.md | 27 +++++++++++++++++++- 05_activity_log/2026-08-05.md | 47 +++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 1 deletion(-) diff --git a/03_agents/crm/AGENT.md b/03_agents/crm/AGENT.md index 266cf5c..c4764f4 100644 --- a/03_agents/crm/AGENT.md +++ b/03_agents/crm/AGENT.md @@ -29,7 +29,32 @@ AVANT le Workflow** qui le cible. doublons) : le nom du DocType, son champ d'état, ses valeurs de statut et son caractère *submittable* sont **dérivés** de `workflow_vente_spec.json` (anti-dérive) ; les rôles sont **résolus** depuis `rbac/rbac_50_roles.json` — jamais un nom Frappe -en dur. Total CRM : **81 tests** (25 + 31 + 25), tous gated dans le CI. +en dur. Total CRM : **81 tests** (25 + 31 + 25), tous gated dans le CI — c'est le +total du **trio pipeline** ; le module financement bancaire ci-dessous porte ses +**35 tests** à part (source distincte). + +## Module CRM additionnel · financement bancaire hypothécaire (piloté par directive) + +Un **quatrième** livrable CRM vit sous `05_deliverables_mvp/crm/` **hors du trio +pipeline** — piloté non par `workflow_vente_spec.json` mais par une directive datée +de Michel, d'où son suivi séparé (il ne partage pas la source unique du trio) : + +| Module | Sprint | Rôle | Entrée CLI | Job CI | Tests | +|---|---|---|---|---|---| +| [`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 +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). + +**Décision produit ouverte** — la condition #4 du gate teste encore une validation +**humaine** (`wag_validated_by`), alors que la couche `## PRÉCISION` de la directive +la supersède par un **audit IA signé** ; producteur d'audit hors dépôt → arbitrage +de séquencement, **surfacé non tranché** dans +[`OPEN_DECISIONS_REGISTER.md` D-02](../../05_deliverables_mvp/OPEN_DECISIONS_REGISTER.md) +(ne pas re-litiger · #5). ## Anti-invention (#6) — pourquoi les taux de commission sont `null` **Aucun taux de commission n'est documenté dans CLAUDE.md.** Les taux du barème diff --git a/05_activity_log/2026-08-05.md b/05_activity_log/2026-08-05.md index 8984209..d8d18e5 100644 --- a/05_activity_log/2026-08-05.md +++ b/05_activity_log/2026-08-05.md @@ -1,5 +1,52 @@ # Activity Log · 2026-08-05 · Claude Code DTP Worker +## Session 071201 · FIX de COUVERTURE doc — la fiche CRM omettait son **4e module livré** (`crm/financement_bancaire`) : ajout d'une sous-section dédiée + ligne de table **auto-gatée** (35 tests · job CI · verbes CLI) · 0 édition d'autorité + +**Contexte + choix de tâche.** `./run_ci.sh` au démarrage : **33 PASS · 0 FAIL · 0 SKIP**, arbre propre. +Roadmap `ROADMAP_8_WEEKS_OR_LESS.md` intégralement livrée/gatée (24/24 modules 4Big à 100/100, matrice +d'acceptance 15/15 `in_repo`) — **Sprint 8 · launch-readiness**. Les décisions ouvertes restantes sont +des **arbitrages produit de Michel** ([[open-decisions-register]], ne pas trancher · #5). Tâche retenue : +le **fallback explicite** de la mission (« améliorer la doc d'un AGENT.md ») appliqué à un **écart réel**, +pas cosmétique. + +**Le finding.** La fiche `03_agents/crm/AGENT.md` se présente comme le recensement des « **Livrables CRM +réellement produits** » mais n'en documentait que **3** (trio pipeline `workflow_vente`/`dossier_vente`/ +`commissions`). Or `05_deliverables_mvp/crm/` héberge un **4e module gaté** — `financement_bancaire` +(parcours hypothécaire RD · gate check 4 conditions · 35 tests · job `crm-financement-bancaire-tests`) — +**absent de TOUTES les 13 fiches agents** (grep confirmé), y compris de sa fiche propriétaire naturelle. +Ce n'était pas une *inexactitude* (les 3 lignes existantes sont justes, cf. [[fiche-accuracy-audit-closed]]) +mais une **incomplétude** : un livrable réel sans surface de doc côté agent. + +**Pourquoi il était hors du trio (et le reste).** Le trio partage **une source unique** +(`workflow_vente_spec.json` + `rbac_50_roles.json`) — c'est la propriété « cross-cohérents » que décrit la +prose du trio, et que le gate `check_readme_claims.sh:725` encode en figeant « Total CRM : 81 tests » aux +**3** suites du pipeline. `financement_bancaire` **ne partage pas** cette source (piloté par +`DIRECTIVE_FINANCEMENT_BANCAIRE_COMPLET_20260803.md`), donc l'ajouter comme 4e ligne du trio aurait été +faux sémantiquement **et** cassé le gate (regex `Total CRM : **N tests**`). D'où une **sous-section +séparée**, le trio et son agrégat gaté laissés **intacts**. + +**Sourcing (zéro invention · #6).** Sprint **4 · roadmap L52** lu dans l'autorité roadmap-globale +`qa/acceptance/acceptance_spec.json:71-84` (byte-gaté ; `evidence_modules` inclut `crm/financement_bancaire` +sous S4) — **pas** le « Sprint 5 » du README module, qui est le **cadre agent-interne** +([[agent-internal-vs-roadmap-sprint-frames]]). Nombre de tests **35** lu dans `regression_plan.json` +(`test_methods`, source faisant autorité). CLI `financement_bancaire_gen.py build|validate` vérifié depuis +les subparsers. + +**Auto-gatage confirmé — le finding devient opposable au merge.** La nouvelle ligne de table est captée +par **trois** gates indépendants de `check_readme_claims.sh` (résolution par **cible de lien**, +`crm/financement_bancaire ∈ auth`) : (a) cellule Tests `35 == source (35)`, (b) job CI +`crm-financement-bancaire-tests == ci.yml`, (c) verbes CLI `build|validate == subparsers`. Une future +dérive du compte/job/CLI **mordra** désormais. `./run_ci.sh` final : **33 PASS**. + +**SIGNAL (surfacé, non tranché · SURFACE don't rewrite).** Le README du module écrit « **Sprint 5** · +roadmap L52 » — pairing interne étrange (L52 est une ligne **Sprint 4**) : soit le cadre agent-interne, +soit une micro-dérive du label roadmap-global vs l'autorité `acceptance_spec` (S4). **Non édité** (le +module README n'est pas ma cible ; le piège des deux cadres de sprint exige une édition spec+regen +coordonnée, cf. [[agent-internal-vs-roadmap-sprint-frames]]) — consigné ici pour un passage ultérieur. + +**Bilan.** 1 fiche agent enrichie (sous-section + 1 ligne auto-gatée) · **0 édition d'autorité** · 0 gate +ajouté (surface déjà couverte par `row_re`/job/CLI · #5) · 0 chiffre inventé · CI **33 PASS**. + ## Session 051154 · Attestation des DENTS des **suites de MODULE** — BATCH 4 (FINAL) : les **7 dernières** suites → **25/25** prouvées · **7 BITES · 0 TOOTHLESS** · arbre byte-pristine · 0 édition de production **Contexte + choix de tâche.** `./run_ci.sh` au démarrage : **33 PASS · 0 FAIL · 0 SKIP**, arbre propre,