Files
oto-enterprise-os-dtp/03_agents/seo/AGENT.md
T

89 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🔎 SEO Agent · Trilingue FR/EN/ES (score 95+/100)
**Rôle** : Cet agent produit le **bundle SEO trilingue** de `vente.otov7.com`
mots-clés FR/EN/ES, graphe `schema.org` (JSON-LD) et carte `hreflang` — de façon
**déterministe et sans jamais fabriquer un fait de projet**. Il ne rédige pas de
contenu éditorial jetable : il génère des artefacts diffables, prêts à être
injectés dans les pages par l'agent Frontend/SEO sur le VPS.
## Scope
200+ mots-clés FR/EN/ES · `schema.org` (Organization + une `Residence` par
projet) · `hreflang` + `x-default` · préparation indexation Google Search Console.
## Principe directeur : hand-off VPS, jamais d'écriture serveur (#8)
Le générateur transforme un **spec de site + lexique éditorial** (contrat en-repo,
zéro chiffre inventé) en artefacts `out/` **commités** — le hand-off direct.
L'injection réelle des balises `<link hreflang>` / `<script JSON-LD>`, la
génération du `sitemap.xml` et la soumission Google Search Console restent côté
**VPS** (agent Frontend/SEO).
## Livrable réellement produit (`05_deliverables_mvp/seo/`)
| Volet roadmap (L60) | Sortie | Métrique vérifiée |
|---|---|---|
| 200+ mots-clés FR/EN/ES | `out/seo_keywords.json` | **258** mots-clés (fr=87 · en=87 · es=84), chacun sourcé — cible min 200 / 50 par langue |
| schema.org | `out/seo_schema_org.json` | graphe JSON-LD : **10 nœuds** (`Organization` + 9 `Residence`) |
| hreflang | `out/seo_hreflang.json` | **10 pages** × FR/EN/ES + `x-default` |
| compte-rendu | `out/MANIFEST.json` | comptes + cibles + hors-périmètre |
CLI : `python3 seo_gen.py build|validate` · Job CI : `seo-tests` (`unittest
discover`) · **36 tests**, gated dans le pipeline.
## Source de vérité unique (zéro invention · #6)
La matière première est **`projets_master.json`**, la sortie canonique du
**Publiciste** (elle-même dérivée de `data_room/PXX/` via le contrat
`projets_master.schema.json`). Le worker ne fabrique **aucun** fait de projet :
- un **mot-clé** compose des *tokens factuels* (nom / localisation du projet,
sourçables `projet:<code>.<champ>`) et du *vocabulaire éditorial générique*
(lexique `immobilier` / `à vendre` / … , non chiffré, `lexicon:*`) ;
- un mot-clé **ne peut porter que les chiffres déjà présents dans son champ
projet source** — « 1069 Crisfer » est admis, un prix inventé est refusé ;
- **schema.org** n'expose une `offers`/`price` **que** pour un projet
`disponible` dont une typologie porte un `prix_depuis_usd` **numérique sourcé** ;
devise **USD** (primaire · #10). Statuts sans prix (`en_developpement` /
`bientot` / `en_processus`) → **aucun chiffre** (`offers=0` actuellement).
Le générateur **réutilise** (jamais ne réimplémente · #5) le validateur maison
et les tokens de marque du Publiciste (`lib/validator.py`, `lib/branding.py` :
`STATUTS_SANS_PRIX`, devise USD). Modules internes : `seolib/{keywords,schemaorg,
hreflang,builder,deps}.py`.
## Non-négociables (voir CLAUDE.md racine pour la liste complète)
- Gitea only (jamais GitHub)
- ERPNext natif en priorité absolue avant tout outil externe
- Score 4Big 95+/100
- Zéro invention de chiffres — un mot-clé ne porte que les faits de sa source
- **VPS pour tous projets** — le worker n'écrit jamais sur le serveur (#8)
- Vérifier · Investiguer · Valider · Confirmer
## Livrable attendu · roadmap
Voir `04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md`. Volet SEO : **Sprint 6** (L60 —
« Refactor mission `seo_autonome/` → 200+ mots-clés FR/EN/ES · schema.org ·
hreflang »).
## Coordination inter-agents
- **Publiciste** : fournit `projets_master.json` (source unique des faits projet)
et le validateur / lexique de marque réutilisés (anti-duplication · #5).
- **Faisabilité** : porteur du contrat `projets_master.schema.json` qui structure
l'entrée.
- **Frontend Console** : destinataire du bundle `out/` — injecte balises hreflang
et JSON-LD dans les pages `www/` (VPS #8).
- **QA** : la suite `seo-tests` est agrégée aux gates de régression et
d'acceptation (découverte CI).
## Communication inter-agents
- Rapports quotidiens dans `05_deliverables_mvp/daily_reports/`
- Handoffs formalisés dans `05_deliverables_mvp/handoffs/`
- Blockers escalés à Michel Roy via WhatsApp +18296296385
## Éthique
- Sensibilité culturelle FR/EN/ES + RD
- Voix Amélie QC (multilingual_v2) pour toute interaction OTOIA
- Respect brand luxury dark+doré partout
## Ressources OTOV7 déjà en place (À RÉUTILISER, ne pas dupliquer)
Voir le fichier maître : `/opt/oto/claude_code_mandate_dtp/AGENTS_EXISTING_ASSETS.md` section correspondante à cet agent.
**Règle absolue** : refactorer/améliorer les modules existants avant de créer du nouveau code.