docs(03): fix plan blockers — remove formation completely, cleanup legacy

- Remove PAGE-07 from requirements (formation deleted per D-19)
- No redirect, /formation returns 404 naturally
- Plan 04 now includes full legacy src/ cleanup
- Update success criteria: 7 routes, SMTP instead of EmailJS

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-08 18:29:39 +02:00
parent 3e38ea02b1
commit b10ff2bc0b
2 changed files with 13 additions and 28 deletions
+9 -24
View File
@@ -8,18 +8,16 @@ files_modified:
- Dockerfile
- docker-compose.yml
- nuxt.config.ts
- app/pages/formation.vue
autonomous: true
requirements:
- INFRA-01
- INFRA-04
- PAGE-07
must_haves:
truths:
- "docker build -t portfolio . reussit sans erreur"
- "docker run -p 3000:3000 portfolio sert l'app SSR sur port 3000"
- "GA4 est actif uniquement en production"
- "Route /formation redirige vers / ou retourne 404"
- "app/pages/formation.vue n'existe pas, /formation retourne 404"
artifacts:
- path: "Dockerfile"
provides: "Multi-stage SSR build node:22-alpine"
@@ -127,8 +125,8 @@ environment:
</task>
<task type="auto">
<name>Task 2: GA4 production-only + formation redirect + cleanup</name>
<files>nuxt.config.ts, app/pages/formation.vue</files>
<name>Task 2: GA4 production-only + legacy cleanup</name>
<files>nuxt.config.ts</files>
<action>
**GA4 nuxt-gtag** (per D-15, INFRA-04) : Verifier/mettre a jour `nuxt.config.ts` pour que nuxt-gtag soit configure correctement. Le config existant a deja :
```typescript
@@ -139,27 +137,14 @@ gtag: {
```
Verifier que `runtimeConfig.public.gtag.id` est bien present (deja fait en Plan 01 pour SMTP). Le `NUXT_PUBLIC_GTAG_ID` sera injecte au runtime sans rebuild (per D-13). Rien a changer si deja correct — juste verifier.
**Page Formation** (per D-19) : La page formation est supprimee. Si `app/pages/formation.vue` existe comme stub, le remplacer par une redirection :
```vue
<script setup lang="ts">
// D-19: Formation page removed from scope
definePageMeta({
middleware: () => navigateTo('/', { redirectCode: 301 })
})
</script>
**Formation** (per D-19) : Completement supprimee. Si `app/pages/formation.vue` existe, le supprimer. Pas de redirection, pas de routeRules — /formation retourne 404 naturellement.
<template>
<div />
</template>
```
Si le fichier n'existe pas, le creer quand meme pour eviter les 404 sur d'anciens liens.
**Nettoyage :** NE PAS supprimer le dossier `src/` dans cette phase — il sert de reference et sera nettoye dans une future phase de maintenance. Supprimer uniquement `nginx.conf` s'il existe (plus utile avec le Dockerfile SSR).
**Nettoyage complet legacy :** Supprimer le dossier `src/`, `old/`, `nginx.conf`, `index.html`, `eslint.config.ts`, `env.d.ts` — tout le legacy de l'ancien SPA Vue. Le repo doit etre propre apres cette phase.
</action>
<verify>
<automated>cd C:/Users/minit/Desktop/portfolio/portfolio && grep -q "production" nuxt.config.ts && grep -q "navigateTo\|redirect" app/pages/formation.vue && echo "PASS"</automated>
<automated>cd C:/Users/minit/Desktop/portfolio/portfolio && grep -q "production" nuxt.config.ts && ! test -f app/pages/formation.vue && ! test -d src && echo "PASS"</automated>
</verify>
<done>GA4 nuxt-gtag actif en production via runtimeConfig, formation.vue redirige vers /, nginx.conf supprime si present</done>
<done>GA4 nuxt-gtag actif en production via runtimeConfig, formation completement supprimee, legacy src/ et fichiers SPA supprimes</done>
</task>
</tasks>
@@ -184,7 +169,7 @@ Si le fichier n'existe pas, le creer quand meme pour eviter les 404 sur d'ancien
- `docker run --rm -p 3000:3000 portfolio` sert l'app sur http://localhost:3000
- `curl http://localhost:3000/` retourne du HTML complet SSR
- L'image Docker finale est < 300MB (node:22-alpine + .output seulement)
- `/formation` redirige vers `/` avec status 301
- `/formation` retourne 404 (page supprimee per D-19)
</verification>
<success_criteria>
@@ -192,7 +177,7 @@ Si le fichier n'existe pas, le creer quand meme pour eviter les 404 sur d'ancien
- docker-compose port Traefik = 3000 (per D-14)
- Variables env SMTP + GA4 passees via docker-compose environment
- nuxt-gtag actif uniquement en production (per D-15)
- formation.vue redirige vers / en 301 (per D-19)
- /formation retourne 404 (D-19), legacy src/ et fichiers SPA supprimes
- .dockerignore exclut node_modules, .nuxt, .output, src, .git
</success_criteria>