Skip to content

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.ts créé
  • Schéma page avec champ pageBuilder (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 defineType de Sanity
  • PageBuilder comme array avec of: [...]
  • 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.ts
    • features.ts
    • testimonials.ts
    • cta.ts
    • richText.ts
    • imageGallery.ts
  • Chaque bloc comme defineType avec type: 'object'
  • Champs spécifiques par bloc

1.2. Blocs PageBuilder2/2

Règles :

  • hero : heading, tagline, image
  • features : title, features (array)
  • testimonials : title, testimonials (array)
  • cta : heading, text, buttonText, buttonLink
  • richText : 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.astro créé
  • 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.ts avec logique de validation
  • Fichier wrangler.toml avec 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
Switch to normal mode

Contents