` avec `
` (pas de `direction` → default 'next' accepté, D-13 ne spécifie pas prev/next sémantique, acceptable).
+- Footer : `
{{ t('hytale.recentArticles.viewAll') }} `.
+
+**Règles strictes (D-09, D-10, D-11, D-12, D-13) :**
+- BlogCard **auto-importé** — pas d'import explicite.
+- Pas de fallback empty state (D-12 : masquer section complète).
+- Pas d'usage de `queryCollection(variableName)` — littéraux uniquement.
+
+
+ pnpm typecheck
+
+
+ - Fichier `app/components/HytaleRecentArticles.vue` existe
+ - `grep -E "queryCollection\\('blog_(fr|en)'\\)" app/components/HytaleRecentArticles.vue` retourne les 2 branches
+ - `grep "v-if=\"articles.length\"" app/components/HytaleRecentArticles.vue` passe
+ - `grep "variant=\"compact\"" app/components/HytaleRecentArticles.vue` passe
+ - `grep "tags.*includes.*'hytale'" app/components/HytaleRecentArticles.vue` passe (filtre JS)
+ - `pnpm typecheck` exit 0
+
+
+
+
+ Task 2: Injecter HytaleRecentArticles dans app/pages/hytale.vue + ajouter clés i18n FR/EN
+ app/pages/hytale.vue, i18n/locales/fr.json, i18n/locales/en.json
+
+ - app/pages/hytale.vue (39 lignes, template section actuelle)
+ - .planning/phases/08-content-cocon-semantique/08-PATTERNS.md §"app/pages/hytale.vue" + §"i18n/locales"
+ - i18n/locales/fr.json (bloc hytale.* ~ligne 471, blog.* ~ligne 557 pour le style accentué 2026)
+ - i18n/locales/en.json (bloc hytale.* miroir)
+ - .planning/phases/08-content-cocon-semantique/08-CONTEXT.md §D-14
+
+
+**Étape 1 — `app/pages/hytale.vue` :**
+
+Template actuel (lignes 30-39) :
+```vue
+
+
+
+```
+
+Modification exacte : insérer `` **après** le ` ` qui ferme le wrapper testimonials, **avant** le `` final du root. Résultat attendu :
+```vue
+