first push

This commit is contained in:
Chevallier
2026-06-12 18:16:58 +02:00
commit a7d8914e25
53 changed files with 1655 additions and 0 deletions

42
ressources/Etape0.md Normal file
View File

@@ -0,0 +1,42 @@
# Projet ARC
```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 dembedding
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
```

53
ressources/Etape1.md Normal file
View File

@@ -0,0 +1,53 @@
# Projet ARC
```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)
Installer Qdrant :f1, after e2, 0.5d
Créer collection :f2, after e2, 0.5d
Structure payload :f3, after f2, 0.5d
section Embedding
Intégrer Snowflake Arctic :g1, after f2, 0.5d
Fonction embedding :g2, after f2, 0.5d
section Recherche d'existant
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
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
```

50
ressources/Etape2.md Normal file
View File

@@ -0,0 +1,50 @@
# Projet ARC
```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
```

59
ressources/Etape3.md Normal file
View File

@@ -0,0 +1,59 @@
# Projet ARC
```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
```

53
ressources/Etape4.md Normal file
View File

@@ -0,0 +1,53 @@
# Projet ARC
```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
```

13
ressources/EtapeFinale.md Normal file
View File

@@ -0,0 +1,13 @@
# Projet ARC
```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
```

88
ressources/Projet.md Normal file
View File

@@ -0,0 +1,88 @@
### Étape 0 : Préparation de l'environnement du projet
Tâches :
- Créer backend minimal
- Créer modèle de données simple
- langGraph
___
### Étape 1 : Analyse du Besoin & Qualification (Agent PM / Business Analyst)
- L'utilisateur entre une demande en langage naturel.
- **Agent 1 (PM)** analyse la demande. Si des informations manquent pour coder, il pose des questions clarificatrices à l'utilisateur jusqu'à obtenir un cahier des charges complet.
- **Vérification BDD :** Avant de coder, le système cherche dans une base de données vectorielle si un projet similaire existe déjà.
- *Si oui :* On propose le lien à l'utilisateur. Si l'utilisateur valide, le workflow s'arrête ici.
- *Si non (ou si l'utilisateur rejette l'existant) :* On passe à l'étape 2.
Outils :
- LangGraph -> LangGraph est adapté aux workflows multiagents avec états, transitions conditionnelles, persistance et humanintheloop
- Python -> backend, les agents, les appels LLM, les tests, les embeddings et les intégrations + compatible avec autres tools
- Pydantic AI / Pydantic -> forcer lAgent PM à produire un cahier des charges structuré
- Chainlit -> adapté aux interfaces conversationnelles
BDD :
- Qdrant -> adapté à la recherche sémantique + stocker les embeddings de projets/scripts
- Snowflake Arctic Embed 2.0 -> modèle dembedding
- Redis (optionnel) -> cache de recherche ;sessions utilisateur ;état temporaire ;verrouillage dun workflow ;file dattente simple
Tâches :
- Interface Chainlit
- Créer le prompt Agent PM
- Créer le schéma Pydantic du cahier des charges
- Gérer les questions clarificatrices
- Valider le cahier des charges
- Recherche dexistant (Qdrant/Snowflake Arctic Embed 2.0/Redis)
___
### Étape 2 : Génération de Code (Agent Développeur)
- **Agent 2 (Dev)** reçoit le cahier des charges validé et génère l'arborescence et le code source du projet.
Outils :
- LangGraph -> LangGraph est adapté aux workflows multiagents avec états, transitions conditionnelles, persistance et humanintheloop
- Mistral ou Gemma (modèle trop généraliste/léger->tache simple) -> DeepSeek Coder/Qwen2.5
- vLLM -> meilleur choix quOllama pour une plateforme plus industrialisée. Llama.cpp modèles quantifiés sur CPU ou machines modestes + moins adapté à une plateforme multiutilisateur
- Pydantic
Tâches :
- Créer le prompt Agent Dev
- Partie dev
___
### Étape 3 : Tests et Assurance Qualité (Agent QA / Testeur)
- **Agent 3 (QA)** récupère le code de l'Agent 2. Il doit exécuter le code (via une sandbox sécurisée) ou générer/exécuter des tests unitaires pour vérifier la qualité, la sécurité et le fonctionnement.
- **Boucle de correction automatique (Loop 1) :** Si les tests échouent, l'Agent 3 renvoie les erreurs à l'Agent 2 avec les logs. L'Agent 2 corrige et renvoie à l'Agent 3. Cette boucle tourne au maximum X fois jusqu'à ce que le code soit "vert".
Outils :
- Docker
- Ruff -> qualité de code
- Bandit -> sécurité
- Semgrep (optionnel) -> règles de sécurité et qualité plus larges
Boucle correction :
- LangGraph
- Pydantic
Tâches :
- QA et sandbox
- Intégration Ruff/Bandit/Semgrep
- Boucle automatique Dev-QA
___
### Étape 4 : Livraison & Feedback Utilisateur (Boucle Humaine)
- Une fois le code validé par l'Agent 3, il est présenté à l'utilisateur.
- L'utilisateur teste et valide.
- *Si Validé :* Le projet est sauvegardé dans la base de données (pour la recherche de l'Étape 1) et livré (ex: zip ou dépôt GitHub).
- *Si Refusé :* L'utilisateur indique ce qui ne va pas. Tout le contexte (code actuel + retours) est renvoyé à l'**Étape 1** pour réanalyse, et le cycle recommence.
Outils :
- Chainlit
- Git (optionnel)
Tâches :
- Interface Chainlit
- Livraison
___
### Étape finale :
Tâches :
- Tests fonctionnels de bout en bout
- Sécurité minimale
- Documentation finale
- Présentation

288
ressources/test.md Normal file
View File

@@ -0,0 +1,288 @@
# 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 dembedding
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)
Installer Qdrant :f1, after e2, 0.5d
Créer collection :f2, after e2, 0.5d
Structure payload :f3, after f2, 0.5d
section Embedding
Intégrer Snowflake Arctic :g1, after f2, 0.5d
Fonction embedding :g2, after f2, 0.5d
section Recherche d'existant
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
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
```