graph TB
ISSUE["📋 Issue GitHub"] --> PRESEARCH["🔍 Pre-search<br/>Étape 0.3"]
PRESEARCH --> CLASSIFY["🧠 Orchestrator<br/>Classification tâche"]
CLASSIFY --> ADAPT["🔄 ADAPT"]
CLASSIFY --> SIMPLE["🔧 SIMPLE"]
CLASSIFY --> MEDIUM["📦 MEDIUM"]
CLASSIFY --> FULL["🏗️ FULL"]
SIMPLE --> IMPL_SIMPLE["💻 Front ou Back<br/>Implémentation"]
IMPL_SIMPLE --> TEST["🧪 Tester<br/>Génération + exécution tests"]
ADAPT --> SEARCH_ADAPT["🔎 Search<br/>Cartographie"]
SEARCH_ADAPT --> IMPL_ADAPT["💻 Front ou Back<br/>Implémentation"]
IMPL_ADAPT --> TEST
MEDIUM --> SEARCH_MED["🔎 Search<br/>Cartographie"]
SEARCH_MED --> PLAN["🧩 Planner<br/>Planification"]
PLAN --> IMPL_MEDIUM["💻 Front + Back<br/>Parallèle"]
IMPL_MEDIUM --> TEST
FULL --> SEARCH_FULL["🔎 Search<br/>Cartographie"]
SEARCH_FULL --> PLAN_FULL["🧩 Planner<br/>Planification"]
PLAN_FULL --> CONTRACT["📝 Contract<br/>Types + API"]
CONTRACT --> IMPL_FULL["💻 Front + Back<br/>Parallèle"]
IMPL_FULL --> TEST
TEST --> REVIEW["👁️ Reviewer<br/>Audit qualité"]
REVIEW -->|"✅ Approuvé"| WRITER["✍️ Writer<br/>Documentation"]
REVIEW -->|"❌ Rejeté"| FIX["🔄 Corrections"]
FIX --> TEST
WRITER --> COMMIT["📝 Commit + Push"]
COMMIT --> PR["🔀 Pull Request"]
PR --> MERGE["🎉 Merge"]
style ISSUE fill:#0E0C09,stroke:#7A8899,color:#F5F0EB
style PRESEARCH fill:#0E0C09,stroke:#7A8899,color:#7A8899
style CLASSIFY fill:#0E0C09,stroke:#7A8899,color:#7A8899
style SIMPLE fill:#0E0C09,stroke:#7A8899,color:#F5F0EB
style ADAPT fill:#0E0C09,stroke:#7A8899,color:#F5F0EB
style MEDIUM fill:#0E0C09,stroke:#C4780D,color:#C4780D
style FULL fill:#0E0C09,stroke:#C4780D,color:#C4780D
style REVIEW fill:#0E0C09,stroke:#C4780D,color:#C4780D
style MERGE fill:#0E0C09,stroke:#7A8899,color:#7A8899
style WRITER fill:#0E0C09,stroke:#C4780D,color:#C4780D
style PLAN fill:#0E0C09,stroke:#C4780D,color:#C4780D
style PLAN_FULL fill:#0E0C09,stroke:#C4780D,color:#C4780D
style CONTRACT fill:#0E0C09,stroke:#C4780D,color:#C4780D
style FIX fill:#0E0C09,stroke:#C4780D,color:#C4780D
linkStyle 21 color:#0E0C09
linkStyle 22 color:#0E0C09
Une issue GitHub arrive, une pull request mergée en ressort. Entre les deux : classification automatique, routage intelligent, implémentation parallèle, tests rigoureux et documentation vivante. Le tout orchestré sans que vous leviez le petit doigt.
Arbre de décision des routes
Chaque tâche est automatiquement classifiée sur l'une des 5 routes du pipeline. La complexité croissante détermine le nombre d'agents mobilisés et la rigueur des gates qualité.
Réponse textuelle
Réponse à une question, commande /slash, information. Aucun agent spécialisé — pas de modification de fichier.
Modification ciblée
Correction ou ajout limité à un fichier. L'agent adapte le code existant sans planification préalable.
Adaptation transversale
Modification impactant 2–3 fichiers. L'agent search cartographie les dépendances avant modification.
Fonctionnalité multi-fichiers
Feature complète avec planification, génération de tests et revue de code automatisée.
Feature complexe avec contrats
Fonctionnalité majeure nécessitant contrats TypeScript, parallélisme front+back, gates qualité et documentation.
Coûts estimés avec la tarification API DeepSeek V4 Pro (juin 2026). Tokens et coûts réels variables selon la complexité et le volume.
Pipeline complet
Le diagramme ci-dessous illustre le flux complet : de l'issue GitHub au merge final. Chaque étape est automatisée. Les tâches MEDIUM et FULL activent le parallélisme front+back et les gates qualité (tester + reviewer).
Pré-search : le diagnostic qui évite les erreurs
Avant de classifier votre tâche, les agents de la Swarm analysent l'ensemble du codebase en parallèle. Fichiers impactés, occurrences, complexité réelle — tout est mesuré objectivement. Résultat : la bonne route est choisie à chaque fois, sans tâtonnement.
| Route | Fichiers impactés | Tokens estimés | Classification |
|---|---|---|---|
| 0 fichier | ~5 K | Réponse textuelle — aucun agent déclenché | |
| 1 fichier, > 3 occurrences | ~50 K | Modification ciblée — agent unique | |
| 2–5 fichiers | ~120 K | Adaptation transversale — search + agent | |
| 5–15 fichiers, ≥ 1 feature | ~400 K | Feature multi-fichiers — planification + tests | |
| > 15 fichiers, contrats nécessaires | ~550 K | Feature complexe — pipeline complet avec gates |
Gates qualité automatisées
Deux gates successives garantissent que chaque modification est testée et revue avant d'atteindre la branche principale.
Tester
Génération systématique de tests, exécution et mesure de couverture. Seuil bloquant : 80 %.
- Génération automatique de tests unitaires et d'intégration
- Exécution complète de la suite de tests
- Mesure de couverture (seuil : ≥ 80 %)
- Catégorisation des erreurs pour retry granulaire
- Rapport détaillé avec actions correctives
Reviewer
Audit de sécurité, qualité et cohérence du code ET des tests générés. Approbation ou rejet avec liste précise des corrections.
- Security score ≥ 1.0 (aucune vulnérabilité critique)
- Quality score ≥ 0.85 (code propre, maintenable)
- Vérification des limites de diff (pas de modification massive non justifiée)
- Audit des tests générés (pas de faux positifs, couverture réelle)
- Approbation/rejet avec liste exhaustive des issues
Intégration Git native
Le pipeline Swarm est pensé pour le flux GitHub : chaque étape, de la création de branche au merge, est automatisée. Deux scripts automatisent le workflow Git : setup.ts initialise la branche et l'environnement, finish.ts nettoie, documente et prépare la PR.
Tout commence par une issue. La Swarm analyse le titre et la description pour classifier automatiquement la tâche.
Création automatique d'une branche feature/ suivant la convention swarm-issue-{n}-{description}.
Commits atomiques avec messages conventionnels (feat:, fix:, docs:). Un commit par étape majeure.
Création automatique de la PR avec description générée, checklist et lien vers l'issue.
Après approbation des gates et revue humaine optionnelle, merge automatique dans la branche principale.
gitGraph
commit id: "main"
branch feature/swarm-issue-N
commit id: "implémentation"
commit id: "tests validés"
checkout main
merge feature/swarm-issue-N tag: "squash merge"
commit id: "main (post-merge)"
Fichiers Swarm
Deux fichiers de configuration gouvernent l'état et la mémoire du pipeline entre les sessions.
.swarm-queue.jsonFile d'attente des tâches pour les sessions multi-tâches. Permet au Swarm de traiter jusqu'à 5 tâches indépendantes en parallèle.
{
"sessionId": "uuid",
"tasks": [
{
"id": "T1",
"route": "MEDIUM",
"status": "pending|in_progress|done|failed",
"agent": "front",
"description": "..."
}
],
"maxParallel": 5,
"maxCycles": 5
}.agent-memory.jsonMémoire persistante des métriques et de l'historique des sessions. Alimente les tableaux de bord et l'optimisation continue.
{
"sessions": [
{
"id": "uuid",
"route": "MEDIUM",
"tokensUsed": 400000,
"cost": 0.20,
"duration": "3m42s",
"testsPassed": 12,
"coverage": 87
}
],
"aggregates": {
"totalSessions": 42,
"totalTokens": 16800000,
"totalCost": 8.40,
"avgCoverage": 85
}
}