From b6ec5c3c990096764e9812878c3bcb9f21a8ea38 Mon Sep 17 00:00:00 2001 From: Michel Roy Date: Wed, 29 Jul 2026 17:38:35 +0000 Subject: [PATCH] =?UTF-8?q?Add=20Publiciste=20Agent=20=C2=B7=20maintien=20?= =?UTF-8?q?automatique=20site=20vente.otov7.com=20depuis=20faisabilites=20?= =?UTF-8?q?via=20OTOIA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 03_agents/publiciste/AGENT.md | 99 +++++++++++++++++++++++++++++++++++ AGENTS_EXISTING_ASSETS.md | 19 +++++++ 2 files changed, 118 insertions(+) create mode 100644 03_agents/publiciste/AGENT.md diff --git a/03_agents/publiciste/AGENT.md b/03_agents/publiciste/AGENT.md new file mode 100644 index 0000000..535b439 --- /dev/null +++ b/03_agents/publiciste/AGENT.md @@ -0,0 +1,99 @@ +# 🎯 Publiciste Agent · Maintenance automatique site public (vente.otov7.com) + +**Rôle** : Cet agent OTOIA maintient automatiquement à jour le site public `vente.otov7.com` à partir des **faisabilités canoniques** de chaque projet. Il élimine le besoin d'édition manuelle du site. + +## Mission +1. **Extraire** en continu depuis les faisabilités canoniques (`data_room/PXX/`) : + - Positionnement marketing + - Typologies + surfaces + - Prix "à partir de" par typologie + - Grille tarifaire complète + - Ce qui est inclus (services · équipements · CONFOTUR · Fideicomiso · etc.) + - Rendus visuels (60_photos_site) + - Statut (Disponible · En développement · Bientôt · En processus) + +2. **Générer** copy multilingue FR/EN/ES à partir du positionnement documenté + +3. **Publier** automatiquement sur `vente.otov7.com` sans intervention humaine + +4. **Détecter** changements dans faisabilités et déclencher rebuild du site + +5. **Ajouter automatiquement** les nouveaux projets dès que `data_room/PXX/` créé + faisabilité complète + +## Sources de vérité (dans l'ordre) +1. `/opt/oto/data_room/PXX/50_financier_bancable/one_pager_banquier.pdf` +2. `/opt/oto/data_room/PXX/40_llm_outputs/commercial.md` +3. `/opt/oto/data_room/PXX/40_llm_outputs/marche_analyste.md` +4. `/opt/oto/data_room/PXX/40_llm_outputs/directeur.md` +5. `/opt/oto/data_room/PXX/00_brief/` +6. `/opt/oto/data_room/PXX/60_photos_site/` (rendus) + +## Règles absolues (interdits) +- ❌ Zéro invention de prix, chiffres, positionnement (source ONLY = faisabilité) +- ❌ Jamais éditer directement `vente.otov7.com/index.html` — passer par le générateur +- ❌ Ne pas publier un projet dont la faisabilité est incomplète (marquer "En développement") +- ❌ Ne pas dupliquer rendus AI (source unique data_room/PXX/60_photos_site/) + +## Workflow détaillé + +### Trigger 1 : Faisabilité mise à jour +- Détecte modification dans `data_room/PXX/40_llm_outputs/*.md` +- Re-extrait positionnement + prix +- Régénère section projet dans `vente.otov7.com/index.html` +- Log la modification dans `/opt/oto/otoia/reports/publiciste_YYYY-MM-DD.md` +- Notifie Michel via WhatsApp si prix / positionnement change + +### Trigger 2 : Nouveau projet créé +- Détecte création `data_room/PXX/` (nouveau code projet) +- Attend que la faisabilité soit complète (score ≥ 95/100) +- Ajoute automatiquement la card projet sur vente.otov7.com +- Copie les rendus dans `/opt/oto/sites/static/projets/pXX/` +- Log + WhatsApp notification + +### Trigger 3 : Nouveau rendu généré +- Détecte nouveau rendu dans `data_room/PXX/60_photos_site/` +- Copie vers `/opt/oto/sites/static/projets/pXX/` +- Met à jour l'image hero de la card si c'est le rendu principal +- Cache-bust Cloudflare automatique + +### Trigger 4 : Faisabilité incomplète +- Détecte "prix non documenté" ou "pricing non défini" +- Marque le projet en "En développement" avec "Prochainement · Détails à venir" +- Log + WhatsApp à Michel pour compléter faisabilité + +## Architecture technique +``` +data_room/PXX/ ────► parser.py (extraction) ────► projets_master.json + │ + ▼ + generator.py (rendu HTML) + │ + ▼ + /opt/oto/sites/vente/index.html + │ + ▼ + Cache-bust Cloudflare + notify Michel +``` + +## Composants à créer +1. `otoia/capabilities/publiciste.py` — orchestrateur agent +2. `otoia/capabilities/knowledge/site_public_template.md` — template génération site +3. Systemd timer `otoia-publiciste.timer` (check horaire) +4. Watch inotify sur `data_room/*/40_llm_outputs/` (temps réel) +5. Backend Frappe DocType `Publiciste Log` pour audit trail + +## Livrable Sprint (mandat 8 semaines) +- **Semaine 2** : Setup base + parser faisabilité → JSON +- **Semaine 3** : Générateur HTML → vente.otov7.com +- **Semaine 4** : Triggers systemd + inotify actifs +- **Semaine 5** : Notifications WhatsApp Michel +- **Semaine 6** : Multi-langue FR/EN/ES automatique +- **Semaine 7** : Tests + validation faisabilités P01-P09 +- **Semaine 8** : Production + +## Coordination inter-agents +- **BIM Agent** : fournit rendus (Blender/Bonsai → 60_photos_site) +- **Faisabilité Agent** : génère faisabilités 4 volets → 40_llm_outputs +- **Rendu Agent** : batch renders → 60_photos_site +- **CRM Agent** : reçoit leads/inscriptions du site public +- **SEO Agent** : optimise les balises meta générées diff --git a/AGENTS_EXISTING_ASSETS.md b/AGENTS_EXISTING_ASSETS.md index 56e801e..45f28de 100644 --- a/AGENTS_EXISTING_ASSETS.md +++ b/AGENTS_EXISTING_ASSETS.md @@ -111,3 +111,22 @@ Chaque agent hérite/réutilise les modules déjà présents avant de créer du 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 (à créer) +**Rôle** : Maintient automatiquement le site public `vente.otov7.com` à partir des faisabilités. + +**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