# VEZA MVP Implementation Agent — Infinite Loop Protocol

## 🎯 Mission

Tu es un agent d'implémentation autonome. Ta mission est d'implémenter **toutes les 267 tâches** du fichier `VEZA_COMPLETE_MVP_TODOLIST.json` jusqu'à atteindre un MVP stable prêt pour la production.

Tu travailles sur une **branche dédiée** et tu **commits après chaque tâche**.

---

## 📁 Fichier Source de Vérité

```
VEZA_COMPLETE_MVP_TODOLIST.json  ← Todolist complète (267 tâches)
```

Ce fichier DOIT être maintenu à jour après chaque tâche terminée.

---

## 🌿 Gestion de Branche Git

### Au Début de la Première Session

```bash
# Vérifier la branche actuelle
git branch --show-current

# Si pas sur la branche MVP, la créer ou y aller
git checkout -b feature/mvp-complete 2>/dev/null || git checkout feature/mvp-complete

# S'assurer d'être à jour
git pull origin feature/mvp-complete 2>/dev/null || echo "Nouvelle branche"
```

### Au Début de Chaque Session Suivante

```bash
# Revenir sur la branche MVP
git checkout feature/mvp-complete

# Récupérer les derniers changements
git pull origin feature/mvp-complete 2>/dev/null || echo "OK"
```

---

## 🔄 Cycle d'Implémentation (Boucle Infinie)

```
┌─────────────────────────────────────────────────────────────┐
│  1. LOAD & FIND                                             │
│     → Lire VEZA_COMPLETE_MVP_TODOLIST.json                 │
│     → Trouver la tâche avec:                                │
│       • status = "todo"                                     │
│       • Le plus petit priority_rank                         │
│     → Si toutes complétées → MISSION ACCOMPLIE 🎉          │
├─────────────────────────────────────────────────────────────┤
│  2. ANNOUNCE                                                │
│     → Afficher: "🚀 [X/267] Tâche ID: TITRE"               │
│     → Lister les fichiers à modifier                        │
│     → Vérifier les dépendances                              │
├─────────────────────────────────────────────────────────────┤
│  3. IMPLEMENT                                               │
│     → Suivre les implementation_steps                       │
│     → Modifier/créer les fichiers listés                    │
│     → Respecter les acceptance_criteria                     │
├─────────────────────────────────────────────────────────────┤
│  4. VALIDATE                                                │
│     → Compiler: TypeScript (npx tsc --noEmit)              │
│     → Compiler: Go (go build ./...)                         │
│     → Vérifier les acceptance_criteria                      │
├─────────────────────────────────────────────────────────────┤
│  5. UPDATE JSON                                             │
│     → Mettre status = "completed"                           │
│     → Ajouter bloc "completion" avec détails                │
│     → Mettre à jour progress_tracking                       │
├─────────────────────────────────────────────────────────────┤
│  6. COMMIT                                                  │
│     → git add -A                                            │
│     → git commit avec message formaté                       │
├─────────────────────────────────────────────────────────────┤
│  7. REPORT & CONTINUE                                       │
│     → Afficher le résumé                                    │
│     → Retour à l'étape 1                                    │
└─────────────────────────────────────────────────────────────┘
```

---

## 📋 Format de Mise à Jour du JSON

### Quand une Tâche est Complétée

```json
{
  "id": "BE-SEC-001",
  "status": "completed",
  "completion": {
    "completed_at": "2025-01-28T14:30:00Z",
    "actual_hours": 2.5,
    "commits": ["abc1234"],
    "files_changed": [
      "veza-backend-api/internal/api/router.go",
      "veza-backend-api/internal/handlers/profile_handler.go"
    ],
    "notes": "Added ownership middleware, all tests pass",
    "issues_encountered": []
  },
  // ... reste inchangé
}
```

### Mise à Jour de progress_tracking

```json
{
  "progress_tracking": {
    "completed": 1,
    "in_progress": 0,
    "todo": 266,
    "blocked": 0,
    "last_updated": "2025-01-28T14:30:00Z",
    "completion_percentage": 0.37
  }
}
```

---

## 📝 Format de Commit

```bash
git commit -m "[TASK-ID] CATEGORY: Title

- Change 1
- Change 2
- Change 3

Phase: PHASE-X
Priority: PX
Progress: Y/267 (Z%)"
```

### Exemples

```bash
git commit -m "[BE-SEC-001] security: Fix ownership verification for user profile updates

- Added userOwnerResolver function in router.go
- Applied RequireOwnershipOrAdmin middleware to PUT /users/:id
- Added unit tests for ownership verification

Phase: PHASE-1
Priority: P0
Progress: 1/267 (0.4%)"
```

```bash
git commit -m "[FE-COMP-015] component: Add loading skeleton for track list

- Created TrackListSkeleton component
- Integrated with useTrackList hook
- Added storybook story

Phase: PHASE-2
Priority: P1
Progress: 45/267 (16.9%)"
```

---

## 🚀 Séquence de Démarrage (À Chaque Session)

```markdown
## DÉMARRAGE SESSION

1. [ ] Vérifier/créer la branche
       git checkout feature/mvp-complete 2>/dev/null || git checkout -b feature/mvp-complete

2. [ ] Lire VEZA_COMPLETE_MVP_TODOLIST.json
       → Noter progress_tracking.completed
       → Calculer: X tâches restantes

3. [ ] Trouver la prochaine tâche
       → status = "todo"
       → Plus petit priority_rank

4. [ ] Annoncer:
       "📍 Session démarrée
        Progression: X/267 (Y%)
        Prochaine tâche: [ID] - [TITLE]
        Phase: PHASE-Z (Priority: PW)"

5. [ ] Commencer l'implémentation
```

---

## 📊 Format de Rapport Après Chaque Tâche

```
═══════════════════════════════════════════════════════════════
✅ COMPLÉTÉ: [TASK-ID] — [Title]
═══════════════════════════════════════════════════════════════

Phase: PHASE-X | Priorité: PY | Durée: Zh XXmin

Fichiers modifiés:
  ✓ path/to/file1.go
  ✓ path/to/file2.ts

Validation:
  ✓ TypeScript compile
  ✓ Go build OK
  ✓ Critères d'acceptation respectés

Commit: abc1234

───────────────────────────────────────────────────────────────
📊 PROGRESSION
───────────────────────────────────────────────────────────────

Complétées: X/267 (Y%)
[████████░░░░░░░░░░░░░░░░░░░░░░] Y%

Par phase:
  PHASE-1 (P0): X/12
  PHASE-2 (P1): X/XX
  PHASE-3 (P1): X/XX
  ...

Prochaine tâche: [NEXT-ID] — [Next Title]

═══════════════════════════════════════════════════════════════
```

---

## ⚠️ Gestion des Blocages

### Si une Dépendance n'est pas Satisfaite

```json
{
  "id": "TASK-ID",
  "status": "blocked",
  "blocked_info": {
    "blocked_at": "2025-01-28T14:30:00Z",
    "blocked_by": ["DEPENDENCY-ID"],
    "reason": "Dependency task not completed"
  }
}
```

→ Passer à la tâche suivante avec priority_rank le plus bas qui n'est pas bloquée.

### Si l'Implémentation Échoue

```bash
# Annuler les changements
git checkout -- .

# Marquer comme bloquée avec raison
# Passer à la tâche suivante
```

### Si TypeScript/Go ne Compile Pas

1. Identifier l'erreur
2. Corriger si possible
3. Si non corrigeable immédiatement → marquer comme blocked avec la raison
4. Passer à la tâche suivante

---

## 🔧 Commandes Utiles

```bash
# === GIT ===
git checkout feature/mvp-complete
git add -A
git commit -m "MESSAGE"
git push origin feature/mvp-complete

# === VALIDATION ===
cd apps/web && npx tsc --noEmit
cd veza-backend-api && go build ./...
cd apps/web && npm test -- --watchAll=false
cd veza-backend-api && go test ./...

# === RECHERCHE ===
grep -rn "PATTERN" apps/web/src/
grep -rn "PATTERN" veza-backend-api/

# === STRUCTURE ===
find apps/web/src -name "*.ts" -o -name "*.tsx" | head -20
find veza-backend-api/internal -name "*.go" | head -20
```

---

## 🎯 Règles d'Implémentation

### DO ✅
- Suivre exactement les `implementation_steps`
- Modifier uniquement les fichiers listés dans `files_involved`
- Respecter tous les `acceptance_criteria`
- Compiler après chaque modification
- Committer après chaque tâche complète
- Mettre à jour le JSON immédiatement

### DON'T ❌
- Sauter des étapes d'implémentation
- Modifier des fichiers non listés
- Ignorer les erreurs de compilation
- Oublier de committer
- Oublier de mettre à jour le JSON
- Changer de branche sans committer

---

## 📈 Milestones

```
PHASE-1 (P0): 12 tâches  → Fondation sécurisée
PHASE-2 (P1): ~64 tâches → Features core complètes  
PHASE-3 (P1): ~35 tâches → Intégration parfaite
PHASE-4 (P1): 15 tâches  → Sécurité renforcée
PHASE-5 (P2): ~43 tâches → Tests complets
PHASE-6 (P2): ~34 tâches → Services optimisés
PHASE-7 (P2): 19 tâches  → Docs & DevOps
PHASE-8 (P3): ~17 tâches → Polish final

TOTAL: 267 tâches → MVP Production-Ready 🚀
```

---

## 🏁 Condition de Fin

La mission est terminée quand:

```json
{
  "progress_tracking": {
    "completed": 267,
    "in_progress": 0,
    "todo": 0,
    "blocked": 0,
    "completion_percentage": 100
  }
}
```

À ce moment, afficher:

```
╔═══════════════════════════════════════════════════════════════╗
║                                                               ║
║   🎉 MISSION ACCOMPLIE — MVP VEZA STABLE 🎉                  ║
║                                                               ║
║   267/267 tâches complétées (100%)                           ║
║                                                               ║
║   Prochaines étapes:                                          ║
║   1. Merge feature/mvp-complete → main                       ║
║   2. Tag version v1.0.0-mvp                                  ║
║   3. Déploiement production                                  ║
║                                                               ║
╚═══════════════════════════════════════════════════════════════╝
```

---

## 🚀 COMMENCE MAINTENANT

```bash
# 1. Créer/checkout la branche
git checkout -b feature/mvp-complete 2>/dev/null || git checkout feature/mvp-complete

# 2. Lire le JSON et trouver la première tâche todo
```

**Première action**: 
1. Lis `VEZA_COMPLETE_MVP_TODOLIST.json`
2. Trouve la tâche avec `status: "todo"` et le plus petit `priority_rank`
3. Annonce-la et commence l'implémentation

---

## 💡 PROMPT ULTRA-COURT (réutilisable)

Si tu veux relancer l'agent rapidement, utilise ce prompt minimal:

```
Continue l'implémentation du MVP Veza.

Fichier: @VEZA_COMPLETE_MVP_TODOLIST.json
Branche: feature/mvp-complete

Trouve la prochaine tâche (status: todo, plus petit priority_rank).
Implémente-la.
Mets à jour le JSON.
Commit.
Continue.
```
