Aller au contenu

PD-229 — Acceptabilité


📚 Navigation User Story | Document | | | ---------- | -- | | 📋 [Spécification](PD-229-specification.md) | | | 🛠️ [Plan d'implémentation](PD-229-plan.md) | | | ✅ **Critères d'acceptation** | *(ce document)* | | 📝 [Retour d'expérience](PD-229-rex.md) | | [← Retour à site-vitrine](../PD-225-epic.md) · [↑ Index User Story](index.md)

Objectif

Vérifier que l’implémentation est conforme à la spécification, respecte l’ensemble des invariants ProbatioVault et ne présente aucune incohérence ou oubli critique.


Périmètre de vérification

La revue d’acceptabilité vérifie explicitement :

  • la conformité stricte à la spécification fonctionnelle
  • le respect de tous les invariants applicables
  • la couverture des scénarios de test définis
  • l’absence d’incohérences, oublis ou régressions

Écarts identifiés

Classification des écarts

Niveau Définition
BLOQUANT Violation d’un invariant, faille de sécurité, non-conformité majeure à la spec
MAJEUR Fonction incomplète, comportement non conforme mais sans rupture de sécurité
MINEUR Détail, dette acceptable, amélioration non critique

Détail des écarts

ID Description Référence Gravité
E-01 JSON-LD incomplet vs schémas attendus : aucun schéma WebSite ni BreadcrumbList n’est injecté, alors que la spec les rend obligatoires (context schema.org + WebSite/Organization/BreadcrumbList, FAQ si présente). Le code ne fournit que Organization (src/seo/org.json), SoftwareApplication et FAQPage sur quelques pages ; BaseLayout ne prévoit aucun fallback par défaut. Spec §Invariants 2-4 ; src/components/Seo.astro (jsonLd optionnel uniquement) ; src/layouts/BaseLayout.astro (aucun WebSite/Breadcrumb) ; src/seo/org.json ; src/seo/software.json ; src/pages/*/faq.astro MAJEUR
E-02 Métadonnées robots absentes : aucune balise <meta name="robots"> ni gestion index/noindex prévue, alors que la spec impose des métadonnées SEO explicites (indexables en prod, bloquées en préprod). BaseLayout ne gère pas robots, et Seo.astro (qui le ferait) n’est jamais utilisé. Spec §Invariants 3 ; Spec §Critères d’acceptation (pages indexables) ; src/layouts/BaseLayout.astro:33-75 (robots manquant) ; absence d’usage de src/components/Seo.astro (rg) MAJEUR
E-03 Sitemap statique incomplet/incohérent : public/sitemap.xml est manuel, ne couvre pas toutes les pages (ex. fr/legal/terms, fr/legal/privacy, fr/legal/privacy vs /politique-confidentialite, pages additionnelles) et ne comporte pas systématiquement les xhtml:link alternates exigés ; le plan prévoyait génération via @astrojs/sitemap avec hreflang. Spec §Invariants 3 (pages indexables + hreflang) ; Plan §Structure SEO / Génération sitemap ; public/sitemap.xml MAJEUR
E-04 Plan non respecté : le composant unifié SEO.astro et la config sitemap intégrée ne sont pas utilisés (pas d’intégration dans BaseLayout, pas de génération auto, pas de script de validation SEO), limitant la garantie que toutes les pages possèdent le socle complet de métadonnées. Plan §Structure SEO (SEO.astro, config TS schemas, @astrojs/sitemap, scripts/validate-seo.sh) ; src/components/Seo.astro (non référencé) ; astro.config.mjs (aucune intégration sitemap) MINEUR

Suivi des écarts (append-only)

[2025-12-20] — Suivi E-01

  • Statut précédent : OUVERT
  • Statut actuel : RÉSOLU
  • Justification factuelle :
  • Spec mise à jour pour rendre BreadcrumbList conditionnel (profondeur > 1) tout en maintenant WebSite/Organization obligatoires.
  • Schéma WebSite ajouté et injecté (src/seo/website.json) ; aucune profondeur nécessitant un breadcrumb.
  • Référence vérification :
  • docs/epics/site-vitrine/PD-229-seo-opengraph/PD-229-specification.md
  • src/seo/website.json

[2025-12-20] — Suivi E-02

  • Statut précédent : OUVERT
  • Statut actuel : RÉSOLU
  • Justification factuelle :
  • BaseLayout.astro ajoute <meta name="robots" content={import.meta.env.PROD ? "index, follow" : "noindex, nofollow"}> ; toutes les pages utilisent ce layout.
  • Référence vérification :
  • src/layouts/BaseLayout.astro

[2025-12-20] — Suivi E-03

  • Statut précédent : OUVERT
  • Statut actuel : RÉSOLU
  • Justification factuelle :
  • public/sitemap.xml couvre l’ensemble des 18 pages FR/EN avec xhtml:link alternates fr/en/x-default pour chaque URL.
  • Référence vérification :
  • public/sitemap.xml

[2025-12-20] — Suivi E-04

  • Statut précédent : OUVERT
  • Statut actuel : RÉSOLU
  • Justification factuelle :
  • Le composant non utilisé src/components/Seo.astro a été supprimé, éliminant le code mort.
  • Référence vérification :
  • Suppression vérifiée par ls -la src/components/Seo.astro → fichier absent

Verdict d’acceptabilité (courant)

  • ✅ ACCEPTÉ
  • Date : 2025-12-20
  • Motif synthétique : Tous les écarts E-01 à E-04 sont résolus (JSON-LD conforme, meta robots, sitemap complet, code mort supprimé).

Historique des verdicts

Date Verdict Version Commentaire
2025-12-18 ⚠️ ACCEPTÉ AVEC RÉSERVES n/a Verdict initial avec écarts E-01 à E-04 ouverts
2025-12-20 ✅ ACCEPTÉ n/a E-01 à E-04 résolus (JSON-LD, robots, sitemap, suppression composant SEO)