## Résumé

Passage de Covalba en **Next.js 16 (App Router, Turbopack) + WordPress headless** (WPGraphQL + ACF PRO + ACF Extended), avec parité pixel avec la version Vite d'origine. Front déployé sur Vercel (`covalba-wp.vercel.app`, auto-deploy), WordPress sur le VPS (`covalba-admin.paf-studio.dev`).

### Ce que contient la branche
- **Routing** : route catch-all `app/[...slug]/page.tsx` — une page créée dans le BO WP est visible publiquement (indexable, ISR par tags). SEO server-side (Metadata API, JSON-LD, sitemap, redirects).
- **Perf** : `next/image` via wrapper `WpImage` (AVIF/WebP, srcset, fallback `<img>` natif), `next/font`.
- **Revalidation ciblée** au « Publier » : seuls les tags de la route changée sont purgés (`page:/{uri}` / `{type}:{slug}` + `listing:*`), plus de purge globale.
- **BO block-builder** : ACF Extended (modale visuelle : recherche, catégories, vignettes) + duplicate-post (templates). **Campagne 23/23** : tous les designs bespoke distincts sont sélectionnables (cf. `docs/blocks-audit.md`).
- **WordPress core 6.8.3 → 7.0** (backup pris avant ; plugins compat, GraphQL/admin OK).
- **134 images externes HubSpot migrées dans la médiathèque WP** (47 `references.ts` + 87 `www.covalba.fr`), avec alt + nom de fichier SEO ; URLs remplacées dans le front.

## Test plan
- [x] `npm run build` vert (48/48 pages)
- [x] GraphQL 200, admin WP 200 après MAJ WordPress 7.0
- [x] Images migrées servies par WP (HTTP 200), 0 image externe restante (hors posters YouTube dynamiques)
- [x] Déploiement Vercel prod READY sur le dernier commit
- [ ] Recette visuelle page à page en prod avant merge
- [ ] Backups WP offsite + env vars Preview Vercel (reliquats)

> Détail complet de l'état, des blockers et de la structure : **`HANDOFF.md`** à la racine.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
