OBOXIA — État d'étape (2026-06-24)
Point charnière. Document de référence stratégique : objectif visé → ce qui est fait → ce qui reste → découpage temporel → dépendances/blocages. (Complète handoff.md qui est l'état de reprise technique.)
1. L'objectif visé (à quoi tout ça répond)
Co-pilote de jugement SEO scalable. ⚠️ On quitte le partenaire parce que son travail est jugé INSATISFAISANT → il est un plancher à battre, pas une cible à reproduire. L'objectif : produire des recommandations SEO que Slim juge meilleures que celles du partenaire, à la chaîne, Slim gardant la main sur la décision finale.
Définition du succès (la seule qui compte au départ) : UNE recommandation, sur UN site, que Slim approuve sans la retoucher. Pas 43 sites, pas la note composite complète, pas un dashboard temps réel. Tant qu'on n'a pas ça, le reste est théorique.
Pourquoi maintenant : la chaîne de valeur est déjà à portée — données Google accessibles (service account Myobox sur GSC+GA4 de chaque client), parc de 43 sites réels, livrables partenaire connus (2 rapports lus). Le risque n'est pas technique, il est de construire un truc que Slim n'utilise pas ou de ne pas faire mieux que le partenaire.
1bis. Le barème à battre (les 4 faiblesses du partenaire → 4 différenciateurs)
Naouphel juge le partenaire insatisfaisant sur les 4 axes. Chacun mappe une couche de l'archi — c'est ce qui valide le design :
| Faiblesse partenaire |
Ce que l'agent doit faire de MIEUX |
Couche qui le porte |
| Recos génériques / pas actionnables (prose : cocon, netlinking, maillage) |
Correctifs concrets, site-spécifiques : « fais X sur la page Y », tirés de signaux mesurés |
Agent 5 — cœur du différenciateur, c'est le go/no-go |
| Résultats faibles (positions/trafic ne décollent pas) |
Note + suivi avant/après qui prouve l'impact ; à terme le dataset apprend quels correctifs bougent l'aiguille |
Note composite + suivi (dataset) |
| Trop lent / trop cher |
Automatisation : coût marginal ≈ 0, instantané sur les 43 sites |
Toute la chaîne automatisée |
| Pas de suivi / réactivité |
Surveillance continue + alertes quand une position chute (entre deux rapports) |
Agent 8 — re-validé (voir nuance) |
Nuance sur Agent 8 : le council avait déclassé le « temps réel » comme faux différenciant. La faiblesse #4 le re-valide partiellement : ce n'est pas du live seconde-par-seconde (le SEO bouge en semaines), mais une surveillance qui rattrape les chutes que le partenaire rate entre deux rapports périodiques. Différenciant réel = réactivité, pas fréquence d'affichage.
Conséquence n°1 : le différenciateur make-or-break est l'actionnabilité (faiblesse #1). Le banc d'essai / go-no-go = « l'agent sort un correctif concret là où le partenaire restait vague, et Slim le juge meilleur ».
2. Ce qu'on a fait (acquis)
| Acquis |
Preuve / fichier |
| Cadrage verrouillé (runtime Node/TS CLI, JSON, stack Vitest+Zod+tsx+pnpm) |
CLAUDE.md |
| Phase 0 GO — Slim s'engage sur l'Agent 5 |
handoff.md |
| Chiffre de cadrage : 5-6 sites/mois, douleur = SEO « faire grimper la note » |
handoff.md |
| 43 sites clients réels capturés (dont 7 à positions Google connues) |
fixtures/sites.md |
| Process multi-ville réel = plugin Obox-Multiville (existe déjà, ne pas refaire) |
fixtures/multiville-obox.md |
| Livrable partenaire = rapport de performance GSC (≠ audit technique) |
2 rapports Drive lus (Artiserv, Maison Brielle) |
| Données accessibles : service account Google Myobox sur GSC+GA4 par client |
captures Drive |
| Note Agent 5 = composite (perf + positions + technique) — « note de plusieurs noteurs » |
décision Slim |
| Council (5 advisors + 3 relectures) → recadrage endossé |
§3 ci-dessous |
Gouvernance mécanisée (hook charge CLAUDE.md à chaque message OBOXIA) |
CLAUDE.md, lessons.md |
| Script-sonde GSC écrit (spike de dérisquage) |
spikes/gsc-probe.mjs |
Recadrage du council (endossé)
- Pas « autopilot autonome » → co-pilote de jugement (automatiser reporting+mesure, garder Slim sur la décision).
- « Temps réel » déclassé (faux différenciant : GSC a 2-3 j de latence, le SEO bouge en semaines) → périodique/à la demande suffit. Différenciant = qualité de la reco.
- Séquençage A (tranche verticale), unanime — mais livrable = une reco, pas un graphe.
- Correcteur = agent séparé, en dernier, existence à confirmer (risque juridique d'écrire dans le site d'un client).
- Upside (dataset propriétaire « avant/après » sur 43 sites, SaaS revendable aux agences) = réel mais séquencé plus tard ; pour l'instant juste garder les contrats JSON propres.
- Note composite = peut-être outil interne (un garagiste ne lit pas une note 3-dim) → à trancher en montrant la 1re sortie.
3. Ce qu'on va faire (et le découpage dans le temps)
Estimations = dev solo (Naouphel + Claude). Chaque phase a un gate (preuve à obtenir avant d'avancer).
Phase 0bis — Dérisquage & validation du jugement — 🕐 ~1-2 j
Objectif : prouver que l'accès données marche ET qu'on sait reproduire le jugement, AVANT d'investir des semaines.
- Probe GSC réel :
spikes/gsc-probe.mjs sur 1 site → sort clics/impressions/positions. 🕐 ~0,5 j. Gate : un JSON GSC réel s'affiche (sinon on a trouvé le vrai risque : scopes/quotas/mapping propriété).
- Banc d'essai jugement : sur un même site, comparer la reco de l'agent à celle (passée) du partenaire → Slim juge laquelle est meilleure. Les recos partenaire = contre-exemples / plancher (jugées faibles), pas étalon à imiter. 🕐 ~0,5-1 j. Gate GO/NO-GO : si l'agent ne BAT pas le partenaire, on ne code pas la suite.
Phase 1 — Socle + tranche verticale A (perf GSC → 1 reco) — 🕐 ~1-1,5 semaine
Objectif : la définition du succès (1 reco approuvée par Slim sans retouche, sur 1 site).
- Socle commun (
core : cli-runner, contrats Zod, validate, journal, reject-queue) — 🕐 2-3 j (déjà planifié).
- Adaptateur
gsc (fake fixture + real service account) — 🕐 ~2 j.
- Dimension performance + génération de LA reco (LLM, style des rapports partenaire) — 🕐 ~2-3 j.
- Gate : Slim valide une reco sans la retoucher.
Phase 2 — Empilage dimensions → note composite — 🕐 ~1-1,5 semaine
- Positions mots-clés (GSC) — 🕐 ~1-2 j.
- Technique on-page (rulepack) — 🕐 ~3-4 j (≈ déjà dans le plan existant).
- Conception note composite 3-dim + pondération calibrée sur le réel — 🕐 ~1-2 j.
- Gate : décider note client vs interne en la montrant à un vrai client.
Phase 3 — Reporting (remplace le livrable partenaire) — 🕐 ~1 semaine
- Assemblage d'un rapport proche des 2 rapports partenaire (périodique / à la demande). Gate : Slim livre ce rapport à un client à la place du partenaire.
Phase 4 — Suivi (Agent 8) — 🕐 ~1 semaine
- Lecture continue + alertes sur chutes (positions / CWV / disponibilité).
Phase 5 — Correcteur (en dernier) — 🕐 différé, non estimé
- Applique les correctifs (écrit dans WordPress = D4, garde-fous). Pré-condition : correctifs proposés validés à la main 3-4× et avérés justes + existence confirmée.
Jalon « on remplace le rapport du partenaire » = fin Phase 3 ≈ ~3-4 semaines de dev solo effectif après le GO de Phase 0bis.
4. Dépendances & blocages
| Élément |
Type |
Impact |
Levée |
Clé ga-service-key.json (service account) |
🔴 blocage |
Probe GSC + toute la dimension perf |
Slim/Naouphel la dépose dans oboxia/.secrets/ (gitignored) ou lance le probe en ! |
| 5-10 recos passées du partenaire |
🔴 blocage |
Banc d'essai jugement (go/no-go) |
À récupérer auprès de Slim (Drive / historique) |
| pnpm non installé |
🟠 dépendance |
Build des agents (le plan l'assume) |
npm i -g pnpm avant Phase 1 |
| D4 — écriture WordPress |
🟠 dépendance |
Bloque le Correcteur (Phase 5) |
Trancher REST vs WP-CLI le moment venu |
| Note client vs interne |
🟡 décision |
Forme du livrable Phase 2/3 |
Montrer la 1re sortie à un vrai client |
| Coffre de secrets |
🟡 dette |
Clé SA + mdp WP + clés OVH en clair dans le Drive |
Chantier sécurité OBOXIA séparé |
5. Décision immédiate
Comment débloquer la Phase 0bis (le probe + le banc d'essai). Trois options :
- Tu déposes la clé dans
oboxia/.secrets/ → je lance le probe (🕐 ~2 min).
- Tu lances le probe toi-même en
! (la clé ne quitte pas ta machine) — je donne la ligne (🕐 ~2 min).
- On commence par récupérer les recos du partenaire (banc d'essai jugement) pendant que la clé arrive.