Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 14 additions & 8 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,16 @@ Lu automatiquement par Claude Code au démarrage d'une session dans ce dossier.

## Ce que c'est

**Dernier grand chantier** : la quatrième revue externe (7 sept. 2026), livrée
en huit PR — expériences rééquilibrées, hero à quatre chiffres, compétences
réduites et sans filtres, ordre des sections revu avec une section « Études de
cas », PDF court par défaut, quatrième étude sans chiffre. Chaque arbitrage est
dans « Décisions déjà prises » ci-dessous ; le plan de travail a été retiré une
fois terminé. `docs/` reste exclu du domaine dans `_config.yml` pour le
prochain document de travail.
**Dernier grand chantier** : la mission SEO du 24 sept. 2026 (audit de la
production), livrée en cinq PR (#71 à #75, dont un correctif du lien FR/EN) :
pages anglaises statiques sous `/en/`, pages projet statiques
sous `/projets/` et `/en/projects/`, données structurées complètes par page et
par langue, `lastmod` et `dateModified` tenus par le générateur, titres et
descriptions raccourcis, `favicon.ico`. `scripts/check-seo.mjs` vérifie le
tout et sert de test de non-régression ; les arbitrages sont dans « Décisions
déjà prises » ci-dessous. Avant elle, la quatrième revue externe (7 sept.
2026). `docs/` reste exclu du domaine dans `_config.yml` pour le prochain
document de travail.

Site CV statique bilingue (FR/EN), HTML/CSS/JS vanilla, hébergé sur GitHub
Pages avec domaine personnalisé `cv.antoine.berthaud.me`. Piloté par la
Expand Down Expand Up @@ -368,7 +371,10 @@ plein ont tous les deux été essayés et jugés trop nets avant ça.
régénérées laissait le `lastmod` figé (06/09 alors que la page avait changé
le 07/09).
Les PDF portent des métadonnées (titre, auteur, langue) posées par
`scripts/generate-pdf.js` via `pdf-lib`.
`scripts/generate-pdf.js` via `pdf-lib`. Titres ≤ 60 caractères,
descriptions ≤ 160 (Google coupe au-delà ; textes de la mission SEO du
24/09/2026 dans `PROFILE.seo` et `results.metaDescription`) ; `favicon.ico`
multi-tailles à la racine, rendu depuis `assets/favicon.svg`.
- **Site considéré fonctionnellement complet** (sept. 2026) : bilingue,
PDF, Fit-Checker IA, hero cliquable + études de cas STAR, side project
avec étude de cas, CI de génération/surveillance des PDF. Ne pas
Expand Down
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -276,11 +276,10 @@ Je l'ai déjà appliqué sur tes expériences les plus récentes (AB Tasty, Ever

## 7. Favicon et aperçu de partage (Open Graph)

- **Favicon** : icône violette avec tes initiales "AB", déjà en place (`assets/favicon.svg` + fallbacks PNG pour les navigateurs/appareils plus anciens). Rien à faire.
- **Favicon** : icône violette avec tes initiales "AB", déjà en place (`assets/favicon.svg` + fallbacks PNG pour les navigateurs/appareils plus anciens). `/favicon.ico` à la racine (16, 32 et 48 px, rendu depuis le SVG) répond aux navigateurs et robots qui le demandent directement, sans lire les balises `<link rel="icon">` — il renvoyait une 404 jusqu'en septembre 2026. Rien à faire.
- **Image de partage** (ce qui s'affiche quand tu partages le lien du CV sur LinkedIn, Slack, etc.) : déjà générée dans `assets/og-image.png` à partir de ta photo et de tes infos actuelles.
- **⚠️ À faire une fois déployé** : dans `index.html`, remplace les deux occurrences de `https://REMPLACE-PAR-TON-DOMAINE.example` (balises `og:image`, `og:url`, `twitter:image`) par ta vraie URL, ex. `https://tonpseudo.github.io/cv`. Sans ça, l'aperçu ne s'affichera pas correctement quand tu partageras le lien.
- Si tu changes significativement ton nom/rôle/photo plus tard, dis-le-moi et je régénère `og-image.png` en conséquence (c'est une image statique, pas générée dynamiquement).
- Ces balises restent toujours en français : les robots des réseaux sociaux n'exécutent pas le JavaScript, donc ils ne voient jamais la bascule EN. C'est normal et sans conséquence pour le site lui-même.
- Titres et descriptions des aperçus sont ceux de la page, dans sa langue : partager `/en/` donne un aperçu en anglais (après passage dans le Post Inspector de LinkedIn, qui garde longtemps l'ancien aperçu en cache). Longueurs : 60 caractères au plus pour un titre, 160 pour une description (Google coupe au-delà) ; `check-seo.mjs` le vérifie.

## 8. Analytics respectueux de la vie privée (GoatCounter)

Expand Down
158 changes: 0 additions & 158 deletions docs/plan-seo-2026-09.md

This file was deleted.

6 changes: 3 additions & 3 deletions en/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
scripts/generate-static.js (CI) — ne pas éditer à la main. C'est ce que
lisent les robots sans JavaScript ; app.js ne les touche plus que s'ils
diffèrent de data.js (page pas encore régénérée, signalée en console). -->
<title>Antoine Berthaud — Senior Growth Product Manager · Nantes, France</title>
<title>Antoine Berthaud · Senior Growth Product Manager, Nantes</title>
<meta name="description" content="Antoine Berthaud's CV, Senior Product Manager in Nantes: 10 years in B2B SaaS and enterprise product (AB Tasty, Everysens, SNCF). Growth, PLG, discovery, data.">

<!-- URL canonique, versions linguistiques et og:url/og:locale : le français
Expand Down Expand Up @@ -131,14 +131,14 @@
<meta property="og:type" content="profile">
<meta property="profile:first_name" content="Antoine">
<meta property="profile:last_name" content="Berthaud">
<meta property="og:title" content="Antoine Berthaud — Senior Growth Product Manager · Nantes, France">
<meta property="og:title" content="Antoine Berthaud · Senior Growth Product Manager, Nantes">
<meta property="og:description" content="Antoine Berthaud's CV, Senior Product Manager in Nantes: 10 years in B2B SaaS and enterprise product (AB Tasty, Everysens, SNCF). Growth, PLG, discovery, data.">
<meta property="og:image" content="https://cv.antoine.berthaud.me/assets/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">

<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Antoine Berthaud — Senior Growth Product Manager · Nantes, France">
<meta name="twitter:title" content="Antoine Berthaud · Senior Growth Product Manager, Nantes">
<meta name="twitter:description" content="Antoine Berthaud's CV, Senior Product Manager in Nantes: 10 years in B2B SaaS and enterprise product (AB Tasty, Everysens, SNCF). Growth, PLG, discovery, data.">
<meta name="twitter:image" content="https://cv.antoine.berthaud.me/assets/og-image.png">

Expand Down
Loading
Loading