CognxSafeTrack commited on
Commit
2c344e4
·
1 Parent(s): 2b67473

docs: Comprehensive Historical Knowledge Enrichment (Final Audit)

Browse files
.claude/primer.md CHANGED
@@ -10,13 +10,21 @@
10
  - **Commission Prestataire** : 2% sur le montant encaissé.
11
  - **Validation** : Le coaching AI (XAMLÉ) assure la qualité des prestataires avant mise en relation.
12
 
13
- ## 🏗️ Flux de Données (Data Flow)
14
- 1. **Meta Webhook** -> **API Fastify** -> Réponse 200 immédiate.
15
- 2. **Queue BullMQ** -> **Worker** -> **whatsapp-logic.ts**.
16
- 3. **IA (Gemini/OpenAI)** -> **Prisma DB** -> **WhatsApp Cloud API**.
 
 
 
17
 
18
- ## 🛠️ Stack Technologique
19
  - **Back** : Node.js (TypeScript), Fastify, BullMQ, Redis.
20
- - **Persistance** : Prisma ORM (Azure Neon PostgreSQL).
21
- - **IA** : Gemini 2.0 Flash (Coaching), Gemini 1.5 Pro (Docs), OpenAI Whisper (STT).
22
- - **Storage** : Cloudflare R2 (Audio/Images persistants).
 
 
 
 
 
 
10
  - **Commission Prestataire** : 2% sur le montant encaissé.
11
  - **Validation** : Le coaching AI (XAMLÉ) assure la qualité des prestataires avant mise en relation.
12
 
13
+ ## 🏗️ Flux de Données & Infrastructure
14
+ - **Monorepo** : Turbo-repo géré par `pnpm`.
15
+ - `apps/api` : Gateway Fastify (Webhook).
16
+ - `apps/whatsapp-worker` : Logique métier, Multimodal, Scoring.
17
+ - `packages/database` : Prisma schema + Modular seed system.
18
+ - **Flux** : Meta Webhook -> API Fastify -> Réponse 200 immédiate.
19
+ - **Queue** : BullMQ (Redis) -> Worker -> `whatsapp-logic.ts`.
20
 
21
+ ## 🛠️ Stack Technologique & Moteurs
22
  - **Back** : Node.js (TypeScript), Fastify, BullMQ, Redis.
23
+ - **IA** : Gemini 2.0 Flash (Coaching), Gemini 1.5 Pro (Documents), OpenAI Whisper (STT).
24
+ - **Moteur de Scoring** : Système de scoring comportemental sur 4 dimensions :
25
+ - `discipline_financiere`, `organisation`, `relation_client`, `risque_management`.
26
+ - **Niveaux d'Évolution** :
27
+ - < 40 : *Informel instable*
28
+ - 40-60 : *Structuration début*
29
+ - 60-80 : *Business organisé*
30
+ - > 80 : *Entrepreneur avancé*
tasks/lessons.md CHANGED
@@ -5,8 +5,9 @@ Ce fichier archive les échecs et solutions liées à la **stabilité technique*
5
  - **[ARCHI] Détachement Gateway** : Ne JAMAIS laisser une gateway (Hugging Face / Meta) attendre > 20s. Répondre `200 OK` immédiatement et déléguer au worker.
6
  - **[DB] Séquençage des Opérations** : Ne JAMAIS envoyer de message WhatsApp avant d'avoir persisté la progression dans Prisma. La DB est la seule source de vérité.
7
  - **[CACHING] Verrous d'Idempotence** : Utiliser des locks Redis avec un TTL minimal de 300s (5 min) pour protéger les appels LLM longs et éviter les retries en boucle.
8
- - **[MEDIA] Vision Base64** : Gemini échoue par URL ; toujours convertir les photos d'utilisateurs en Base64 avant l'envoi au LLM.
9
- - **[NON-BLOQUANT] Processus FFMPEG** : Les conversions audio doivent tourner dans des sous-processus pour ne pas saturer l'event loop du worker.
 
10
 
11
  ## 🛡️ Règle d'Or de l'Intégrité
12
  **Les correctifs techniques ne doivent JAMAIS impacter la logique de personnalisation du prompt `generatePersonalizedLesson` ou des feedbacks.** Toute simplification technique qui réduit la spécificité de l'IA est un échec.
 
5
  - **[ARCHI] Détachement Gateway** : Ne JAMAIS laisser une gateway (Hugging Face / Meta) attendre > 20s. Répondre `200 OK` immédiatement et déléguer au worker.
6
  - **[DB] Séquençage des Opérations** : Ne JAMAIS envoyer de message WhatsApp avant d'avoir persisté la progression dans Prisma. La DB est la seule source de vérité.
7
  - **[CACHING] Verrous d'Idempotence** : Utiliser des locks Redis avec un TTL minimal de 300s (5 min) pour protéger les appels LLM longs et éviter les retries en boucle.
8
+ - **[MEDIA] Vision Base64** : Gemini échoue par URL ; toujours convertir les photos d'utilisateurs en Base64.
9
+ - **[STT] Whisper Auto-Validation** : Si l'indice de confiance est <= 80%, intercepter le flux et basculer en `PENDING_REVIEW` pour validation humaine sans crash.
10
+ - **[NON-BLOQUANT] Processus FFMPEG** : Les conversions audio doivent tourner dans des sous-processus.
11
 
12
  ## 🛡️ Règle d'Or de l'Intégrité
13
  **Les correctifs techniques ne doivent JAMAIS impacter la logique de personnalisation du prompt `generatePersonalizedLesson` ou des feedbacks.** Toute simplification technique qui réduit la spécificité de l'IA est un échec.
tasks/technical_backlog.md CHANGED
@@ -13,10 +13,11 @@ Ce fichier liste chronologiquement les correctifs techniques apportés au moteur
13
  - **Problème** : Race condition. L'utilisateur recevait le WhatsApp mais son progrès restait `PENDING` en raison d'un crash post-envoi.
14
  - **Fix** : Séquençage strict : `Prisma.update` -> `Prisma.create(Response)` -> `sendWhatsApp`.
15
 
16
- ### [24/03/2026] | 📸 Vision Multimodale (Base64 Stable)
17
- - **Problème** : Gemini échouait à lire les médias via URL externes (permissions/timeouts).
18
- - **Fix** : Téléchargement local, conversion en **Base64** et injection directe dans le payload `inlineData` de Gemini.
19
 
20
  ### [23/03/2026] | 🔍 Fuzzy Matching (Correction des fautes)
21
- - **Problème** : Les commandes critiques (INSCRIPTION, SUITE) échouaient à cause de fautes de frappe ("insription").
22
- - **Fix** : Intégration d'une logique de normalisation et de distance de Levenshtein pour les intents de navigation.
 
 
 
13
  - **Problème** : Race condition. L'utilisateur recevait le WhatsApp mais son progrès restait `PENDING` en raison d'un crash post-envoi.
14
  - **Fix** : Séquençage strict : `Prisma.update` -> `Prisma.create(Response)` -> `sendWhatsApp`.
15
 
16
+ ### [23/03/2026] | 🎨 Pitch Card Generation (Visual WOW)
17
+ - **Fix** : Création automatique d'une carte de visite visuelle sur le Jour 1 dès que l'activité est extraite. Utilisation de Canvas/Sharp pour le rendu.
 
18
 
19
  ### [23/03/2026] | 🔍 Fuzzy Matching (Correction des fautes)
20
+ - **Fix** : Normalisation Levenshtein pour les intents critiques.
21
+
22
+ ### [22/03/2026] | ⚙️ Moteur de Scoring Comportemental
23
+ - **Fix** : Implémentation du système `BehavioralScoring` sur 4 axes (Finance, Organisation, Client, Risque) avec des labels d'évolution (Informel -> Avancé).