SPEC : Phase 0 - Prérequis du Composant 1 (Page d'accueil)
SPEC : Phase 0 - Prérequis du Composant 1 (Page d'accueil)
Documentation technique
Phase : 0 - Golden Path (Composant 1 : Page d’accueil)
Slice : Slice 1
Cycle : DOC → SPEC → CODE → TEST → INTÉG
Statut : SPEC
1. Contrats d’entrée
1.1. Schéma Sanity page avec PageBuilder1/2
Entrée : Configuration du schéma page dans Sanity Studio
Sortie attendue :
- Fichier
apps/studio/schemaTypes/page.tscréé - Schéma
pageavec champpageBuilder(array) - PageBuilder supporte 6 types de blocs : hero, features, testimonials, cta, richText, imageGallery
- Métadonnées SEO : title, description, slug
1.1. Schéma Sanity page avec PageBuilder2/2
Règles :
- Utiliser
defineTypede Sanity - PageBuilder comme
arrayavecof: [...] - Chaque bloc comme
defineArrayMember - Validation des champs (longueur, format)
1.2. Blocs PageBuilder1/2
Entrée : Configuration des blocs PageBuilder
Sortie attendue :
- Fichiers créés dans
apps/studio/schemaTypes/blocks/:hero.tsfeatures.tstestimonials.tscta.tsrichText.tsimageGallery.ts
- Chaque bloc comme
defineTypeavectype: 'object' - Champs spécifiques par bloc
1.2. Blocs PageBuilder2/2
Règles :
hero: heading, tagline, imagefeatures: title, features (array)testimonials: title, testimonials (array)cta: heading, text, buttonText, buttonLinkrichText: content (blockContent)imageGallery: title, images (array)
1.3. Layout MainLayout.astro1/2
Entrée : Layout Astro principal
Sortie attendue :
- Fichier
apps/web/src/layouts/MainLayout.astrocréé - Structure HTML5 avec Header, Footer, BaseHead
- Props pour title, description, image, canonicalURL
- Slot principal pour le contenu
1.3. Layout MainLayout.astro2/2
Règles :
- Utiliser les composants existants : Header, Footer, BaseHead
- Injection des métadonnées SEO
- Structure sémantique HTML5
1.4. Middleware Cloudflare pour preview1/2
Entrée : Worker Cloudflare indépendant
Sortie attendue :
- Dossier
services/preview-middleware/créé - Fichier
src/index.tsavec logique de validation - Fichier
wrangler.tomlavec configuration - Variables d’environnement : SANITY_PREVIEW_SECRET, SANITY_PROJECT_ID, SANITY_DATASET
1.4. Middleware Cloudflare pour preview2/2
Règles :
- Worker indépendant (conformément à l’ADR L3)
- Validation du secret de preview
- Pose du cookie
sanity-preview - Protection contre les open redirects
- Bypass du cache Edge en mode preview
2. Contrats de sortie
2.1. Schéma Sanity
Sortie : Schéma page fonctionnel dans Sanity Studio
Attendu :
- Schéma visible dans Sanity Studio
- PageBuilder fonctionnel avec 6 types de blocs
- Validation des champs
2.2. Blocs PageBuilder
Sortie : Blocs PageBuilder fonctionnels
Attendu :
- Chaque bloc visible dans le PageBuilder
- Champs spécifiques par bloc
- Validation des champs
2.3. Layout MainLayout
Sortie : Layout fonctionnel
Attendu :
- Layout utilisable dans les pages
- Métadonnées SEO injectées
- Structure HTML5 valide
2.4. Middleware Cloudflare
Sortie : Middleware fonctionnel
Attendu :
- Worker déployable
- Validation du secret fonctionnelle
- Cookie posé correctement
- Redirect fonctionnel
3. Side effects
3.1. Impact sur le Studio
Effet : Nouveaux schémas ajoutés au Studio
Impact :
- Rebuild du Studio nécessaire
- Regénération du schéma et des types Sanity
3.2. Impact sur Astro
Effet : Nouveau layout ajouté
Impact :
- Modification des pages existantes pour utiliser le nouveau layout
- Rebuild Astro nécessaire
3.3. Impact sur Cloudflare
Effet : Nouveau Worker ajouté
Impact :
- Déploiement du Worker sur Cloudflare
- Configuration des variables d’environnement
4. Erreurs et gestion
4.1. Erreurs potentielles
| Erreur | Cause probable | Solution |
|---|---|---|
| Schéma non visible | Schéma non exporté dans schemaTypes/index.ts |
Ajouter le schéma dans l’export |
| Bloc non visible | Bloc non exporté dans schemaTypes/index.ts |
Ajouter le bloc dans l’export |
| Layout non fonctionnel | Erreur d’import de composants | Vérifier les imports de composants |
| Worker non déployable | Erreur de configuration wrangler | Vérifier la configuration wrangler.toml |
4.2. Codes HTTP
Non applicable (phase de spécification)
5. Checklist de validation
Avant de passer à l’étape CODE, vérifier :
- La documentation DOC est complète
- Les contrats d’entrée/sortie sont documentés
- Les side effects sont identifiés
- Les erreurs potentielles sont documentées
- La SPEC est alignée avec les ADRs existants
6. Approbation
Validation requise : Confirmer que la SPEC des prérequis peut passer à l’étape CODE.
7. Historique des modifications
| Date | Version | Description | Auteur |
|---|---|---|---|
| 2026-09-16 | 1.0 | Création initiale | Devin |