
# Projet ARC
```mermaid
gantt
    title Diagramme Gantt du projet ARC
    dateFormat  YYYY-MM-DD
    axisFormat  %d/%m
    excludes    weekends
    todayMarker on

   Etape 0 - Initialisation                         :a1, 2026-06-08, 2026-06-11
   Etape 1 - Analyse du Besoin & Qualification      :a2, 2026-06-11, 2026-06-27
   Etape 2 - Génération de Code                     :a2, 2026-06-29, 2026-07-15
   Etape 3 - Tests et Assurance Qualité             :a2, 2026-07-15, 2026-08-01
   Etape 4 - Livraison & Feedback Utilisateur       :a2, 2026-08-01, 2026-08-13
   Etape finale                                     :a2, 2026-08-13, 2026-08-15

```
---
```mermaid
gantt
    title Section 0 - Préparation de l'environnement du projet
    dateFormat  YYYY-MM-DD
    axisFormat  %d/%m
    excludes    weekends
    todayMarker off

    section Initialisation
    Créer structure projet :a1, 2026-06-09, 0.5d
    Backend + structure     :a2, 2026-06-09, 0.5d

    section LangGraph
    Installer LangGraph                      :b1, 2026-06-09, 0.5d
    Créer structure workflow                 :b2, 2026-06-09, 1d
    Définir state global                     :b3, 2026-06-09, 1d

    section Setup Qdrant
    Installer Qdrant                         :c1, after b3, 0.5d
    Tester connexion Python                  :c2, after b3, 0.5d

    section Setup modèle d’embedding
    Installer Snowflake                      :d1, after b3, 0.5d
    Implémenter embedding()                  :d2, after b3, 0.5d

    section Setup LLM
    Installer llama.cpp                      :e1, after b3, 0.5d
    Tester appel modèle                      :e2, after b3, 0.5d

    section Setup Chainlit
    Installer Chainlit                       :f1, after e2, 0.5d
    Lancer app test                          :f2, after e2, 0.5d

    section Organisation du code
    Créer dossiers agents                    :g1, after e2, 0.5d
    Créer dossiers services                  :g2, after e2, 0.5d

    section Logging et debug
    Logs simples                             :h1, after e2, 0.5d
    Structuration logs                       :h2, after e2, 0.5d
```

```mermaid
gantt
    title Section 1 - Analyse du Besoin & Qualification
    dateFormat  YYYY-MM-DD
    axisFormat  %d/%m
    excludes    weekends
    todayMarker off

    section Interface utilisateur
    Créer interface Chainlit                  :a1, 2026-06-12, 1d
    Connecter Chainlit → backend Python       :a2, 2026-06-12, 0.5d

    section Modèle cahier des charges
    Définir structure JSON                    :b1, after a2, 0.5d
    Schéma Pydantic                           :b2, after a2, 1d

    section Agent PM
    Prompt Agent PM                           :c1, after b2, 0.5d
    Sortie structurée Pydantic                :c2, after b2, 0.5d
    Gestion erreurs                           :c3, after c2, 0.5d

    section Questions clarificatrices
    Détection champs manquants                :d1, after c2, 0.5d
    Génération questions LLM                  :d2, after d1, 0.5d
    Boucle interaction Chainlit               :d3, after d1, 1d

    section Validation du cahier des charges
    Affichage CDC                             :e1, after d3, 0.5d
    Boutons validation/refus                  :e2, after d3, 0.5d

    section Qdrant (BDD vectorielle) (optionnel)
    Installer Qdrant                          :f1, after e2, 0.5d
    Créer collection                          :f2, after e2, 0.5d
    Structure payload                         :f3, after f2, 0.5d

    section Embedding (optionnel)
    Intégrer Snowflake Arctic                 :g1, after f2, 0.5d
    Fonction embedding                        :g2, after f2, 0.5d

    section Recherche d'existant (optionnel)
    Recherche projets similaires              :h1, after g2, 0.5d
    Filtres payload                           :h2, after g2, 0.5d
    Formatage résultats                       :h3, after h2, 0.5d

    section Proposition utilisateur (optionnel)
    Affichage résultats Chainlit              :i1, after h2, 0.5d
    Bouton "utiliser projet"                  :i2, after h2, 0.5d
    Bouton "continuer génération"             :i3, after h2, 0.5d

    section Redis (optionnel)
    Cache recherche                           :j1, after i3, 1d
```

```mermaid
gantt
    title Section 2 - Génération de Code
    dateFormat  YYYY-MM-DD
    axisFormat  %d/%m
    excludes    weekends
    todayMarker off

    section Préparation des entrées
    Récupérer cahier des charges           :a1, 2026-06-29, 0.5d
    Normaliser / valider données           :a2, 2026-06-29, 0.5d

    section Format de sortie du code
    Structure projet JSON/Pydantic         :b1, after a2, 0.5d
    Modèle Pydantic sortie code            :b2, after a2, 1d

    section Prompt Agent Dev
    Prompt génération code                 :c1, after b2, 1d
    Contraintes strictes                   :c2, after b2, 0.5d

    section Intégration LLM
    Setup llama.cpp                        :d1, after c2, 0.5d
    Connexion LangGraph → LLM              :d2, after c2, 0.5d

    section Arborescence projet
    Génération structure fichiers          :e1, after d2, 0.5d
    Vérification structure                 :e2, after d2, 0.5d

    section Génération code source
    Génération fichiers Python             :f1, after e2, 2d
    Conformité structure                   :f2, after f1, 1d

    section Fichiers complémentaires
    README.md                              :g1, after f2, 0.5d
    requirements.txt                       :g2, after f2, 0.5d
    Instructions exécution                 :g3, after f2, 0.5d

    section Validation backend
    Vérification fichiers                  :h1, after g3, 0.5d
    Nettoyage output LLM                   :h2, after g3, 0.5d

    section Intégration LangGraph
    Ajouter noeud Agent Dev                :i1, after h2, 0.5d
    Connecter PM → Dev                     :i2, after h2, 0.5d

    section Préparation QA
    Formatter code sandbox                 :j1, after i2, 0.5d
    Transmettre au state                  :j2, after i2, 0.5d
```

```mermaid
gantt
    title Section 3 - Tests et Assurance Qualité
    dateFormat  YYYY-MM-DD
    axisFormat  %d/%m
    excludes    weekends
    todayMarker off

    section Préparation entrées
    Récupérer projet Agent Dev              :a1, 2026-07-15, 0.5d

    section Sandbox Docker
    Dockerfile générique                    :b1, 2026-07-15, 1d
    Script build/run                        :b2, after b1, 1d
    Isolation environnement                 :b3, after b1, 0.5d

    section Exécution sandbox
    Lancer exécution                        :c1, after b3, 0.5d
    Capturer logs                           :c2, after b3, 0.5d

    section Ruff (qualité)
    Installer Ruff                          :d1, after c2, 0.5d
    Ruff check                              :d2, after c2, 0.5d

    section Bandit (sécurité)
    Installer Bandit                        :e1, after c2, 0.5d
    Scan projet                             :e2, after c2, 0.5d

    section Semgrep (optionnel)
    Installer Semgrep                       :f1, after c2, 0.5d
    Analyse règles                          :f2, after c2, 0.5d

    section Structuration QA
    Modèle Pydantic rapport                 :g1, after f2, 1d
    Parser résultats outils                 :g2, after g1, 0.5d

    section Agent QA
    Prompt Agent QA                         :h1, after g2, 1d
    Résumé intelligible                     :h2, after h1, 0.5d
    Traduction erreurs → dev                :h3, after h2, 1d

    section Boucle Dev ↔ QA
    Implémenter boucle LangGraph            :i1, after h3, 1.5d
    Condition stop                          :i2, after h3, 0.5d
    Limite itérations                       :i3, after h3, 1d

    section Logs pour correction
    Structurer logs                         :j1, after i3, 0.5d
    Injecter logs dans Agent Dev            :j2, after i3, 0.5d

    section Intégration LangGraph
    Ajouter noeud QA                        :k1, after j2, 0.5d
    Connecter Dev → QA → loop               :k2, after j2, 0.5d

    section Sécurisation minimale
    Limiter temps exécution                 :l1, after k2, 0.5d
    Bloquer accès disque/réseau             :l2, after k2, 0.5d
```

```mermaid
gantt
    title Section 4 - Livraison & Feedback Utilisateur
    dateFormat  YYYY-MM-DD
    axisFormat  %d/%m
    excludes    weekends
    todayMarker off

    section Préparation affichage
    Récupérer code validé                 :a1, 2026-08-03, 0.5d
    Récupérer rapport QA                  :a2, 2026-08-03, 0.5d

    section Affichage Chainlit
    Afficher code                         :b1, after a2, 0.5d
    Afficher rapport QA                   :b2, after a2, 0.5d
    Afficher instructions exécution       :b3, after a2, 0.5d

    section Actions utilisateur
    Bouton valider                        :c1, after a2, 0.5d
    Bouton refuser                        :c2, after a2, 0.5d

    section Gestion refus
    Champ feedback                        :d1, after c2, 0.5d
    Structuration Pydantic                :d2, after c2, 0.5d
    Injection LangGraph                   :d3, after c2, 0.5d

    section Boucle retour PM
    Transition QA → PM                    :e1, after d3, 0.5d
    Conserver contexte + feedback         :e2, after d3, 0.5d

    section Génération ZIP
    Créer archive                         :f1, after e2, 0.5d
    Vérifier structure                    :f2, after e2, 0.5d

    section Téléchargement
    Bouton téléchargement ZIP             :g1, after e2, 0.5d

    section Sauvegarde projet
    Sauvegarder code + metadata           :h1, after g1, 0.5d
    Flag validated                        :h2, after g1, 0.5d

    section Réindexation Qdrant
    Générer embedding                     :i1, after h2, 0.5d
    Ajouter dans Qdrant                   :i2, after h2, 0.5d

    section Git (optionnel)
    Init dépôt                            :j1, after i2, 0.5d

    section Intégration finale LangGraph
    Ajouter noeud Delivery                :k1, after i2, 0.5d
    Connecter QA → Delivery → fin         :k2, after i2, 0.5d
```

```mermaid
gantt
    title Section finale - Rendu
    dateFormat  YYYY-MM-DD
    axisFormat  %d/%m
    excludes    weekends
    todayMarker off

    Tests fonctionnels de bout en bout             :a1, 2026-08-13, 0.5d
    Documentation finale                           :a2, 2026-08-13, 0.5d
    Présentation                                   :a3, after a2, 1d
```