{ "deliverable": "Chat OTOIA embarqué par portail", "sprint": "Sprint 6 · ERPNext Backend", "roadmap_ref": "04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md · Sprint 6 l.63 « ERPNext Backend : Chat OTOIA embedded dans chaque portail »", "generated_from": "rbac_50_roles.json (rôles + permissions_cibles par portail) + frontend/portails/portails_spec.json (portails) + frontend/portails/out/workspace.json (Has Role réels) + seo/seo_spec.json (langues trilingues)", "carrier": { "doctype": "Custom Block", "workspace_content_block_type": "custom_block", "note": "Chaque Custom Block est inséré dans le `content` (editor.js) du Workspace de son portail via un bloc `custom_block` référençant `block_name`. La clé exacte du payload editor.js est a_confirmer selon le patch de version v15 — étape VPS (agent Frontend)." }, "persona": { "nom": "Amélie", "voix": "multilingual_v2" }, "langues": [ "fr", "en", "es" ], "lang_defaut": "fr", "capabilities": [ "aec.py", "knowledge.py", "prompt_engine.py", "chat.py" ], "endpoint_statut": "a_confirmer", "counts": { "portails": 5, "custom_blocks": 5, "mounts": 5, "roles_couverts": 44, "knowledge_doctypes_uniques": 35 }, "portails": [ { "portail": "ventes", "workspace": "OTO Ventes", "custom_block": "OTOIA Chat · OTO Ventes", "nb_roles": 12, "nb_knowledge_doctypes": 11 }, { "portail": "construction", "workspace": "OTO Construction", "custom_block": "OTOIA Chat · OTO Construction", "nb_roles": 10, "nb_knowledge_doctypes": 9 }, { "portail": "achat", "workspace": "OTO Achat", "custom_block": "OTOIA Chat · OTO Achat", "nb_roles": 5, "nb_knowledge_doctypes": 8 }, { "portail": "compta", "workspace": "OTO Compta", "custom_block": "OTOIA Chat · OTO Compta", "nb_roles": 8, "nb_knowledge_doctypes": 11 }, { "portail": "direction", "workspace": "OTO Direction", "custom_block": "OTOIA Chat · OTO Direction", "nb_roles": 9, "nb_knowledge_doctypes": 14 } ], "brand": { "fond": { "valeur": "#0a0a12", "source": "CLAUDE.md #4" }, "accent": { "valeur": "#f0b429", "source": "CLAUDE.md #4" }, "polices": [ { "valeur": "Fraunces", "source": "CLAUDE.md #4" }, { "valeur": "Cormorant Garamond", "source": "CLAUDE.md #4" } ] }, "handoff_vps": [ "Créer/confirmer le module propriétaire OTO côté app puis importer les fixtures `Custom Block` (bench).", "Insérer dans le `content` de chaque Workspace (frontend/portails/out/workspace.json) un bloc `custom_block` référençant `block_name` (payload editor.js a_confirmer selon version).", "Renseigner l'endpoint OTOIA (desk/bim-cloud) dans la config runtime + charger le web-component OTOIA via le thème desk (agent Frontend · #8).", "Appliquer les tokens de marque dark+doré (#4) au montage via le thème." ] }