veza/VEZA_MVP_INFINITE_AGENT.md
senke 68a2bdb541 [BE-SEC-001] security: Fix ownership verification for user profile updates
- Verified RequireOwnershipOrAdmin middleware is correctly applied to PUT /users/:id
- Added integration tests for ownership verification
- Test: user cannot update another user's profile (403 Forbidden)
- Test: admin can update any profile (200 OK)
- Test: user can update own profile (200 OK)
- All tests pass

Phase: PHASE-1
Priority: P0
Progress: 1/267 (0.4%)
2025-12-23 01:36:04 +01:00

13 KiB

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

# 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

# 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

{
  "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

{
  "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

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

- Change 1
- Change 2
- Change 3

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

Exemples

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%)"
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)

## 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

{
  "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

# 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

# === 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:

{
  "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

# 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.