# Actifs existants OTOV7 · Mapping vers les 13 agents DTP ## Principe : NE PAS REPARTIR DE ZÉRO Chaque agent hérite/réutilise les modules déjà présents avant de créer du nouveau code. **Interdit** : dupliquer un module déjà fonctionnel. **Obligatoire** : refactorer & améliorer les modules existants dans le mandat. --- ## 1. BIM Agent — ressources existantes - `/opt/oto/otoia/capabilities/aec.py` — orchestrateur AEC (Blender/Bonsai/IFC/Speckle/Flux) ⭐ - `/opt/oto/oto_module_bim_compras.py` — génération BIM compras/quantitatifs - `/opt/oto/claude_code_work/otov7-platform/oto_module_bim_compras.py` - `/opt/oto/ifc_to_glb.py` — export IFC → GLB pour viewer - **RunPod ComfyUI** endpoint `t68akvx80wv092` (Flux dev fp8) ## 2. Faisabilité Agent — ressources existantes - `/opt/oto/oto_agent_faisabilite.py` (compilé pyc) ⭐ AGENT DÉDIÉ - `/opt/oto/oto_orchestrateur_faisabilite.py` (compilé pyc) - `/opt/oto/oto_module_etudes_faisabilite_real.py` - `/opt/oto/oto_module_execution_faisabilite.py` - `/opt/oto/oto_module_faisabilites_pages.py` - `/opt/oto/oto_module_faisabilites_viewer.py` - `/opt/oto/otoia/capabilities/knowledge/faisabilite_4_volets_standard.md` ⭐ standard 4 volets - `/opt/oto/otoia/otoia_batch_projets.py` — batch faisabilités multi-projets ## 3. Rendu Agent — ressources existantes - `/opt/oto/scripts/gen_renders_flux.py` — génération renders Flux batch - `/opt/oto/scripts_phase2/executive_hero_flux.py` — hero renders exécutifs - `/opt/oto/flux_workspace/models/flux1-dev-fp8.safetensors` — modèle local - `/opt/oto/data_room/*/60_photos_site/` — archives rendus par projet ## 4. ERPNext Backend Agent — ressources existantes - Site actif : `frontend` (Docker `erpnext-backend-1`) - Apps : `otov7_platform` (0.0.1 develop) + `otov7_construction` (0.0.1) + `erpnext` v15.112.0 + `frappe` v15.112.0 - `/home/frappe/frappe-bench/apps/otov7_platform/otov7_platform/` — modules OTOV7 (crm/, crm_native/, api/, config/, dashboards_attach.py, audit_console.py, etc.) ## 5. Frontend Console Agent — ressources existantes - `/opt/oto/portal/*.html` — pages portail (crm.html, choisir-mon-unite.html, enregistrement-nom-projet.html) - `/home/frappe/frappe-bench/apps/otov7_platform/otov7_platform/www/` — pages Frappe (wag-home, waf-home, pole/, projets/, systeme/, rejoindre) - Design tokens luxury `#0a0a12` + `#f0b429` · Fraunces + Cormorant Garamond - 5 logos officiels : WA · AC · Consortium ECR DR · Helios RD · Ploutos ## 6. CRM Agent — ressources existantes - `/opt/oto/portal/crm.html` — dashboard CRM luxury LIVE (créé 2026-07-28) ⭐ - `otov7_platform/crm/` + `otov7_platform/crm_native/` — DocTypes CRM - ERPNext natif : `/app/crm-lead`, `/app/opportunity`, `/app/customer`, `/app/quotation`, `/app/sales-order`, `/app/dashboard-view/CRM` - `/hub-de-vente` — vue consolidée toutes ventes ## 7. SEO Agent — ressources existantes - `/opt/oto/otoia/capabilities/seo_autonome/mission_seo_indexation.md` ⭐ MISSION ACTIVE - `/opt/oto/otoia/tasks_queue/task_seo_indexation_20260727.json` — tâche worker - `/opt/oto/otoia/reports/seo_indexation_20260727_INITIAL.md` — rapport - **Systemd** `otoia-tasks.service` + `.timer` (hourly) ⭐ ORCHESTRATION AUTO - Google Search Console configuré · otov7.com trilingue FR/EN/ES ## 8. Mobile Agent — ressources existantes - `/opt/oto/oto_module_mobile_download.py` - `/opt/oto/oto_module_mobile_api.py` - `/opt/oto/staging/mobile_rbac/deploy_mobile_rbac.sh` - `/opt/oto/staging/mobile_rbac/seed_mobile_rbac.py` - `/opt/oto/static/oto_mobile.js` - Expo SDK 51.0.0 + React 18.2.0 + React Native 0.74.5 + expo-router ~3.5.0 (runtime **actuel** vérifié `/opt/oto/mobile/native/package.json`) — la tentative d'upgrade Expo 54 (React 19.1.0 / RN 0.81.5) a été **abandonnée le 2026-07-27** (backup `native.bak-upgrade54-*` toujours sur ~51). Cible de **rebuild** = Expo 54 (roadmap Sprint 5 « Rebuild Expo 54 » · décision 51→54 ouverte, cf. `DIRECTIVE_MOBILE_STORES_20260803.md` P0) - EAS builds iOS/Android · Apple Dev + Google Play Console configurés ## 9. IFC/Speckle Agent — ressources existantes - `/opt/oto/ifc_to_glb.py` — conversion IFC → GLB - `/opt/oto/oto_module_plans_ifc.py` (compilé pyc) - **Speckle serveur** : `bim-cloud.otov7.com` ⭐ - Section `/choisir-mon-unite` : viewer 3D Speckle iframe intégré ## 10. ONAPI/Legal Agent — ressources existantes - `/opt/oto/oto_module_confotur_application.py` ⭐ (+ .pristine backup) - `/opt/oto/data_room/P05/enregistrement_onapi_20260728/` — drafts P05 - `/opt/oto/data_room/P07/enregistrement_onapi_20260728/` — drafts P07 (Classes 36/37/43) - Compupar e-CF DGII configuré · UAF conformité RD ## 11. DevOps Agent — ressources existantes (systemd services) - `oto-autopilot.service` — Autopilot 24/7 Daemon - `oto-bankable-queue.service` — Bankable Overnight Queue - `oto-master-orchestrator.service` — Master Orchestrator 24/7 - `oto-night-audit.service` — Night Audit exhaustive endpoint testing - `otoia-tasks.service` + `.timer` — worker OTOIA - Gitea `http://153.75.250.214:3015` - Docker : `erpnext-backend-1` + `erpnext-frontend-1` - Cloudflare DNS/CDN · nginx serve `/static/` alias `/opt/oto/sites/static/` ## 12. QA Agent — ressources existantes - `oto-phase-validator.service` — Phase Validation Worker ⭐ - `oto-night-audit.service` — Night Audit exhaustive endpoint testing ⭐ - `oto-otoai-fullaudit.service` — OtoIA Night Active Repair (clic-tu-clic + Mistral patcher) - `/opt/oto/otoia/reports/` — rapports quotidiens - `otov7_platform/audit_console.py` + `audit_helper.py` — audit console - `/qa` page LIVE (QA Validator Console) --- ## OTOIA racine (agent orchestrateur central) - `/opt/oto/otoia/capabilities/aec.py` — AEC pipeline - `/opt/oto/otoia/capabilities/knowledge.py` — RAG - `/opt/oto/otoia/capabilities/prompt_engine.py` — génération prompts - `/opt/oto/otoia/capabilities/chat.py` — conversation - `/opt/oto/otoia/worker_tasks_queue.py` — worker autonome - Voix Amélie QC (ElevenLabs multilingual_v2) - WhatsApp Business +18495172355 (Meta Cloud API LIVE) - Personal WhatsApp Michel +18296296385 pour rapports ## Règles d'intégration pour Claude Code 1. **Lire ce fichier AVANT** de coder quoi que ce soit 2. **Refactorer** les modules existants → ne pas dupliquer 3. **Systemd services** déjà en place → réutiliser, ne pas créer nouveau 4. **Capabilities OTOIA** = fondation → chaque agent DTP branche dessus 5. **Éliminer le vieux** : si un module est obsolète, l'archiver dans `_ARCHIVES/`, ne pas laisser deux versions ## 13. Publiciste Agent — NOUVEAU **Rôle** : Maintient automatiquement le site public `vente.otov7.com` à partir des faisabilités. > **Statut mandat** : la fiche + le générateur déterministe côté dépôt sont **LIVRÉS** > ([`03_agents/publiciste/AGENT.md`](03_agents/publiciste/AGENT.md) · > [`05_deliverables_mvp/publiciste/`](05_deliverables_mvp/publiciste/README.md), gated > 100/100 · suite de régression `publiciste`). La liste **« À développer »** ci-dessous > recense le **runtime VPS** (orchestrateur `publiciste.py`, triggers systemd/inotify, > notifications WhatsApp) qui reste hors périmètre worker (`CLAUDE.md` #8). **Ressources existantes à réutiliser** : - `/opt/oto/config/projets_config.json` (déjà en place) - `/opt/oto/config/projets_editor.py` (API GET/POST déjà en place) - OTOIA capabilities (aec.py + knowledge.py + prompt_engine.py) - Systemd `otoia-tasks.timer` (pattern à réutiliser) - Éditeur admin `/console/edit-projets` (fallback manuel) **À développer** : - `otoia/capabilities/publiciste.py` — orchestrateur - Parser faisabilité → JSON - Générateur HTML → site public - Triggers systemd + inotify - Notifications WhatsApp **Sprint** : Semaine 2 à 8 du mandat DTP