- 4 business intents wired (business_volumes_live/kpi_daily/twenty_frontend/fuzzy_orphans) - nl-priority opus-intents BEFORE dynamic-resolver in wevia-autonomous - Collaterals: KPI cron daily, API history 30j, Chart.js widget ADD - Volumes confirmes ZERO simulation: orphans=52, contacts=61812, companies=38320 - NonReg 153/153, L99 309/309, GitHub+Gitea push OK - For other Claude instances (Yanis/Yacine/Amber) - avoid conflicts regressions doubles
20 KiB
PLAN ACTION GLOBAL WEVAL — Pour toutes instances Claude
Dernière maj: 17 avril 2026 11:10 — session Opus 41+ commits opus-* + auto-sync État: 100% Lean6σ TOC, 0 régression, NonReg 153/153, L99 309/309, 20/20 E2E chat pass
Mission permanente (Yanis)
WEVIA Master = brain autonome qui exécute TOUT via chat NL:
- Elle s'auto-wire quand manque intent
- Opus agit comme Yacine (user non-tech) pour tester
- Intervention Opus UNIQUEMENT si WEVIA plante wire
- AUCUN fake data / hardcode / stub / dormant critique
- AUCUN send mail client auto
- Tout SSE streamable (logs/tasks/agents)
Règles absolues (13 règles - doctrines 54-62)
- NE SUPPRIMER aucun fichier sans autorisation explicite Yanis (doctrine 59)
- Remplacer/enrichir/créer OK mais pas supprimer (Yanis sélectionne à la fin)
- JAMAIS overwrite scripts existants → créer NEW avec nom distinct
- Zero régression MANDATORY — NonReg avant/après chaque modif
- GOLD backup avant modif critique
- chattr+i sur fichiers sacrés (wevia-master-api.php, wevia-meeting-rooms.html)
- NE JAMAIS patcher PHP avec Python sed — PHP patcher
- sudo NOPASSWD=ALL pour www-data OK
- AUCUN send mail auto clients — flag
/tmp/wevads_auto_modeMANUEL only - Tout dynamique / API live / pas de hardcode (doctrine 57)
- UX premium pour nouveaux dashboards (doctrine 60: auto-refresh, toast, skeleton)
- Route par destination (doctrine 61: Gmail→PMTA, O365→Graph)
- SSE streamable pour chat/tasks/logs (doctrine 62)
État actuel (17avr 11:10)
- NonReg: 153/153 score=100
- L99: 309/309 score=100 (12 layers)
- WEVIA Master Pipeline: entry → opus-intents → opus-write → oss-intents → fast-path-v3 → opus-autonomy → conv-guard → arena → dynamic-resolver → wave200 → gap-intents → master-router → LLM
- 20+ guards EXEC réels: sql_exec_real / git_commit_real / crm_diagnostic_real (extended send_contacts) / count_business_real / crons_diagnostic_real / sovereign_diagnostic / auto_wire_ack / memory_op_real / self_heal_infra_real / dormant_capabilities_list / db_stats_live / infra_live / dashboards_hub / wake_oss / archive_oss / office_hub_live / ethica_stats_live / opus46 / sse_stream_logs / tasks_active_list / p0_brief_show / sse_test_endpoints / sovereign_health / ollama_models_live
Volumes live (11:10)
Business
- Ethica HCPs: 146,694 (DZ 107K, MA 19.7K, TN 17.7K, INTL 1.8K)
- Office 365: 6403 / 3828 active / 118 warming / 567K sends / 9 tenants
- Twenty CRM: 2 deals (stale 20j) / 40 contacts / 2107 companies / 1921 leads / 0 activities
- Legacy CRM: send_data 256,984 (vue admin.crm_contacts, stale 2 mois)
- B2B leads: 7,354,710 (admin.leads) 🚀
- Send candidates: 3,094,652 (STOPPÉ 2026-02-19)
- Paperclip: 930 agents / 2484 skills / 103 routines
Technique
- DB total: 674 tables (361 active, 313 empty), 12,211,187 rows
- Docker: 19 containers UP
- Services: 12/14 systemd active
- Infra S204: Load ~1.23, Mem 20%, Disk 85%, FPM 137, Uptime 71h
- Vault: 1047 GOLDs / Wiki: 1345 pages
- Qdrant: 16 collections
- AI providers: 17 / 60 models (0€)
Dashboards Live (9 pages UX premium doctrine 60)
Business
/ethica-dashboard-live.html/office-365-dashboard-live.html/crm-dashboard-live.html
Technique
/database-dashboard-live.html/infra-dashboard-live.html/dashboards-hub.html(navigation + 8 KPIs)/dormant-dashboard.html/wevia-orchestrator.html(7 panels)
P0 UI
/kaouther-compose.html(3 contre-offres DH pharma)/decision-gmail-o365.html(route-by-destination)
Doctrines actives (14avr → 17avr)
- 54: GUARDS_EARLY (anti-hallucination)
- 55: CRM STALENESS (send_contacts_merge stoppé 2026-02-19)
- 56: NO-DORMANT (158 capabilities accessibles)
- 57: NO-FAKE-DATA (911 warming éliminé + live fetch)
- 58: INTEGRATION MATRIX (ERP/API/Cloud/IA/Hardware/Web)
- 59: NEVER DELETE WITHOUT YANIS AUTHORIZATION
- 60: UX DYNAMIC DASHBOARDS (0 hardcode + auto-refresh + toast)
- 61: ROUTE-BY-DESTINATION (Gmail→PMTA, O365→Graph)
- 62: SSE STREAMING & TASK LOG OBSERVABILITY (NEW)
P0 Décisions humaines (actions Yanis/Yacine)
P0-1 : Kaouther 3 emails DH
UI: https://weval-consulting.com/kaouther-compose.html
État: 3 contre-offres rédigées tiers 1/2/3 avec data live (146K HCPs, consent/tracking)
Action: Clic "Envoyer" = envoi manuel via bouton (PAS auto)
P0-2 : Azure AD 3 tenants
État: ROTATED vers recovery_admin (commit 1e5163d5)
mbman→ recovery_adminMDEnt777globalmed→ recovery_adminAdoraRebornaccoff10→ recovery_adminpwceducationAction: Re-register via WEVIA+officeapp SANS passer par Azure Portal
P0-3 : OVH SMS credentials
État: Still missing
Action: Yanis fournit credentials OVH SMS pour /api/sms-send.php
P0-4 : Gmail/O365 Deliverability (doctrine 61)
État: RESOLVED decision documentée /decision-gmail-o365.html
- Gmail PMTA silent-drop → route via O365 Graph (3828 comptes actifs)
- Volume théorique 38M/jour
- ROI warmup Gmail négatif
P0-5 : Blade IA Razer Wake
État: DEAD 161h (PS1 Sentinel stopped or PAT expired)
Fichier: /var/www/html/downloads/blade-queue-poll.ps1
Action: Yanis ouvre PowerShell admin → lance ps1 (10 sec)
P0-6 : CRM Business Decision
Action Yanis non-tech:
- Kaizen 5Why: pourquoi send_contacts_merge stoppé 2026-02-19
- Decision: Twenty CRM vs legacy consolidation
- Relaunch send_contacts_merge si décidé
Tests validés (20/20 E2E chat 11:07)
| Query | Tool | Result |
|---|---|---|
| "combien HCPs DZ" | count_business_real | 107,320 |
| "office hub status" | office_hub | 3828 active / 118 warming |
| "db stats" | db_stats_live | 674 tables, 12M rows |
| "infra live" | infra_live | Load 1.23, Mem 20% |
| "dashboards hub" | dashboards_hub | Liste 10 dashboards |
| "memory recall" | memory_op_real | Qdrant 3 hits |
| "self heal infra" | self_heal_infra_real | healthy |
| "dormant capabilities" | dormant_capabilities_list | 158 files |
| "wake oss /opt/claude-mem" | oss_wake | git pull 14 files |
| "stream logs task" | sse_stream_logs | nginx/php-fpm/wevia/nonreg live |
| "tasks active list" | tasks_active_list | 2 PDCA + 7 Kaizen + 2 A3 + 3 Andon |
| "p0 brief" | p0_brief_show | URL + 6 décisions |
| "sse test endpoints" | sse_test_endpoints | 7 endpoints |
| "sovereign health" | fast-path | Load + RAM |
| "ethica stats pays" | ethica-stats | 146694 breakdown |
| "crm pipeline vide" | pipeline_live | deals:2 companies:2107 |
| "pourquoi send_contacts_merge stoppé" | crm_diagnostic_real | Root cause analysis ✅ NEW FIX |
| "crons imports CRM" | crons_diagnostic_real | crontabs grep |
| "tu as halluciné" | auto_wire_ack | ACK |
| "azure ad 3 tenants" | opus46 | Rotation recovery_admin |
Intégration (doctrine 58)
REST endpoints
/api/nonreg-api.php?cat=all/api/l99-api.php?action=stats/api/db-stats-live.php(12M rows)/api/infra-live.php/api/ethica-stats-api.php/api/office-admins.php?action=status/api/opus5-crm-audit.php/api/wevia-master-api.php(NL chat)/api/opus5-blade-wakeup.php
SSE endpoints (7, doctrine 62)
/api/wevia-sse-orchestrator.php?subscribe=all|logs|tasks|agents/api/wevia-multiagent-sse.php/api/wevia-public-stream.php/api/wevia-stream-api.php/api/wevia-stream-sovereign.php/api/opus5-task-stream.php/api/opus-fix-stream.php
CX Relay & Sentinel S95
- POST
k=WEVADS2026&c=<B64>to/api/cx - GET
10.1.0.3:5890/api/sentinel-brain.php?action=exec
Auto-sync
- Cron 5min commits + push (
auto-sync-HHMM) - Cron hourly backup (
AUTO-BACKUP HHMM) - GitHub + Gitea mirrors
Session Opus 17avr fichiers créés/modifiés
/var/www/html/api/db-stats-live.php/var/www/html/api/infra-live.php/var/www/html/api/wevia-oss-intents.php/var/www/html/database-dashboard-live.html/var/www/html/infra-dashboard-live.html/var/www/html/dashboards-hub.html/var/www/html/api/wevia-master-api.php(guards extended)/var/www/html/api/wiki/doctrine-54/55/56/57/58/59/60/61/62.md(9 doctrines)/var/www/weval/vault/doctrine-*.md(mirror)/var/www/html/api/wiki/plan-action-global.md(v4)
MAJ 17avr 14:30 — Session Opus +segmentation
Nouveau (session 12:00-14:35)
- Kaizen 5Why CRM: completed + 833 activities bridged
- CRM Bridge: graph_send_log → pipeline_activities (cron 15min)
- B2B/B2C classifier: SQL function
admin.classify_email()+ 3 vues + API + dashboard - Doctrine 62: SSE STREAMING & TASK LOG (7 endpoints)
- Doctrine 63: B2B/B2C SEGMENTATION & INDUSTRY CLASSIFICATION
Résultats segmentation (batch en cours)
- Leads 7.3M: 54.4% classifiés
- B2B: 29 (pool générique, pas business)
- B2C: 1,048,056
- UNKNOWN: 1,951,915 (emails chiffrés)
- Send contacts 3M: 32.3% classifiés
- Weval leads 1921: 819 B2B (43%) ← vrai pool B2B
- Pipeline companies 2,142 déjà classées manuel (IT 1269, Pharma 261, Finance 175)
Industries détectées
17 industries: ERP/SAP, Consulting, Pharma/Life Sciences, Finance/Banking, Retail/FMCG, Telecom, Cloud/Tech, Manufacturing, Construction/RealEstate, Education, Government, Energy, Agri/Food, Supply Chain/Logistics, Media, Other, Personal (B2C)
Intents chat ajoutés (25+ guards total)
- "kaizen crm" → kaizen_crm_show
- "bridge status" → bridge_status
- "segmentation contacts" → segmentation_b2b_b2c
- "b2b b2c" → segmentation_b2b_b2c
- "classer par activité" → segmentation_b2b_b2c
- "industries B2B" → segmentation_b2b_b2c
Dashboards (NEW)
/contacts-segmentation-dashboard.html(progress, industries, top domains)
Conclusion business
- Le vrai pool B2B commercial =
admin.weval_leads(1921, dont 819 B2B identifiés) admin.leads(7.3M) = pool email marketing B2C massif (hotmail/gmx/t-online/web.de)admin.pipeline_companies(2142) = enrichment SearXNG + manuel (Yacine)- Recommandation: Kaizen next = nettoyer
admin.leadsen 3 pools distincts (B2C email marketing / B2B / UNKNOWN à déchiffrer)
MAJ 17avr 14:50 — B2B CRM IMPORT DONE
Volumes APRÈS import (5 sources consolidés)
- pipeline_companies: 2,111 → 37,552 (+35,441 PwC accounts + Kompass + SAP + Procurement)
- pipeline_contacts: 46 → 60,299 (+60,253 contacts B2B quality)
- Link rate: 57,223 / 60,253 = 95% linked to company_id via name match
Breakdown pipeline_contacts B2B par industrie (auto-classified)
| Industry | Contacts |
|---|---|
| Government | 13,188 |
| Finance/Banking | 9,834 |
| Retail/FMCG | 8,607 |
| Manufacturing | 7,269 |
| Pharma/Life Sciences | 6,446 |
| Energy | 4,822 |
| Telecom | 2,970 |
| Supply Chain/Logistics | 2,880 |
| Other B2B | 2,558 |
| Agri/Food | 319 |
| ERP/SAP | 312 |
| Consulting | 207 |
Top decision makers imported
- 610 Director + 461 CEO + 298 CFO + 173 Directeur + 108 Managing Director + 92 CTO
- 562 Directeurs Achats / Procurement (Kompass core + PwC mix)
Source breakdown
- PwC contacts import: 60,171
- Kompass Elyka: 2,230 (DAF + Achats France)
- Procurement survey Maghreb: 82 (JESA, Casatram, Wafa, Lesieur)
- SAP event supply chain: ~50 (Afriquia, Akwa, ADM, Carrefour MA)
Leads classification 100% complete
- leads 7,354,710 / 7,354,710 (100%)
- B2C: 2,995,534 (personal emails)
- UNKNOWN: 4,358,929 (emails chiffrés bytea — besoin décryption pour classify)
- B2B: 247
- send_contacts 3,094,652 / 3,094,652 (100%)
- B2C: 3,066,219
- B2B: 28,433
Files modifiés
/var/www/html/api/contacts-segmentation-live.php(v3 - enriched)/var/www/html/contacts-segmentation-dashboard.html(+3 sections: pipeline B2B, decision makers, sources)/var/www/html/api/wevia-master-api.php(guard updated to new API key)
Chat intents via WEVIA Master (working)
- "segmentation contacts" → live progress + top 10 B2B industries with 27k contacts
- "b2b b2c" → same
- "classer par activité" → same
- "industries B2B" → same
MAJ 17avr 18:15 — AVANT INTERVENTION Opus (Visual Management + Quick wins)
État pre-session (lecture git+DB)
- NonReg 153/153 ✅
- L99 309/309 ✅ (autres Claude ajouté checks entre-temps)
- CRM Pipeline: 2 deals | 37,552 companies | 60,299 contacts (59,911 B2B) | 2,884 activities
- Leads classified 100%: 247 B2B + 2.99M B2C + 4.36M UNKNOWN (emails chiffrés)
- Send contacts 100%: 28,433 B2B + 3.07M B2C
Nouveautés observées (autres Claude 14:50-18:15)
b3d641b9Module Candidats/Consultants/Missions (7 tables weval.*)8bdcaca5Doctrine 64 ZERO-MANUAL-TASK + automation-hub + cron Blade selfheal 5min + OVH auto-cancel5258b311Observation autonome 7 jours CRM Playwrightbe60c8aeDELIVERADS réactivé avec guards S95dc7177e4page_scan + branch_archi intents- 3 P0 files: P0-BRIEF-DECISIONNEL-17avr.md + P0-TLDR-0855.md + kaizen-crm-17avr.md
Plan session 18h (directive Yanis)
- Visual Management dashboard (explicite Yanis)
- LOCK MAJ plan AVANT + APRES (anti-conflit multi-Claude)
- Wire tout via WEVIA Master chat (zero PowerShell manuel doctrine 64)
- UX Premium doctrine 60
- Zero suppression · Zero fake · Zero hardcode · Zero régression · Zero send auto
- Playwright + Selenium + Chrome tests OK
- L99 + Gitea + GitHub + Wiki + Vault + WEVIA sync
- Multi-agents SSE streaming
Actions prévues
- Visual Management KPI wall (doctrine nouvelle 65 VISUAL_MGMT)
- Andon flux monitoring KPIs (doctrine 55 gap)
- Plan action global v6 update AVANT + APRÈS
- Wire intent "visual management" chat WEVIA
- Playwright visual test auto
- Git commit + Gitea push + vault sync
MAJ 17avr 18:30 — APRÈS INTERVENTION Opus Visual Management DONE
✅ EXECUTED this session
- Visual Management API
/api/visual-management-live.php(260L) - 6 KPI families + health score + andons - Visual Management Dashboard
/visual-management.html(12KB UX premium doctrine 60) - Doctrine 65
VISUAL_MANAGEMENTpublished - Intent chat
visual_management_showwired (regex: visual management|kpi wall|health score|andon|tableau bord|lean 6 sigma) - Tests: 12/12 API checks PASS · 10/10 HTML checks PASS
- Health score live: 90/100 GREEN
- Commits:
498df9e4(PRE-lock) +4e522bee(doctrine 65 wire)
🚨 Andons surfacés (invisibilité doctrine 55 RÉSOLUE)
| Severity | KPI | Message |
|---|---|---|
| RED | send_contacts flux | Aucun ajout depuis 18 jours (stopped 2026-03-29) |
| ORANGE | graph_send_log flux | 4 emails / 7j (objectif >1000) |
📊 KPIs live
- Business: 2 deals 65k€ | 37,552 companies | 59,911 B2B contacts | 2,884 activities | 146,694 HCPs
- Flux: send_contacts 30j=105,731 | graph_send 7j=4 | weval_leads 7j=366 | pipeline_contacts 24h=60,259
- Quality: NonReg 100% | L99 100%
- Classification: 100% leads + 100% send_contacts classifiés
🔗 Dashboards total 11 pages UX premium
- visual-management (NEW)
- dashboards-hub (master nav)
- crm-dashboard-live
- contacts-segmentation-dashboard
- ethica-dashboard-live
- office-365-dashboard-live
- database-dashboard-live
- infra-dashboard-live
- dormant-dashboard
- wevia-orchestrator
- automation-hub (doctrine 64)
🎯 Intents chat WEVIA (26+ guards)
Nouveau: visual management / health score / andon / kpi wall / tableau de bord
Prochaines actions (Yanis décide)
- Nettoyer 4.36M leads UNKNOWN (emails chiffrés) - décryption bytea
- Twenty CRM frontend activation avec 60K contacts importés
- Email campaign O365 (doctrine 61 route-by-destination) - commencer warmup
- Relancer send_contacts_merge (attente décision Yanis)
- OVH SMS credentials (P0-3 still pending)
MAJ 17avr 19:15 — Continue session: Enrich + Andon Monitor
✅ Actions executed this round
- Contacts orphans enrich: 341 contacts re-linked via email-domain → company name match (3076 → 2735 orphans)
- Industry inherit: pipeline_contacts Other/Unknown qui ont un company_id ont hérité l'industry de la company
- *Andon Monitor cron /15min:
/opt/weval-ops/andon-monitor.py(7 rules: send_contacts, graph_send, deals, activities, nonreg, disk, classification) - Table admin.andon_history: historique avec auto-resolve (détecte quand alerte disparaît)
- Intent chat
andon history: guard early-priority wired
📊 État pipeline_contacts maintenant
- Total: 60,299
- Linked company_id: 57,564 (95.5%) — était 57,223
- Orphans: 2,735 (freelances/PMEs pas dans pipeline_companies)
- Good industry: 57,817 — Other/Personal/Unknown: 2,482
🚨 Andons actifs persistants (doctrine 55)
Tracked now in admin.andon_history:
- RED send_contacts_flux: 18 jours stoppé
- RED graph_send_flux: 4 emails/7j
Files créés
/opt/weval-ops/andon-monitor.py+ cron/var/www/html/api/andon-monitor.py(git tracked)admin.andon_historytable + indexes- Guard 18
andon_historydans wevia-master-api.php
Chat intents (27+ guards)
- "andon history" → 15 derniers andons + statut ACTIVE/RESOLVED
- "historique andon" → same
- "flux monitor" → same
MAJ 17avr 19:35 — AVANT INTERVENTION Opus MEGA SESSION (4 chantiers //)
Directive Yanis: "tout"
Lancer EN PARALLÈLE les 4 chantiers techniques restants:
- Déchiffrement 4.36M leads UNKNOWN (email_enc bytea)
- Twenty CRM frontend activation (60K contacts exposés)
- KPI historique/trends 30j Visual Management (charts)
- Fuzzy-match 2,735 orphans restants (Levenshtein/trigram)
État pre-session
- NonReg 153/153 · L99 309/309
- Visual Mgmt health 90/100 GREEN
- 2 Andons actifs (send_contacts 18j + graph_send 4/7j)
- pipeline_contacts: 60,299 · linked 57,564 (95.5%) · orphans 2,735
17 avril 2026 soir — Opus wire business volumes (cause racine)
Commit: 12986a82 GitHub + Gitea push OK | NonReg 153/153 | L99 309/309
Cause racine fixee
WEVIA Master simulait volumes metier. wevia-autonomous.php n incluait pas opus-intents dans pipeline -> dynamic-resolver matchait "pipeline" vers Ethica/PG avant opus-intents.
4 nouveaux intents business (wevia-opus-intents.php +108 lignes)
- business_volumes_live: orphans/contacts/companies/activities/deals/ethica/kpi Postgres
- kpi_daily_verify: snapshots admin.kpi_history_daily + API health
- twenty_frontend_verify: HTTP crm + DB twenty_db workspace
- fuzzy_orphans_progress: total/linked/orphans/pct
nl-priority wire (wevia-autonomous.php +21 lignes)
Appel opus-intents BEFORE dynamic-resolver. Stream type=exec + LLM reformulation. Evite collision keyword "pipeline" avec Ethica.
Volumes live confirmes (ZERO simulation)
- pipeline_contacts: 61,812 (99.92% linked via fuzzy match)
- pipeline_companies: 38,320 (+484 created)
- pipeline_activities: 6,267
- ethica_hcps: 146,694
Infra collaterale (Phase 2+3 session)
- /opt/weval-ops/kpi-snapshot-daily.py (cron 0 2 * * *)
- /api/kpi-history-30d.php (wide schema JSON)
- visual-management.html Chart.js 30j widget ADD (doctrine 60)
Tests chat WEVIA Master
"combien orphans" -> 52 EXACT (engine=Opus/opus-intents) "dernier kpi snapshot" -> 7 derniers jours + API HTTP 200 OK "twenty crm status" -> HTTP 200 + workspace.person manque (blocker tracked) "fuzzy orphans progression" -> retour vraiment mais matche business_volumes first
Blockers deferes
- Passphrase GPG 4.36M leads (besoin backup wevads-v2 / contact auteur script)
- Twenty workspace.person manquant (frontend OK mais DB incomplete)
- LLM kpi_daily cosmetique (colonnes non-labelees dans psql output)
Prochaine session priorites
- Fix kpi_daily LLM colonne labels
- Swap priorite regex fuzzy_orphans vs business_volumes
- Passphrase GPG investigation
- Decision Yanis: relance send_contacts_merge (stopped 2 mois)
- Activer Twenty CRM frontend (60K B2B pool exploitable)