Files
oto-enterprise-os-dtp/AGENTS_EXISTING_ASSETS.md
T
Claude Code DTP Worker 94e9365cea [DTP-Worker 20260803_013634] Sprint 5 · fix · Dérive ground-truth Mobile : « Expo 54 en place » corrigé → Expo 51 réel (upgrade 54 abandonné 2026-07-27)
AGENTS_EXISTING_ASSETS.md §8 + fiche 03_agents/mobile affirmaient le runtime
courant « Expo SDK 54 · React 19.1.0 · RN 0.81.5 (upgrade 2026-07) EN PLACE ».
Faux : la directive Michel 85d2fa3 (audit 2026-08-03) + le package.json réel
vérifié disent Expo ~51.0.0 / React 18.2.0 / RN 0.74.5 / expo-router ~3.5.0,
l'upgrade 54 abandonné le 2026-07-27 (le backup native.bak-upgrade54-* est resté
sur ~51). Classe interdite CLAUDE.md « documenter sans vérifier existence
courante » + #6. Corrigé en distinguant runtime ACTUEL (51) vs cible REBUILD S5
(54, roadmap — décision P0 ouverte, non tranchée). Module mobile/app_config
(byte-gaté Expo 54 = cible) + roadmap NON touchés (corrects). Versions ungated
(vérifié : aucun gate ne pinne 0.81.5/19.1.0/18.2.0). Signal roadmap-vs-réel
surfacé à Michel dans le log. run_ci.sh 30 PASS 0 FAIL · zéro module · zéro gate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 01:45:20 +00:00

140 lines
7.7 KiB
Markdown

# 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