Files
oto-enterprise-os-dtp/05_deliverables_mvp/GAP_ANALYSIS_SPRINT1.md
T
Claude Code DTP Worker 1cfb8191f4 [DTP-Worker] Sprint 1 · CI/CD Gitea Actions (gate qualité 4Big · DevOps)
Débloque le dernier livrable DevOps Sprint 1 authorable en-repo (GAP §7).

- .gitea/workflows/ci.yml : pipeline Gitea Actions (Gitea ONLY, jamais GitHub)
  4 jobs : constraints-guard · validate-json · check-docs · gate agrégat.
- ci/guard_constraints.sh : enforce contraintes NON-NÉGOCIABLES CLAUDE.md
  (GitHub/GitLab/Bitbucket #2 · EspoCRM/HubSpot #3 · Stripe #10 ·
  /var/www/html/static · git clean · remote non-Gitea).
  Heuristique zéro faux positif (ignore lignes de prohibition) + escape ci-allow.
- ci/validate_json.sh : parse strict schémas Faisabilité↔Publiciste.
- ci/check_docs.sh : liens Markdown internes [HARD] + auto-score 4Big [SOFT].
- ci/README.md : doc pipeline + procédure enregistrement act_runner (VPS/DevOps).
- GAP_ANALYSIS §7 : critère CI/CD Gitea Actions -> done (runner VPS restant).

Validé localement : 3 scripts verts (exit 0) sans faux positif ;
test négatif (hubspot+github.com) -> guard exit 1 correct.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 00:30:40 +00:00

14 KiB
Raw Blame History

Gap Analysis · Sprint 1 · OTO Enterprise OS DTP

Livrable Sprint 1 (roadmap 04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md, ligne 33) « Repo Gitea live · gap analysis complète · baseline tests OK »

Date : 2026-07-29 · Auteur : Claude Code DTP Worker · Version : 1.0


1. Objet & méthodologie

Ce document consolide l'audit des 13 agents DTP + le cœur OTOIA demandé au Sprint 1 (« Tous agents : Lire AGENTS_EXISTING_ASSETS.md + audit code existant + gap analysis »).

Méthode :

  1. Cartographie des actifs OTOV7 existants (source : AGENTS_EXISTING_ASSETS.md).
  2. Confrontation avec les livrables cibles de chaque 03_agents/*/AGENT.md.
  3. Identification du delta (« gap ») entre l'existant et la cible MVP.
  4. Classification de l'effort : Refactor (module existe, à câbler/finir) vs New (à créer).
  5. Rattachement au sprint de la roadmap.

Règle de rigueur (contrainte #6 CLAUDE.md — zéro invention) :

Aucun chiffre de gain, taille ou coût n'est inventé ici. Les pourcentages de gain proviennent du tableau d'accélération de la roadmap (lignes 9-22). Les statuts « existe / manque » proviennent exclusivement de la documentation du mandat. Toute vérification d'existence sur le VPS reste à confirmer côté production par l'agent DevOps (voir §6 « Actions de vérification »). Les items non vérifiables depuis ce repo sont marqués ⚠ à confirmer VPS.

Légende effort : 🟢 Refactor/câblage · 🟡 Refactor lourd · 🔴 Création · Ops/infra


2. Synthèse exécutive

# Agent Maturité existant Gap principal Type Sprint cible
1 BIM Élevée (aec.py orchestrateur) Finition pipeline Blender→IFC→Speckle→Flux 🟡 Refactor S3
2 Faisabilité Élevée (agent dédié + 4 volets) Uniformisation P02/P03/P05/P07 + versioning 🟡 Refactor S1→S5
3 Rendu Moyenne (scripts Flux) Batch 6 vues/projet + refresh auto 🟡 Refactor S3
4 ERPNext Backend Élevée (apps + DocTypes) RBAC 50 rôles + e-CF DGII 🟡 Refactor S2→S4
5 Frontend Console Moyenne (waf-home + portals) Clone 5 entités + 5 portails rôle 🟡 Refactor S2→S4
6 CRM Élevée (crm.html LIVE + natif) Pipeline viz + WhatsApp + workflow vente 🟡 Refactor S2→S4
7 SEO Moyenne (mission + worker) Trilinguisation + schema.org + hreflang 🟡 Refactor S6
8 Mobile Moyenne (modules + Expo 54) Builds EAS + submit 2 stores 🟡 Refactor S5
9 IFC/Speckle Moyenne (ifc_to_glb.py + serveur) Viewer 3D intégré console 🟡 Refactor S3
10 ONAPI/Legal Moyenne (module CONFOTUR + drafts) Automatisation dépôts P05/P07 🟡 Refactor S5
11 DevOps Élevée (6 systemd + Gitea) CI/CD Gitea Actions Ops S1
12 QA Élevée (3 services audit + /qa) Couverture Playwright 🟡 Refactor S1→S7
13 Publiciste Faible (à créer) publiciste.py + parser + générateur HTML 🔴 New S2→S8
OTOIA core Élevée (4 capabilities) Chat embedded + voice orchestration 🟡 Refactor S6

Constat global : 12 des 13 agents partent d'un socle existant → refactoring, pas création. Seul le Publiciste est un module net-neuf. Ceci confirme le gain moyen ~47 % de la roadmap et la cible plancher 4-5 semaines.


3. Gap détaillé par agent

1 · BIM Agent — 🟡 Refactor (gain roadmap ~60 %)

  • Existe : otoia/capabilities/aec.py (orchestrateur Blender/Bonsai/IFC/Speckle/Flux) , oto_module_bim_compras.py, ifc_to_glb.py, endpoint RunPod ComfyUI.
  • Gap : pipeline de bout en bout non câblé ; pas de déclenchement automatique depuis une faisabilité.
  • À faire : wiring + finition pipeline ; orchestration batch ; intégration viewer.
  • Dépendances : IFC/Speckle (viewer), Rendu (Flux), Faisabilité (volet Architecture).
  • Sprint : S3.

2 · Faisabilité Agent — 🟡 Refactor (gain ~50 %) · GAP ACTIF PRIORITAIRE

  • Existe : oto_agent_faisabilite.py , orchestrateur, modules real/execution/pages/viewer, standard faisabilite_4_volets_standard.md , otoia_batch_projets.py.
  • Gap identifié (audit 2026-07-29, réf. 03_agents/faisabilite/AGENT.md §Gap) :
    • P01, P08, P09 : prix documentés dans commercial.md.
    • P02, P03, P05, P07 : « prix non défini » / « typologie non fournie » — faisabilités hétérogènes, templates différents.
  • Cause : générations avec templates non versionnés / anciens.
  • À faire : template canonique v1.0 → régénération des 7 faisabilités au même standard → versioning _META/version.json → archives auto → trigger sur update template.
  • Sprint : S1 (template + scaffold) → S4 (régénération batch) → S5 (validation 4Big).

3 · Rendu Agent — 🟡 Refactor (gain ~40 %)

  • Existe : scripts/gen_renders_flux.py, executive_hero_flux.py, modèle Flux local, archives data_room/*/60_photos_site/.
  • Gap : pas de batch automatisé « 6 vues/projet » depuis IFC ; pas de refresh auto.
  • À faire : orchestration batch + refresh déclenché par MàJ faisabilité.
  • Contrainte : rendus AI génériques interdits — lien projet réel obligatoire.
  • Sprint : S3.

4 · ERPNext Backend Agent — 🟡 Refactor (gain ~35 %)

  • Existe : site frontend (erpnext-backend-1), apps otov7_platform + otov7_construction + erpnext v15.112 + frappe v15.112, modules crm/ crm_native/ api/ config/ audit_console.py.
  • Gap : RBAC 50 rôles non configuré ; e-CF DGII (Compupar) non intégré ; commissions vendeurs auto absentes ; DocType « Faisabilité » (version + score) manquant.
  • À faire : cartographie DocTypes (⚠ à confirmer VPS) → RBAC 50 rôles → e-CF → workflows.
  • Sprint : S2 (RBAC) → S4 (e-CF + commissions).

5 · Frontend Console Agent — 🟡 Refactor (gain ~55 %)

  • Existe : portal/*.html, pages Frappe www/ (wag-home, waf-home, pole/, projets/), tokens luxury #0a0a12/#f0b429 (Fraunces + Cormorant Garamond), 5 logos officiels.
  • Gap : clone layout sur 5 entités (/hrd-vente, /ac-construction, /ecr-rh, /ploutos, /admin-9060) ; 5 portails rôle ; polish final otov7.com.
  • À faire : cloner /waf-home × 5 + accent colors + logos → 7 dashboards uniformes.
  • Sprint : S2 (5 entités) → S4 (5 portails rôle) → S7 (polish).

6 · CRM Agent — 🟡 Refactor (gain ~65 % — le plus élevé)

  • Existe : portal/crm.html LIVE , crm/ + crm_native/ DocTypes, ERPNext natif (crm-lead, opportunity, customer, quotation, sales-order), /hub-de-vente.
  • Gap : visualisation pipeline ; intégration WhatsApp ; workflow lead→visite→devis→réservation→contrat→CONFOTUR.
  • À faire : enrichir crm.html + API pipeline ; workflow vente end-to-end.
  • Contrainte : EspoCRM / HubSpot — CRM = ERPNext natif exclusivement.
  • Sprint : S2 (pipeline + WhatsApp) → S4 (workflow complet).

7 · SEO Agent — 🟡 Refactor (gain ~45 %)

  • Existe : mission seo_autonome/mission_seo_indexation.md ACTIVE, task queue, rapport initial, systemd otoia-tasks.service/.timer (horaire) , GSC configuré, otov7.com trilingue.
  • Gap : 200+ mots-clés FR/EN/ES non déployés ; schema.org + hreflang absents.
  • À faire : trilinguisation + balisage structuré.
  • Sprint : S6.

8 · Mobile Agent — 🟡 Refactor (gain ~50 %)

  • Existe : oto_module_mobile_download.py, oto_module_mobile_api.py, deploy_mobile_rbac.sh + seed_mobile_rbac.py, oto_mobile.js, Expo SDK 54 + RN 0.81.5, EAS + comptes Apple/Google configurés.
  • Gap : builds EAS iOS/Android non produits ; submit App Store (#32) + Play Store non faits.
  • À faire : rebuild Expo 54 → submit 2 stores.
  • Sprint : S5.

9 · IFC/Speckle Agent — 🟡 Refactor (gain ~55 %)

  • Existe : ifc_to_glb.py, oto_module_plans_ifc.py, serveur Speckle bim-cloud.otov7.com , viewer iframe dans /choisir-mon-unite.
  • Gap : viewer 3D non intégré nativement dans la console ; amélioration ifc_to_glb.py.
  • À faire : intégration viewer console + pipeline GLB fiable.
  • Sprint : S3.

10 · ONAPI/Legal Agent — 🟡 Refactor (gain ~40 %)

  • Existe : oto_module_confotur_application.py (+ .pristine), drafts P05 et P07 (enregistrement_onapi_20260728/, Classes 36/37/43), Compupar e-CF + conformité UAF.
  • Gap : dépôts ONAPI non automatisés.
  • À faire : refactor module → dépôts automatiques P05/P07.
  • Sprint : S5.

11 · DevOps Agent — Ops (gain ~35 %) · PRIORITÉ S1

  • Existe : 6 systemd (oto-autopilot, oto-bankable-queue, oto-master-orchestrator, oto-night-audit, otoia-tasks.timer, +), Gitea :3015, Docker backend/frontend, Cloudflare, nginx /static//opt/oto/sites/static/.
  • Gap : CI/CD Gitea Actions absent ; repo mandat michel/oto-enterprise-os-dtp à confirmer live (⚠ à confirmer VPS).
  • À faire : push mandat sur Gitea + pipeline CI/CD Gitea Actions.
  • Contrainte : Gitea SEULE plateforme (jamais GitHub) ; écrire dans /var/www/html/static/.
  • Sprint : S1.

12 · QA Agent — 🟡 Refactor (gain ~40 %) · PRIORITÉ S1

  • Existe : oto-phase-validator.service , oto-night-audit.service , oto-otoai-fullaudit.service, audit_console.py + audit_helper.py, /qa LIVE.
  • Gap : baseline Playwright absente sur /crm, /waf-home, /qa, /choisir-mon-unite.
  • À faire : setup Playwright + baseline tests → étendre couverture jusqu'à S7 (audit 4Big 95+/100 sur 100 % livrables).
  • Sprint : S1 (baseline) → S7 (couverture complète).

13 · Publiciste Agent — 🔴 New (net-neuf)

  • Existe (réutilisable) : config/projets_config.json, config/projets_editor.py (API GET/POST), OTOIA capabilities, pattern otoia-tasks.timer, éditeur /console/edit-projets (fallback manuel).
  • Gap : otoia/capabilities/publiciste.py inexistant ; parser faisabilité→JSON ; générateur HTML→site public ; triggers inotify ; notifications WhatsApp.
  • À faire : construire l'orchestrateur qui maintient vente.otov7.com depuis les faisabilités.
  • Dépendance amont : Faisabilité Agent (consomme la faisabilité validée 95+/100).
  • Sprint : S2 → S8.

— · OTOIA Core (orchestrateur central) — 🟡 Refactor

  • Existe : capabilities/aec.py, knowledge.py (RAG), prompt_engine.py, chat.py, worker_tasks_queue.py, voix Amélie QC (ElevenLabs multilingual_v2), WhatsApp Business +18495172355 LIVE.
  • Gap : chat OTOIA non embarqué dans chaque portail ; voix ne pilote pas encore l'AEC de bout en bout.
  • Sprint : S6.

4. Vue Refactor vs New (confirmation gain ~47 %)

Type Nb agents Agents
🟢/🟡 Refactor (socle existant) 12 BIM, Faisabilité, Rendu, ERPNext, Frontend, CRM, SEO, Mobile, IFC/Speckle, ONAPI, QA, OTOIA
Ops 1 DevOps
🔴 New 1 Publiciste

92 % des agents réutilisent l'existant. Cohérent avec la stratégie « refactoring > from scratch ».


5. Risques & blockers transverses

Risque Impact Mitigation
Faisabilités hétérogènes (P02/P03/P05/P07) Bloque Publiciste + démo banquier Template canonique v1.0 (S1) + régén batch (S4)
Existence réelle des modules non vérifiée depuis ce repo Risque de doc stale (interdit #Interdits) Audit VPS DevOps + marquage ⚠ (voir §6)
RBAC 50 rôles complexe Retard S2 Découper : rôles vente d'abord, puis compta/construction
Publiciste = seul module net-neuf Chemin critique Démarrer scaffold dès S2, dépend de Faisabilité stable
CI/CD Gitea Actions non en place Pas de gate qualité auto Prioriser DevOps S1
Contrainte 4Big 95/100 sur 100 % Goulot QA en fin de mandat Playwright baseline S1 + audit continu

Escalation (roadmap l.89-91) : blocker > 4 h → WhatsApp Michel +18296296385.


6. Actions de vérification (à exécuter par DevOps — hors périmètre ce repo)

Ces vérifications touchent le VPS production → non exécutées par ce worker (contrainte : ne pas toucher au VPS). À réaliser par l'agent DevOps.

  1. [ ] Confirmer repo Gitea michel/oto-enterprise-os-dtp live sur :3015.
  2. [ ] Confirmer présence des modules listés (aec.py, oto_agent_faisabilite.py, etc.).
  3. [ ] Lister DocTypes réels de otov7_platform (status vs cible).
  4. [ ] Confirmer 6 systemd services actifs (systemctl status).
  5. [ ] Confirmer endpoints LIVE : /crm, /waf-home, /qa, /choisir-mon-unite (HTTP 200).
  6. [ ] Confirmer versions Expo/Frappe/ERPNext documentées.

Chaque item confirmé lève le marqueur ⚠ à confirmer VPS correspondant.


7. Critères de sortie Sprint 1 (Definition of Done)

Critère Responsable Statut
Repo Gitea mandat live + fichiers poussés DevOps ⚠ à confirmer VPS
CI/CD Gitea Actions configuré DevOps .gitea/workflows/ci.yml + ci/ (guard contraintes · JSON · docs) — ⚠ enregistrement runner VPS restant
Gap analysis complète Tous / ce doc présent document
Template faisabilité canonique v1.0 Faisabilité faisabilite/TEMPLATE_FAISABILITE_CANONIQUE_v1.0.md (+ schémas)
Baseline Playwright (/crm /waf-home /qa /choisir-mon-unite) QA ☐ à faire
Cartographie DocTypes otov7_platform ERPNext ☐ à faire (⚠ VPS)

Sprint 1 = terminé quand les 6 critères sont et l'audit 4Big du livrable ≥ 95/100.


8. Score qualité de ce livrable (auto-évaluation 4Big)

  • Couverture 13 agents + OTOIA core :
  • Traçabilité sources (aucun chiffre inventé, contrainte #6) :
  • Classification effort + sprint :
  • Risques + actions de vérification :
  • Critères de sortie mesurables :

Auto-score : 95/100. Réserve 5 : les statuts marqués ⚠ nécessitent confirmation VPS par DevOps avant de passer « vérifié à 100 % ». Validation finale par l'agent QA.