diff --git a/docs/INDEX-AUDIT-DOCUMENTS-2026-03-02.md b/docs/INDEX-AUDIT-DOCUMENTS-2026-03-02.md index 3392f71..2d5fbf5 100644 --- a/docs/INDEX-AUDIT-DOCUMENTS-2026-03-02.md +++ b/docs/INDEX-AUDIT-DOCUMENTS-2026-03-02.md @@ -1,408 +1,33 @@ -# AUDIT DOCUMENTS INDEX — Navigation & Overview +# Audit Documents Index - Historical Map -**Generated**: 2 mars 2026 -**Total Pages**: 60+ pages audit + planning + execution -**Time to Read**: 5 min (quick) → 5 hours (comprehensive) +Updated: 2026-03-14 +Status: historical ---- +## Ce document n'est plus un point d'entree actif -## 🗺️ DOCUMENT DEPENDENCY MAP +Il correspond a une phase d'audit large ou: +- GitHub Pages etait encore traite comme surface produit +- le lab etait encore dans le perimetre public +- plusieurs variantes DA etaient encore en concurrence -``` - ┌─────────────────────────────────────┐ - │ QUICK REFERENCE (1 page) │ - │ ⭐ START HERE ← You are here │ - │ Visual snapshot of status/findings │ - │ 5-10 min read │ - └──────────┬──────────────────────────┘ - │ - ┌──────────┴──────────┐ - ▼ ▼ - ┌──────────────────────┐ ┌──────────────────────┐ - │ EXECUTION IMMÉDIATE │ │ README NAVIGATION │ - │ THIS WEEKEND │ │ (this file info) │ - │ 2 pages, 10 min │ │ 2 pages, 10 min │ - └──────────┬────────────┘ └──────────┬───────────┘ - │ │ - │ │ - ┌──────────┴──────────────────────────┴──────────┐ - │ │ - ▼ │ - ┌─────────────────────────────┐ │ - │ SPRINT PLAYBOOK │ │ - │ (Commands & checklists) │ │ - │ 8 pages, reference │ │ - │ ← Use during execution │ │ - └─────────────────────────────┘ │ - │ │ - └───────────────────────────────────────────────┤ - │ - ▼ - ┌──────────────────────────┐ - │ COMPLETE AUDIT │ - │ (40+ pages, reference) │ - │ 40+ min read │ - │ ← Deep dive whenever │ - └──────────────────────────┘ -``` +## Point d'entree actif a utiliser ---- +- `docs/README.md` -## 📚 FULL DOCUMENT LIBRARY +## Documents actifs aujourd'hui -### By Use Case +- `project-master-todos.md` +- `design-memory-2026-03-14-white-contrast.md` +- `da-01-implementation-backlog.md` +- `EXECUTION-IMMÉDIATE-2026-03-02.md` +- `SPRINT-PLAYBOOK-2026-03-02.md` +- `ovh-ftp-preview-solution-2026-03-14.md` -#### 👔 **For Decision-Makers / Project Lead** -| Document | Read | Purpose | Action | -|----------|------|---------|--------| -| [QUICK-REFERENCE](QUICK-REFERENCE-2026-03-02.md) | 10 min | Status snapshot + 3 critical actions | ✅ Start here | -| [EXECUTION-IMMÉDIATE](EXECUTION-IMMÉDIATE-2026-03-02.md) | 10 min | Business impact + effort+timeline | Plan sprints | -| [README-AUDIT](README-AUDIT-2026-03-02.md) | 10 min | Document navigation + sign-off | Approved execute | +## Role de l'archive -**Total time**: ~30 min → Decision ready +Les autres audits restent utiles pour: +- retrouver des hypotheses +- conserver des preuves de migration +- relire certains benchmarks ---- - -#### 💻 **For Development Team** -| Document | Read | Purpose | Use | -|----------|------|---------|-----| -| [QUICK-REFERENCE](QUICK-REFERENCE-2026-03-02.md) | 10 min | Understand priorities | Context | -| [EXECUTION-IMMÉDIATE](EXECUTION-IMMÉDIATE-2026-03-02.md) | 10 min | Understand this weekend plan | Sprint planning | -| [SPRINT-PLAYBOOK](SPRINT-PLAYBOOK-2026-03-02.md) | Reference | Commands, scripts, checklists | **During work** | -| [audit-plan-amelioration](audit-plan-amelioration-2026-03-02.md) | On-demand | Deep dive on specific issues | Troubleshooting | - -**Total time**: 5+ hours (reference material, not all upfront) - ---- - -#### 📊 **For Technical Audit / QA** -| Document | Read | Purpose | -|----------|------|---------| -| [audit-plan-amelioration](audit-plan-amelioration-2026-03-02.md) | 40+ min | Full audit (all domains) | -| [README-AUDIT](README-AUDIT-2026-03-02.md) | 10 min | Map of findings + references | -| [SPRINT-PLAYBOOK](SPRINT-PLAYBOOK-2026-03-02.md) | Reference | Validation checklists | - -**Focus areas**: -- Performance (LCP/CLS/INP) -- SEO (technical, canonical, schema) -- GA4/Tracking -- Accessibility (WCAG) -- Responsive (3 breakpoints) -- Build/CI quality - ---- - -## 📖 DOCUMENT DETAILS - -### 1️⃣ **QUICK-REFERENCE-2026-03-02.md** ⭐ START HERE -``` -├─ Purpose : 1-page visual snapshot + immediate actions -├─ Length : 1 page (ASCII art box format) -├─ Read time : 5-10 minutes -├─ Audience : Everyone (quick orientation) -└─ Contains - ├─ Status snapshot (health, timeline) - ├─ Critical findings (3 P0 issues) - ├─ Before/after metrics - ├─ Sprint timeline overview - ├─ Immediate action items (checklist) - ├─ Success criteria (gates) - └─ Links to all other docs -``` - -**When to read**: First thing, 5 minutes. -**How to use**: Share with team, discuss priorities. - ---- - -### 2️⃣ **EXECUTION-IMMÉDIATE-2026-03-02.md** -``` -├─ Purpose : Executive summary of 3 actions this weekend -├─ Length : 2 pages -├─ Read time : 10-15 minutes -├─ Audience : Decision-makers, sprint leads -└─ Contains - ├─ 3 critical actions (this weekend) - │ ├─ 1. Optimize images (4h) - │ ├─ 2. Fix typecheck (1h) - │ └─ 3. Validate GA4 (1h) - ├─ Impact summary (conversion metrics) - ├─ Effort estimation vs gain - ├─ Proposed timeline (Fri-Mon) - ├─ Risk mitigation - └─ Next steps (week 2) -``` - -**When to read**: Before sprint planning. -**How to use**: Get buy-in, estimate resources. - ---- - -### 3️⃣ **SPRINT-PLAYBOOK-2026-03-02.md** -``` -├─ Purpose : Hands-on execution guide (commands + steps) -├─ Length : 8 pages -├─ Read time : Reference (use while working) -├─ Audience : Developers executing sprints -└─ Contains - ├─ Sprint A (Performance, 48-72h) - │ ├─ A1: Image conversion (AVIF/WebP) with bash scripts - │ ├─ A2: HTML picture elements + srcset - │ ├─ A3: Responsive image variants (3 sizes) - │ ├─ A4: Local testing + Lighthouse - │ └─ A5: Image budget CI enhancement - ├─ Sprint B (SEO/QA, 1 week) - │ ├─ B1: typecheck fix - │ ├─ B2: GA4 Realtime validation - │ └─ B3: Deploy + verify - ├─ Sprint C (Long-term, 2 weeks) - │ ├─ C1: GSC setup + indexation monitor - │ └─ C2: Lighthouse baseline - ├─ Post-deployment checklist - ├─ Troubleshooting guide - └─ Common problems & solutions -``` - -**When to read**: Keep open while working. -**How to use**: Copy-paste commands, follow steps. - ---- - -### 4️⃣ **audit-plan-amelioration-2026-03-02.md** (COMPLETE AUDIT) -``` -├─ Purpose : Comprehensive audit (all domains) + recommendations -├─ Length : 40+ pages -├─ Read time : 40+ minutes (reference material) -├─ Audience : Technical team, long-term strategy -└─ Contains - ├─ ÉTAT ACTUEL (Current metrics snapshot) - │ ├─ 10 key metrics (before/target) - │ └─ Image size breakdown (all 15 assets) - ├─ 🔴 FINDINGS (6 issues, order sévérité) - │ ├─ P0: Performance LCP critical - │ ├─ P1: Double-hosting SEO risk - │ ├─ P1: CI fragile (typecheck) - │ ├─ P1: Image formats rigid - │ ├─ P2: JSON-LD limited - │ └─ P2: Preflight warnings - ├─ ✅ FORCES (What's working) - │ └─ 7 strengths to preserve - ├─ 📋 PLAN D'AUDIT DÉTAILLÉ (6 audit domains) - │ ├─ Audit 1: Performance (LCP/CLS/INP) - │ ├─ Audit 2: SEO technique - │ ├─ Audit 3: GA4/Tracking Realtime - │ ├─ Audit 4: Accessibilité WCAG - │ ├─ Audit 5: Responsive multi-device - │ └─ Audit 6: Build & versioning - ├─ 🚀 PLAN D'AMÉLIORATION - │ ├─ SPRINT A (48-72h) → A1 images, A2 budget, A3 build - │ ├─ SPRINT B (1 week) → B1 typecheck, B2 JSON-LD, B3 robots, B4 GSC - │ └─ SPRINT C (2 weeks) → C1 indexation, C2 CrUX, C3 A/B test, C4 KPI - ├─ 📈 ROADMAP EXÉCUTION (week-by-week timeline) - ├─ 📋 CHECKLIST QUALITÉ (by domain) - ├─ 🔄 MAINTENANCE CONTINUELLE (weekly/monthly tasks) - ├─ 📚 RESSOURCES (links) - └─ 📝 EVIDENCE ARCHIVAGE (folder structure) -``` - -**When to read**: Reference lookup (don't read cover-to-cover upfront). -**How to use**: Look up specific findings, get implementation details. - ---- - -### 5️⃣ **README-AUDIT-2026-03-02.md** (THIS NAVIGATION FILE) -``` -├─ Purpose : Navigation + overview of audit documents -├─ Length : 2 pages -├─ Read time : 10 minutes -├─ Audience : Everyone (document guide) -└─ Contains - ├─ Document dependency map (visual) - ├─ Document details (what's in each) - ├─ Quick start by role (decision-maker/dev/qa) - ├─ Findings summary + key insights - ├─ Immediate next steps - ├─ File references (what to edit) - ├─ Related documents (context) - ├─ Suggested commit message - └─ Sign-off table -``` - -**When to read**: For navigation, understanding relationships. -**How to use**: Find right document for your role. - ---- - -## 🎯 READ-BY-ROLE RECOMMENDATIONS - -### 👨‍💼 **CEO / Product Owner (15 min)** -``` -1. QUICK-REFERENCE → Status snapshot (10 min) -2. EXECUTION-IMMÉDIATE → Business impact (5 min) -→ Decision: Proceed with Sprint A? YES ✅ -``` - -### 🏗️ **Project Lead / Scrum Master (30 min)** -``` -1. QUICK-REFERENCE → Overview (10 min) -2. EXECUTION-IMMÉDIATE → Timeline & effort (10 min) -3. README-AUDIT → Document map (10 min) -→ Action: Plan sprint A for this weekend -→ Coordinate: Assign 1 dev for images, 0.5h for GA4, 1h for CI -``` - -### 👨‍💻 **Frontend Developer (2-3 hours active)** -``` -1. QUICK-REFERENCE → Context (10 min) -2. EXECUTION-IMMÉDIATE → Weekend plan (10 min) -3. SPRINT-PLAYBOOK → Keep open while coding (reference) -4. audit-plan-amelioration → Lookup specific issues (on-demand) -→ Work: Follow A1 → A2 → A3 → A4 → A5 in Sprint A -``` - -### 🔍 **QA / Tester (intermittent)** -``` -1. QUICK-REFERENCE → Success criteria (5 min) -2. SPRINT-PLAYBOOK → Validation checklists (reference) -3. audit-plan-amelioration → Audit section details (reference) -→ Verify: Each gate (1, 2, 3) passes before approving -``` - -### 📊 **Analytics / SEO Lead (1 hour)** -``` -1. audit-plan-amelioration → SEO section (Audit 2) (20 min) -2. audit-plan-amelioration → GA4 section (Audit 3) (20 min) -3. SPRINT-PLAYBOOK → B4 GSC setup (20 min) -→ Prepare: GSC property, DebugView, KPI dashboard -``` - ---- - -## 📂 FILES TO MODIFY - -Based on audit findings: - -### Code Changes Required -| File | Type | Change | Sprint | -|------|------|--------|--------| -| [index.html](../index.html) | HTML | Add elements (lines 197-208) | A1 | -| [script.js](../script.js) | JS | Update asset paths for variants | A1 | -| [tsconfig.json](../tsconfig.json) | Config | Add `exclude: ["tmp/**"]` | B1 | -| [scripts/check-image-budget.mjs](../scripts/check-image-budget.mjs) | Script | Enhance limits | A2 | -| [scripts/generate-responsive-images.sh](../scripts/generate-responsive-images.sh) | Script | Create new (image resize) | A3 | - -### Assets to Optimize -| Asset | Current | Target | Format | Sprint | -|-------|---------|--------|--------|--------| -| hero-pcb-routing-map.png | 3.1 MB | 160 KB | AVIF | A1 | -| proof-prototype-bench.png | 2.3 MB | 140 KB | AVIF | A1 | -| *-1440.avif (new) | — | 180 KB | Responsive | A3 | -| *-768.avif (new) | — | 100 KB | Responsive | A3 | -| *-390.avif (new) | — | 80 KB | Responsive | A3 | - -### New Directories -``` -public/assets/da/openai/optimized/ # Converted images -artifacts/audit-2026-03-02/ # Evidence archiving - ├─ perf/ - ├─ seo/ - ├─ tracking/ - ├─ a11y/ - └─ responsive/ -``` - ---- - -## ✅ QUICK START SCRIPT - -Copy-paste to get started: - -```bash -#!/bin/bash -# Setup audit documentation - -cd /Users/cils/Documents/Lelectron_rare/electron-rare.github.io - -# 1. Read quick reference (mandatory) -open docs/QUICK-REFERENCE-2026-03-02.md - -# 2. Read execution plan (mandatory) -open docs/EXECUTION-IMMÉDIATE-2026-03-02.md - -# 3. Keep playbook ready (reference during work) -open docs/SPRINT-PLAYBOOK-2026-03-02.md - -# 4. Install tools -brew install imagemagick libwebp - -# 5. Create optimization directory -mkdir -p public/assets/da/openai/optimized -mkdir -p artifacts/audit-2026-03-02/perf seo tracking a11y responsive - -# 6. Ready to start Sprint A! -echo "✅ Audit documents ready. See QUICK-REFERENCE for next steps." -``` - ---- - -## 🔗 RELATED DOCUMENTS (CONTEXT) - -**Project Context**: -- [project-master-todos.md](project-master-todos.md) — Overall roadmap -- [creative-direction-brief.md](../notes-interne/creative-direction-brief.md) — Design -- [acquisition-seo-plan.md](acquisition-seo-plan.md) — GA4 strategy - -**Technical Reference**: -- [site-github-pages-architecture.md](../architecture/site-github-pages-architecture.md) — Setup -- [da-progress-log-2026-03-02.md](da-progress-log-2026-03-02.md) — Latest progress - ---- - -## 📝 SAMPLE COMMIT MESSAGE - -When pushing audit documents: - -``` -docs: add comprehensive audit & improvement plan (2026-03-02) - -✅ Added audit documentation set: -- QUICK-REFERENCE (1-page visual snapshot) -- EXECUTION-IMMÉDIATE (3 critical actions this weekend) -- SPRINT-PLAYBOOK (8 pages, commands + checklists) -- audit-plan-amelioration (40+ page complete audit) -- README-AUDIT (navigation guide) - -🎯 Key findings: -- P0: Hero LCP critical (6.4 MB images → target <700ms AVIF) -- P1: Build typecheck broken (fix: exclude tmp/ from tsconfig) -- P1: GA4 needs Realtime validation (DebugView test) - -📈 Expected outcomes: -- Sprint A (48-72h): +35-45% conversion improvement -- Sprint B (1 week): All CI passing, SEO ready -- Sprint C (2 weeks): Production data baseline - -🚀 Ready for execution -Start: docs/QUICK-REFERENCE-2026-03-02.md - -Refs: -#electron-rare #audit #performance #seo #ga4 -``` - ---- - -## 👋 FINAL NOTES - -- **All documents ready to execute** ✅ -- **No additional planning needed** -- **Effort clearly scoped** (10h+ across 3 sprints) -- **Success criteria defined** (3 gates) -- **Evidence archiving prepared** - -**Next step**: Read QUICK-REFERENCE, decide Sprint A timeline, start work. - ---- - -**Last updated**: 2 mars 2026, 20h15 UTC -**Status**: Ready for sprint execution -**Maintainer**: Audit documentation team +Mais ils ne doivent plus etre pris comme consignes d'execution produit. diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..a64cd36 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,68 @@ +# Docs README - Source de vérité + +Updated: 2026-03-14 +Status: active +Repo: `/home/zacus/electron-rare-preview-ovh` + +## Etat réel du projet + +- Site Astro publie sur OVH via GitHub Actions FTP +- Preview publique: `https://www.lelectronrare.fr/preview/` +- Production publique: `https://www.lelectronrare.fr/` +- Surface publique active: `/`, `/formation/`, `/mentions-legales/`, `robots.txt`, `sitemap.xml` +- Le lab n'est plus une surface publique produit +- Positionnement actif: + - systemes electroniques specifiques + - familles visibles: electronique, automatisme, energie, stockage, optimisation + - l'embarque reste une competence, pas le titre principal + - les projets multi-techniques s'appuient sur les partenaires adaptes + +## Lire dans cet ordre + +1. `project-master-todos.md` +2. `design-memory-2026-03-14-white-contrast.md` +3. `da-01-implementation-backlog.md` +4. `EXECUTION-IMMÉDIATE-2026-03-02.md` +5. `SPRINT-PLAYBOOK-2026-03-02.md` +6. `ovh-ftp-preview-solution-2026-03-14.md` + +## Docs actives + +- `project-master-todos.md` + - backlog court terme, priorites, etat reel +- `design-memory-2026-03-14-white-contrast.md` + - memoire DA et positionnement actif +- `da-01-implementation-backlog.md` + - backlog de consolidation design / UX / contenu +- `EXECUTION-IMMÉDIATE-2026-03-02.md` + - resume executif et ordre de sortie +- `SPRINT-PLAYBOOK-2026-03-02.md` + - commandes et checks operatoires +- `ovh-ftp-preview-solution-2026-03-14.md` + - runbook de deploy OVH FTP via GitHub Actions +- `migration-legacy-to-astro.md` + - regle de non-retour vers le legacy + +## Docs historiques a ne plus traiter comme source de vérité + +- `github-pages-deploy.md` +- `deploy-runbook-gh-ovh-2026-03-02.md` +- `acquisition-seo-plan.md` +- `INDEX-AUDIT-DOCUMENTS-2026-03-02.md` +- `README-AUDIT-2026-03-02.md` +- `QUICK-REFERENCE-2026-03-02.md` +- `dual-deployment-execution-plan.md` +- `implementation-plan-dual-hosting-2026-03-02.md` +- `da-progress-log-2026-03-02.md` + +Ces documents restent utiles comme archive de contexte, mais ils ont ete ecrits a un moment ou: +- GitHub Pages etait encore traite comme prod active +- le lab etait encore public +- le positionnement etait plus etroit ou plus experimental + +## Regles de mise à jour + +- Toute nouvelle decision produit ou deploiement doit d'abord mettre a jour `project-master-todos.md` +- Toute decision de positionnement, DA ou surface publique doit mettre a jour `design-memory-2026-03-14-white-contrast.md` +- Toute instruction operatoire doit etre recalee dans `SPRINT-PLAYBOOK-2026-03-02.md` +- Toute doc qui devient trompeuse doit etre soit mise a jour, soit marquee comme historique diff --git a/docs/SPRINT-PLAYBOOK-2026-03-02.md b/docs/SPRINT-PLAYBOOK-2026-03-02.md index ffd0409..07765be 100644 --- a/docs/SPRINT-PLAYBOOK-2026-03-02.md +++ b/docs/SPRINT-PLAYBOOK-2026-03-02.md @@ -2,6 +2,24 @@ Updated: 2026-03-14 Repo: `/home/zacus/electron-rare-preview-ovh` +Status: active + +## Source de vérité + +- index docs: `docs/README.md` +- pilotage: `docs/project-master-todos.md` +- memoire DA: `docs/design-memory-2026-03-14-white-contrast.md` +- deploy: `docs/ovh-ftp-preview-solution-2026-03-14.md` + +## Etat de référence + +- preview active: `https://www.lelectronrare.fr/preview/` +- production active: `https://www.lelectronrare.fr/` +- pages publiques: `/`, `/formation/`, `/mentions-legales/` +- `lab` non public: attendu en `404` sur `/preview/lab/` et `/lab/` +- positionnement actif: + - systemes electroniques specifiques + - electronique, automatisme, energie, stockage, optimisation ## Sprint A - Theme clair @@ -28,6 +46,7 @@ PUBLIC_SITE_URL=https://www.lelectronrare.fr/preview/ npm run build:external - pas de `Mode contraste` - pas de retour a l'ancienne DA sombre - pas d'ancre legacy `#projets` +- pas de route publique `/lab/` - focus visible sur FAQ et formulaire - top bar mobile compacte, sans wrap sur plusieurs lignes au chargement - CTA `Contact` visible hors menu sur mobile @@ -52,11 +71,13 @@ PUBLIC_SITE_URL=https://www.lelectronrare.fr/preview/ npm run build:external curl -fsSI -A 'electron-rare-gh-verify/1.0' https://www.lelectronrare.fr/preview/ curl -fsSI -A 'electron-rare-gh-verify/1.0' https://www.lelectronrare.fr/preview/formation/ curl -fsSI -A 'electron-rare-gh-verify/1.0' https://www.lelectronrare.fr/preview/mentions-legales/ +curl -fsSI -A 'electron-rare-gh-verify/1.0' https://www.lelectronrare.fr/preview/lab/ ``` ### B4 - Etat courant - white-contrast preview valide: `23094884980` - top bar mobile preview validee publiquement: `23095540371` +- preview repositionne electronique/automatisme/energie et purge du lab public: `23098262445` ## Sprint C - Production @@ -77,12 +98,14 @@ curl -fsSI -A 'electron-rare-gh-verify/1.0' https://www.lelectronrare.fr/preview curl -fsSI -A 'electron-rare-gh-verify/1.0' https://www.lelectronrare.fr/ curl -fsSI -A 'electron-rare-gh-verify/1.0' https://www.lelectronrare.fr/formation/ curl -fsSI -A 'electron-rare-gh-verify/1.0' https://www.lelectronrare.fr/mentions-legales/ +curl -fsSI -A 'electron-rare-gh-verify/1.0' https://www.lelectronrare.fr/lab/ curl -fsSI -A 'electron-rare-gh-verify/1.0' https://www.lelectronrare.fr/robots.txt curl -fsSI -A 'electron-rare-gh-verify/1.0' https://www.lelectronrare.fr/sitemap.xml ``` ### C4 - Etat courant - production republiee avec le lot `Modernize Electron Rare mobile header`: `23096174775` +- production repositionnee electronique/automatisme/energie et purge du lab public: `23098335508` - verification publique du workflow: OK - verification locale `curl` avec `User-Agent` workflow: `200` sur `www`, `formation`, `mentions-legales` - controle navigateur humain encore requis pour la validation UX finale @@ -94,7 +117,6 @@ curl -fsSI -A 'electron-rare-gh-verify/1.0' https://www.lelectronrare.fr/sitemap - `outbound_linkedin_contact` - `outbound_email_contact` - `outbound_github_contact` -- `cta_lab_interactif_open` - `experiment_variant_exposed` - `engagement_scroll_depth` - `engagement_section_view` @@ -107,6 +129,13 @@ curl -fsSI -A 'electron-rare-gh-verify/1.0' https://www.lelectronrare.fr/sitemap - OG/Twitter - `theme-color` +## Prochaines validations manuelles + +- rendu visuel white-contrast sur home, formation, mentions +- ancres: `#a-propos`, `#graphic-sprints-title`, `#faq`, `#contact` +- header mobile en 390px et 768px +- absence de retour cache vers une ancienne homepage + ## Definition de done - preview publie et valide - prod publiee et validee diff --git a/docs/acquisition-seo-plan.md b/docs/acquisition-seo-plan.md index 41fc599..ada48b7 100644 --- a/docs/acquisition-seo-plan.md +++ b/docs/acquisition-seo-plan.md @@ -1,104 +1,79 @@ -# Plan d'avancement Acquisition/SEO (7 jours + 30 jours) +# Plan Acquisition / SEO - Etat courant -Date de mise à jour: 2026-03-02 -Perimetre: site statique GitHub Pages (`index.html`, `styles.css`, `script.js`) + module interactif `/lab/` (Vite + React Router hash) -Référence priorités globale: `docs/project-master-todos.md` +Updated: 2026-03-14 +Status: active +Reference prioritaire: `docs/project-master-todos.md` -## Objectif -Transformer le site en base d'acquisition mesurable, sans backend, avec une home legere et un module interactif isole. +## Perimetre reel -## Avancement immédiat (P0/P1) +- site Astro sur OVH +- preview publique sous `/preview/` +- production publique a la racine +- pages publiques actives: + - `/` + - `/formation/` + - `/mentions-legales/` + - `robots.txt` + - `sitemap.xml` +- `lab` non public -### P0 (immédiat) -- [x] URL canonique fixée (`https://electron-rare.github.io/`) -- [x] `robots.txt` à la racine -- [x] `sitemap.xml` à la racine -- [x] `sitemap.xml` inclut `/` + `/lab/` -- [x] Contrat d'événements tracking implémenté (`data-track` + `dataLayer` enrichi) -- [x] Remplacer `GTM-REPLACE_ME` par l'ID GTM réel (`GTM-5SLM67QF`) -- [ ] Valider événements en GA4 Realtime +## Positionnement SEO a servir -### P1 (cette semaine) -- [x] `og:image` + `twitter:image` ajoutés -- [x] Asset social `assets/og-cover.jpg` créé (1200x630) -- [x] Copy contact orientée booking/collaboration + éléments de confiance -- [x] Ajustement responsive <=390px -- [x] Passe responsive complete 390/768/1024/1440 (home + lab) -- [x] Exécuter audit Lighthouse mobile/desktop et archiver résultats -- [x] Storybook build coverage P2 execute -- [ ] Vérifier aperçus sociaux en production (LinkedIn/Facebook debugger) +- systemes electroniques specifiques +- electronique +- automatisme +- energie +- stockage +- optimisation +- instrumentation +- projets multi-techniques avec partenaires -### P2 (mois) -- [ ] Expériences CTA (texte/ordre LinkedIn/Malt) -- [ ] Revue snippets SEO par itération -- [ ] Dashboard acquisition hebdo (GA4) +## Etat acquis -## Plan 7 jours (exécution) +- canonical production sur `https://www.lelectronrare.fr/` +- preview en `noindex,nofollow,noarchive` +- sitemap public sans `/lab/` +- metadata OG/Twitter recalees sur le positionnement actuel +- tracking nettoye sur les events actifs -### Jour 1 — Baseline -- Faire un snapshot Lighthouse mobile/desktop. -- Documenter baseline (SEO, accessibilité, perf, conversion). +## Events actifs a verifier en GA4 -### Jour 2 — SEO technique -- Vérifier indexabilité (`robots`, `sitemap`, canonical, OG/Twitter). -- Contrôler cohérence des URLs (absolues pour SEO social). - -### Jour 3 — Instrumentation GA4/GTM -- Brancher GTM réel. -- Publier conteneur. -- Vérifier événements critiques. - -### Jour 4 — Conversion UX -- Ajuster wording CTA si besoin. -- Vérifier priorité LinkedIn (primaire) / Malt (secondaire). - -### Jour 5 — Performance/A11y -- Corriger points Lighthouse restants. -- Vérifier navigation clavier et focus visibles. - -### Jour 6 — QA déploiement -- Vérifier production live. -- Contrôler métriques Realtime GA4. - -### Jour 7 — Stabilisation -- Corriger résiduels P1. -- Mettre à jour evidence + artifacts. - -## Roadmap 30 jours - -### Semaine 2 -- Renforcer contenu SEO par section. -- Ajouter pages projets supplémentaires (si besoin). - -### Semaine 3 -- Tests A/B CTA (copy + ordre des liens contact). -- Analyse CTR par emplacement. - -### Semaine 4 -- Consolidation dashboard GA4. -- Revue Search Console et plan éditorial suivant. - -## Contrat tracking (source de vérité) - -Événements: -- `cta_hero_projets` - `cta_hero_contact` -- `cta_hero_profile` - `outbound_linkedin_contact` -- `outbound_malt_contact` -- `outbound_bandcamp_contact` +- `outbound_email_contact` - `outbound_github_contact` -- `outbound_github_project_rtc_bl_phone` -- `outbound_github_project_zacus` -- `outbound_github_project_site` -- `outbound_github_lab_more` -- `cta_lab_interactif_open` +- `outbound_github_project_audio_battery` +- `experiment_variant_exposed` +- `engagement_scroll_depth` +- `engagement_section_view` +- `cwv_metric` -Compat legacy: -- `outbound_github_project` -- `outbound_github_contact` +## Priorites restantes -Paramètres: -- `event_category=engagement` -- `event_label=` -- `destination=` +### P0 +- verifier GA4 Realtime et DebugView sur la prod actuelle +- verifier OG/Twitter avec les outils de debug LinkedIn/Facebook +- verifier Search Console sur la prod actuelle + +### P1 +- renforcer les exemples concrets sur home et formation pour mieux porter les familles: + - electronique + - automatisme + - energie + - stockage + - optimisation +- produire une page ou bloc de preuve plus net sur les partenaires multi-techniques + +### P2 +- mesurer LCP et budget media sur la variante blanche publique +- consolider un suivi SEO simple: + - impressions + - clics + - CTR + - pages les plus vues + +## Regles + +- ne plus mesurer ni documenter `/lab/` comme URL SEO publique +- ne plus documenter de flux GitHub Pages comme prod active +- toute evolution SEO doit rester alignee sur `docs/design-memory-2026-03-14-white-contrast.md` diff --git a/docs/da-01-implementation-backlog.md b/docs/da-01-implementation-backlog.md index 8aaa87a..e711278 100644 --- a/docs/da-01-implementation-backlog.md +++ b/docs/da-01-implementation-backlog.md @@ -110,6 +110,7 @@ Consolider la DA actuelle en version claire, contraste blanc, sans reintroduire ## Backlog P1 - [ ] Supprimer les references documentaires a `#projets`, Malt, GitHub Pages static prod, dual-rail hero, contrast toggle. - [x] Supprimer les references documentaires actives a `/lab/` comme surface publique produit. +- [x] Poser un index documentaire actif (`docs/README.md`) pour separer docs actives et docs historiques. - [ ] Verifier les events `data-track` sur les CTA actifs uniquement. - [x] Recaler `tracking:check` sur le contrat Astro actif pour sortir des faux positifs legacy. - [x] Valider preview OVH. diff --git a/docs/deploy-runbook-gh-ovh-2026-03-02.md b/docs/deploy-runbook-gh-ovh-2026-03-02.md index c934099..f2d4fc2 100644 --- a/docs/deploy-runbook-gh-ovh-2026-03-02.md +++ b/docs/deploy-runbook-gh-ovh-2026-03-02.md @@ -1,45 +1,27 @@ -# Deploy Runbook — GH Pages + OVH SFTP (Home Carnet labo) +# Deploy Runbook - Historical Snapshot -Date: 2026-03-02 +Updated: 2026-03-14 +Status: historical / replaced -## Préflight -1. `npm run tracking:check` -2. `npm run build` -3. `npm run build:external` (inclut `/lab/`) +## Pourquoi ce fichier reste -## GH Pages -1. Vérifier branche de publication (repo settings Pages). -2. Pousser le commit de release. -3. Attendre pipeline GitHub Actions Pages. -4. Smoke test: -- `/` -- `/#a-propos` -- `/#projets` -- `/#contact` -- `/lab/` +Il documentait un ancien flux transitoire melangeant: +- GitHub Pages +- OVH +- references au `lab` +- anciennes ancres et anciennes hypotheses produit -## OVH mutualisé (SFTP) -1. Configurer secrets hors repo: -- `OVH_SFTP_HOST` -- `OVH_SFTP_USER` -- `OVH_SFTP_PORT` (défaut 22) -- `OVH_SFTP_PATH` -- mot de passe via prompt sécurisé -2. Déploiement: -- `npm run deploy:web:sftp` -3. Smoke test domaine OVH: -- home -- ancres -- assets hero -- `/lab/` +## Remplacement actif -## Checklist post-release -1. Aucun 404 sur assets `public/assets/da/openai/*` -2. CTA tracks présents (`data-track-event`) -3. Aucun overflow horizontal mobile -4. Contraste CTA conforme en mode normal + contraste +Utiliser maintenant: +- `docs/ovh-ftp-preview-solution-2026-03-14.md` +- `docs/SPRINT-PLAYBOOK-2026-03-02.md` +- `docs/project-master-todos.md` -## Rollback rapide -1. Re-déployer le dernier `dist` stable. -2. Revenir au commit précédent et repush. -3. Purger cache CDN/hébergement si nécessaire. +## Etat courant a retenir + +- deploy preview: GitHub Actions `deploy-ovh-ftp.yml` avec `target=preview` +- deploy production: GitHub Actions `deploy-ovh-ftp.yml` avec `target=production` +- verification publique via `scripts/verify-public-target.mjs` +- `lab` non public +- source active du produit: `src/` Astro diff --git a/docs/github-pages-deploy.md b/docs/github-pages-deploy.md index 47c1d69..15a1502 100644 --- a/docs/github-pages-deploy.md +++ b/docs/github-pages-deploy.md @@ -1,165 +1,36 @@ -# Deploiement GitHub Pages (site statique + module Lab interactif) +# GitHub Pages Deploy - Historical Note -## Prerequis -- Depot Git connecte a GitHub (`git remote -v` non vide). -- Dependances installees: - - `npm install` - - `npm --prefix apps/lab-interactif install` -- Build module lab OK (`npm run lab:build`). -- Workflow present: `.github/workflows/deploy-pages.yml`. -- Fichiers de publication racine presents: - - `index.html`, `styles.css`, `script.js` - - `assets/` (dont `assets/og-cover.jpg` + `assets/brand/*`) - - `robots.txt`, `sitemap.xml` - - favicons (`favicon*`, `apple-touch-icon.png`) +Updated: 2026-03-14 +Status: historical / do not use as active runbook -## Configuration GitHub Pages -1. GitHub > depot > **Settings** > **Pages**. -2. Dans **Build and deployment**: - - **Source**: `GitHub Actions` -3. Enregistrer. +## Ce document n'est plus la source de vérité -## Pipeline deploiement -Workflow: **Deploy Static Site + Lab to GitHub Pages** +Le projet n'est plus pilote comme: +- un site GitHub Pages en production +- un site public avec module `lab` expose -Le job build: -1. installe les deps racine -2. installe les deps du module `apps/lab-interactif` -3. build le module interactif dans `lab/` -4. prepare un artifact `.pages-dist/` (site + assets + lab) -5. deploye via `actions/deploy-pages` +La production active est maintenant: +- site Astro +- heberge sur OVH +- deploye via GitHub Actions FTP +- preview publique sous `/preview/` +- production publique a la racine -## Commandes locales utiles -- Home statique: `python3 -m http.server 4173` -- Lab dev: `npm run lab:dev` -- Lab build: `npm run lab:build` -- Tracking contract: `npm run tracking:check` -- Budget images critiques: `npm run image:budget` -- Storybook build: `npm run storybook:build` -- Preflight complet pages: `npm run preflight:pages` -- Build externe Astro (avec `/lab` inclus): `npm run build:external` +## Docs a utiliser a la place -## Déploiement externe Astro (Vercel/Netlify) +- `docs/README.md` +- `docs/project-master-todos.md` +- `docs/SPRINT-PLAYBOOK-2026-03-02.md` +- `docs/ovh-ftp-preview-solution-2026-03-14.md` -Objectif: publier `dist/` généré par Astro pour une version hors GitHub Pages. +## Rappel historique -- Préparer les variables d’environnement: - - `PUBLIC_SITE_URL=https:///` (canonical + OG) - - éventuellement `EXTERNAL_SITE_URL` comme alias pratique -- Note: `npm run build:external` échoue volontairement si aucune de ces variables n'est définie (protection anti-canonical erroné). -- Exécuter: `npm run build:external` -- GitLab/Netlify et Vercel détectent automatiquement `vercel.json` / `netlify.toml` : - - `vercel`: `npm run build:external` - - `netlify`: `npm run build:external` -- Le build externe inclut: - - page Astro Home: `dist/index.html` - - page `dist/robots.txt` et `dist/sitemap.xml` (générés selon `PUBLIC_SITE_URL`) - - bundle Astro `_astro/` - - `dist/lab/` (copié après `lab:build`) si `lab/` existe +Cette note existe pour conserver la trace du passage: +- d'un modele GitHub Pages / static root +- vers un modele Astro + OVH FTP -## Notes de contrôle pour version externe -- Vérifier `https:///` après déploiement. -- Vérifier les ancres `/` : `#a-propos`, `#projets`, `#contact`. -- Vérifier que `canonical` correspond bien à `PUBLIC_SITE_URL`. -- Vérifier OG/Twitter preview via cache buster si nécessaire. -- Vérifier la présence de `/lab/` selon la stratégie produit. +Le `lab` reste un artefact de developpement interne, mais n'est plus une surface publique produit. -## Déploiement externe FTP (OVH) +## Regle -Hôte cible: `ftp://ecobsoleiq@ftp.cluster129.hosting.ovh.net:21/` -Utilisateur: `ecobsoleiq` - -1. Build externe: - - `PUBLIC_SITE_URL=https:/// npm run build:external` -2. Préparer les identifiants (hors repo): - - Copier `.env.ftp.example` vers `.env.ftp` - - Remplacer `FTP_PASS=...` par le vrai mot de passe - - Garder `FTP_REMOTE_DIR=/www` en FTP - - Ne pas réutiliser ici le chemin absolu SFTP ` /home/ecobsoleiq/www ` - - `source .env.ftp` (ou exporter `FTP_PASS` / `FTP_HOST` en variable d'env) -3. Déploiement via script: - - `FTP_PASS='' FTP_REMOTE_DIR='/www' npm run deploy:ftp` - - ou, via fichier local: `source .env.ftp && npm run deploy:ftp` - - version one-shot avec build externe: `npm run deploy:web:ftp` -3. Vérifier: - - `https:///` - - `https:///#a-propos` - - `https:///#projets` - - `https:///#contact` - -Notes: -- Le script utilise `lftp`; installe-le si absent: `brew install lftp` ou `apt-get install lftp`. -- Le script refuse de synchroniser vers `/` par sécurité (utiliser `/www`). -- Sur cet hébergement OVH, le chroot FTP fait que le docroot public se référence en FTP comme `/www`, alors qu'en SFTP il apparaît comme `/home/ecobsoleiq/www`. -- Mélanger les deux crée un faux arbre du type `/home/ecobsoleiq/home/ecobsoleiq/www/...`, hors docroot web. -- Si ton host pointe vers un sous-répertoire, ajuste `FTP_REMOTE_DIR` à partir de la racine FTP (ex: `/www/preview`). -- Aucune donnée sensible n’est hardcodée dans le script (mot de passe via `FTP_PASS` uniquement). - -Exemple 1-liner (via fichier local `.env.ftp`): - -```bash -PUBLIC_SITE_URL='https://example.com/' \ -FTP_URL='ftp://ecobsoleiq@ftp.cluster129.hosting.ovh.net:21/' \ -npm run build:external && source .env.ftp && npm run deploy:ftp -``` - -Exemple 1-liner (sans `.env.ftp`): -```bash -FTP_PASS='***' \ -PUBLIC_SITE_URL='https://example.com/' \ -FTP_HOST=ftp.cluster129.hosting.ovh.net \ -FTP_USER=ecobsoleiq \ -npm run build:external && npm run deploy:ftp -``` - -## Stratégie de déploiement duale (si besoin business) -- Production: GitHub Pages reste la version publiée courante (`index.html`, `styles.css`, `script.js`, `/lab/`). -- Complément: version web hors GitHub possible via build Astro dédié (`npm run build:external`), puis publication sur hôte dédié (Netlify/Vercel/custom). -- Contrat immuable: ancres `#a-propos`, `#projets`, `#contact`, labels CTA, et paramètres GA4 conservés entre versions. - -## Contrat tracking GTM + GA4 - -### Container -- GTM: `GTM-5SLM67QF` - -### Evenements principaux -- `cta_hero_projets` -- `cta_hero_contact` -- `cta_hero_profile` -- `outbound_linkedin_contact` -- `outbound_malt_contact` -- `outbound_bandcamp_contact` -- `outbound_github_contact` - -### Evenements GitHub dedies -- `outbound_github_project_rtc_bl_phone` -- `outbound_github_project_zacus` -- `outbound_github_project_site` -- `outbound_github_lab_more` -- `cta_lab_interactif_open` - -### Compat historique -- Les liens GitHub critiques conservent `data-track-legacy` pour pousser aussi les evenements legacy. - -### Parametres obligatoires -- `event_category=engagement` -- `event_label=` -- `destination=` - -## Verification post-deploiement -- [ ] `https://electron-rare.github.io/` charge correctement -- [ ] `https://electron-rare.github.io/lab/` charge correctement -- [ ] Ancres core home (`#a-propos`, `#projets`, `#contact`) OK -- [ ] `robots.txt` accessible -- [ ] `sitemap.xml` accessible (inclut `/` + `/lab/`) -- [ ] OG/Twitter preview OK -- [ ] GA4 Realtime voit les events clics -- [ ] GA4 DebugView confirme `event_label` + `destination` -- [ ] Search Console: sitemap soumis + indexation `/` et `/lab/` - -## Notes de routage module C -- Le module lab utilise `HashRouter` pour compatibilite hebergement statique (GitHub Pages). -- Routes attendues: - - `/lab/` (overview) - - `/lab/#/signals` - - `/lab/#/prototypes` +Ne pas relancer de workflow ni de runbook GitHub Pages depuis ce document. diff --git a/docs/migration-legacy-to-astro.md b/docs/migration-legacy-to-astro.md index 0298b14..0d347b0 100644 --- a/docs/migration-legacy-to-astro.md +++ b/docs/migration-legacy-to-astro.md @@ -1,14 +1,15 @@ # Migration Legacy -> Astro (Source of Truth) Date: 2026-03-01 -Status: Legacy **deprecated** +Status: active memo for no-return rule ## Décision Le socle legacy HTML/CSS root est figé et archivé. La source de vérité active est désormais: - contenu/page: `src/pages/index.astro` -- styles: `src/styles/global.css` -- SEO publics: `public/robots.txt`, `public/sitemap.xml`, `public/assets/og-cover.jpg` -- build/deploy: `dist/` via GitHub Actions +- styles: `src/styles/global.css`, `src/styles/home-workbench.css` +- SEO publics: `src/lib/site.ts`, `src/pages/robots.txt.ts`, `src/pages/sitemap.xml.ts`, `public/assets/og-cover.jpg` +- build/deploy: `dist/` via GitHub Actions FTP sur OVH +- pilotage documentaire: `docs/README.md`, `docs/project-master-todos.md` ## Archive legacy Snapshot créé dans: @@ -21,3 +22,5 @@ Snapshot créé dans: ## Règle no-drift - Ne pas réactiver le legacy pour les changements produit. - Toute évolution UI/SEO doit passer par Astro (`src/` + `public/`). +- Ne pas reintroduire GitHub Pages comme prod active dans les docs. +- Ne pas reexposer `lab` comme surface publique sans decision produit explicite. diff --git a/docs/project-master-todos.md b/docs/project-master-todos.md index 1ef8f64..eef34c7 100644 --- a/docs/project-master-todos.md +++ b/docs/project-master-todos.md @@ -1,7 +1,7 @@ # Master TODO - Electron Rare OVH/Astro Updated: 2026-03-14 -Source of truth: this file for execution priorities, plus the current code in `src/` +Source of truth: this file for execution priorities, plus [docs/README.md](./README.md) and the current code in `src/` ## Scope actif - Site Astro publie sur OVH via GitHub Actions FTP. @@ -12,6 +12,7 @@ Source of truth: this file for execution priorities, plus the current code in `s - Surface a maintenir: Hero, Approche, Cas concrets, photo strip, video strip, Missions, FAQ, Contact, footer. ## Verites de reference +- Point d'entree documentaire: `docs/README.md` - Structure de page: `src/pages/index.astro` - Header partage: `src/components/SiteHeader.astro` - Sections actives: `src/components/sections/Hero.tsx`, `About.tsx`, `CaseStudies.tsx`, `GraphicSprints.tsx`, `Faq.astro`, `Contact.astro` @@ -38,6 +39,8 @@ Source of truth: this file for execution priorities, plus the current code in `s - [x] Preview OVH republie avec le positionnement `electronique · automatisme · energie · stockage · optimisation` (`23098262445`). - [x] Production OVH republiee avec le meme positionnement (`23098335508`). - [x] `https://www.lelectronrare.fr/lab/` et `https://www.lelectronrare.fr/preview/lab/` repondent maintenant `404`. +- [x] `docs/README.md` cree comme point d'entree et source de verite documentaire. +- [x] Runbooks et plans legacy les plus confus recales en mode historique ou remplaces par des versions actives. - [ ] White-contrast pass verifiee visuellement sur preview. - [ ] White-contrast pass verifiee visuellement sur production. - [ ] Confirmer visuellement depuis un navigateur humain que `www` sert bien la nouvelle home sur tous les points d'acces. @@ -77,7 +80,8 @@ Source of truth: this file for execution priorities, plus the current code in `s ## P3 - Nettoyage et consolidation - [x] Supprimer les blocs CSS morts `.site-contrast-toggle` encore presents dans `src/styles/global.css`. -- [ ] Nettoyer les docs qui parlent encore de GitHub Pages static root, `#projets`, Malt, ou du toggle contraste. +- [x] Mettre en place un point d'entree documentaire actif et reclasser les runbooks les plus critiques. +- [ ] Nettoyer le reste des archives qui parlent encore de GitHub Pages static root, `#projets`, Malt, ou du toggle contraste. - [ ] Mesurer LCP et budget media de la variante blanche en conditions reelles. - [ ] Archiver les plans anterieurs devenus purement historiques.