Infrastructure

Derrière les neuf agents se cache un écosystème complet : configuration centralisée, documentation auto-générée, skills activables à la demande et intégrations natives avec Supabase, Vercel, Render et Playwright. Voici comment tout cela s'articule.

Architecture

Structure .opencode/

Le répertoire racine contient l'intégralité de la configuration de la Swarm. Chaque fichier et dossier a un rôle précis dans l'orchestration du pipeline de développement.

📜AGENTS.md

Bible du projet (~400 lignes). Définit la stack technique, les conventions, les agents, les skills, la palette de couleurs et le protocole comportemental. Lu par l'orchestrateur à chaque exécution.

⚙️swarm-workflow.json

Configuration centralisée du pipeline Swarm. Contrôle l'automatisation des issues, branches, PR, tests et les seuils de qualité.

📦package.json

Dépendances Node.js du workspace OpenCode — notamment les packages MCP (Supabase, Vercel, Render, Playwright).

🤖agents/9 fichiers

Définitions des agents spécialisés. Chaque fichier décrit le rôle, les déclencheurs et le comportement d'un agent.

🎯
build.md (orchestrateur)Chef d'orchestre — interface utilisateur unique et routage des tâches
🔎
search.mdCartographie du codebase, identifie les fichiers impactés, détecte les patterns
📐
planner.mdPlanifie le travail en tâches atomiques, détecte les choix architecturaux
📝
contract.mdÉcrit les types TypeScript, la spécification OpenAPI et les migrations Supabase
🎨
front.mdImplémente les composants UI Apple-grade avec animations premium
back.mdImplémente le backend, génère scripts, crons et configurations
🧪
tester.mdGénère les tests manquants, exécute la suite, mesure la couverture
👁️
reviewer.mdAudit sécurité et qualité du code avant merge. Note minimale : 0.85
📚
writer.mdMet à jour la documentation après chaque commit
🧩skills/3 skills

Modules de compétences spécialisées chargés à la demande. Chaque skill est un dossier autonome avec ses propres instructions, workflows et ressources.

⌨️commands/3 commandes

Commandes slash disponibles dans l'IDE : /docs (documentation), /help (aide contextuelle), /status (état de la session).

🔧tools/

Scripts d'automatisation Git : setup.ts (initialisation branche + issue), finish.ts (nettoyage, build, tests, PR), merge.ts (fusion).

📜scripts/

Scripts utilitaires — notamment mcp-playwright.sh pour les tests E2E automatisés via Playwright.

Configuration

swarm-workflow.json

Le fichier JSON central qui pilote l'ensemble du comportement de la Swarm. Chaque paramètre contrôle un aspect précis à travers 4 catégories. Extrait — 20 champs affichés sur ~40. Configuration complète dans <code>~/.opencode/swarm-workflow.json</code>.

⚙️

Pipeline

Automatisation du cycle de vie des tâches.

Création automatique d'issuetrue

La Swarm crée une issue GitHub pour chaque nouvelle tâche identifiée.

swarm.workflow.auto_create_github_issue
Création automatique de branchetrue

Une branche feature/ est créée automatiquement au démarrage d'une tâche.

swarm.workflow.auto_create_branch
Création automatique de PRtrue

Une pull request est ouverte automatiquement après validation des gates.

swarm.workflow.auto_create_pr
PR en draft par défauttrue

Les PR sont créées en mode brouillon, prêtes pour revue humaine optionnelle.

swarm.workflow.pr_draft_by_default
Décomposition automatiquetrue

Les tâches complexes sont automatiquement décomposées en sous-tâches atomiques.

swarm.workflow.auto_decompose_tasks
Tâches max par session5

Nombre maximum de tâches traitées en parallèle dans une session.

swarm.workflow.max_tasks_per_session
Nettoyage post-exécutiontrue

Les processus et fichiers temporaires sont nettoyés après chaque exécution.

swarm.workflow.cleanup_processes_after_run
🛡️

Qualité

Gates qualité et seuils de validation.

Gates qualité obligatoirestrue

Les gates qualité (tester + reviewer) sont appliquées sur les tâches MEDIUM et FULL.

swarm.workflow.enforce_quality_gates
Validation tester obligatoiretrue

Le merge est bloqué tant que le tester n'a pas validé la couverture ≥ 80 %.

swarm.workflow.require_tester_pass
Approbation reviewer obligatoiretrue

Le merge est bloqué sans l'approbation du reviewer (security ≥ 1.0, quality ≥ 0.85).

swarm.workflow.require_reviewer_approve
E2E pour nouvelles featurestrue

Toute nouvelle feature nécessite au moins un test E2E Playwright avant merge.

swarm.workflow.require_e2e_for_new_features
🌿

Git & Branches

Conventions de nommage et intégration GitHub.

Branche de basemain

Branche cible par défaut pour les pull requests.

swarm.github.default_base_branch
Préfixe de branchefeature/swarm-

Toutes les branches suivent la convention feature/swarm-issue-{n}-{description}.

swarm.github.branch_prefix
🧪

Tests

Configuration des tests automatisés.

Commande serveur E2Eng serve --port 3000

Commande pour démarrer le serveur de développement avant les tests E2E.

swarm.testing.e2e_frontend_command
URL de test E2Ehttp://localhost:3000

URL cible pour les tests Playwright.

swarm.testing.e2e_frontend_url
Tentatives E2E max2

Nombre maximum de tentatives en cas d'échec des tests E2E.

swarm.testing.e2e_max_retries
Timeout E2E (minutes)15

Délai maximum avant abandon des tests E2E.

swarm.testing.e2e_timeout_minutes
Seuil de couverture (%)80

Pourcentage minimum de couverture de code exigé.

swarm.testing.coverage_threshold
Couverture obligatoiretrue

Le seuil de couverture est bloquant — aucun merge si non atteint.

swarm.testing.coverage_enforce
Périmètre des testschanged-only

Seuls les fichiers modifiés sont testés pour optimiser le temps d'exécution.

swarm.testing.test_scope
Documentation vivante

AGENTS.md

Le fichier <code>AGENTS.md</code> (~400 lignes) est la bible du projet — stack technique, conventions de code, palette de couleurs, protocole comportemental et checklist de livraison. Il est lu par l'orchestrateur à chaque exécution et définit l'intégralité des règles que tous les agents doivent respecter.

Vue d'ensemble

Architecture Globale

Le diagramme ci-dessous illustre l'ensemble du pipeline : de l'IDE aux intégrations MCP, en passant par les agents, les gates qualité et la documentation.

graph TB
    subgraph IDE["OPENCODE"]
        AGENTS["📜 AGENTS.md<br/>Bible du projet"]
        CONFIG["⚙️ swarm-workflow.json<br/>Configuration"]
        SKILLS["🧩 Skills (3)<br/>Modules spécialisés"]
    end

    IDE --> ORCH["🧠 Orchestrator<br/>Classification & Routage"]

    subgraph SOURCE["SETUP.TS"]
      ISSUE["📋 Issue GitHub"]
      ISSUE --> BRANCH["🌿 Branche feature/"]
    end

    ORCH --> ISSUE

    BRANCH --> SEARCH["🔎 Search<br/>Cartographie"]
    SEARCH --> PLAN["🧩 Planner<br/>Planification"]

    PLAN --> FRONT["🎨 Front<br/>UI Apple-grade"]
    PLAN --> BACK["⚙️ Back<br/>API & configs"]
    PLAN --> CONTRACT["📋 Contract<br/>Types & OpenAPI"]

    FRONT --> TEST["🧪 Tester<br/>Couverture ≥ 80%"]
    BACK --> TEST
    CONTRACT --> TEST

    subgraph finish["FINISH.TS"]
      TEST --> REVIEW["👁️ Reviewer<br/>Score ≥ 0.85"]
      REVIEW -->|"✅ Approuvé"| WRITER["✍️ Writer<br/>Documentation"]
      REVIEW -->|"❌ Rejeté"| FIX["🔄 Corrections"]
      FIX --> TEST
      WRITER --> COMMIT["Commit + Push"]
      COMMIT --> PR["🔀 Pull Request"]
    end
    style finish fill:transparent,stroke:#7A8899,color:#7A8899
    style SOURCE fill:transparent,stroke:#7A8899,color:#7A8899

    PR --> MERGE["MERGE.TS<br/>Fusion dans main"]

    subgraph MCP["INTÉGRATIONS MCP"]
        SUPABASE["🗄️ Supabase<br/>Postgres + Auth"]
        VERCEL["▲ Vercel<br/>Déploiement CDN"]
        RENDER["⚡ Render<br/>Services + Cron"]
        PLAYWRIGHT["🎭 Playwright<br/>Tests E2E"]
        CONTEXT7["📖 Context7<br/>Documentation"]
        MAGIC["🪄 21st.dev<br/>Composants UI"]
    end

    FRONT -.-> VERCEL
    FRONT -.-> PLAYWRIGHT
    FRONT -.-> MAGIC
    BACK -.-> SUPABASE
    BACK -.-> RENDER
    TEST -.-> PLAYWRIGHT
    WRITER -.-> SUPABASE
    SEARCH -.-> CONTEXT7
    CONTRACT -.-> CONTEXT7

    style IDE fill:#0E0C09,stroke:#7A8899,color:#F5F0EB
    style AGENTS fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style CONFIG fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style SKILLS fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style ORCH fill:#0E0C09,stroke:#7A8899,color:#F5F0EB
    style ISSUE fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style BRANCH fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style SEARCH fill:#0E0C09,stroke:#7A8899,color:#F5F0EB
    style PLAN fill:#0E0C09,stroke:#7A8899,color:#F5F0EB
    style FRONT fill:#0E0C09,stroke:#7A8899,color:#F5F0EB
    style BACK fill:#0E0C09,stroke:#7A8899,color:#F5F0EB
    style CONTRACT fill:#0E0C09,stroke:#7A8899,color:#F5F0EB
    style TEST fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style REVIEW fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style WRITER fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style COMMIT fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style PR fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style FIX fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style MERGE fill:#0E0C09,stroke:#7A8899,color:#F5F0EB
    style MCP fill:#0E0C09,stroke:#7A8899,color:#7A8899
    style SUPABASE fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style VERCEL fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style RENDER fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style PLAYWRIGHT fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style CONTEXT7 fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style MAGIC fill:#0E0C09,stroke:#C4780D,color:#C4780D
    style finish fill:transparent,stroke:#7A8899,color:#7A8899
    style SOURCE fill:transparent,stroke:#7A8899,color:#7A8899
    linkStyle 12 color:#0E0C09
    linkStyle 13 color:#0E0C09
🗄️

Supabase

MCP

Base de données Postgres, authentification, Edge Functions et stockage. Utilisé pour les projets full-stack générés par la Swarm.

  • Postgres managé
  • Auth intégrée
  • Edge Functions
  • Migrations automatiques

Vercel

MCP

Déploiement continu, CDN global, serverless functions. Cible de déploiement par défaut pour les projets frontend.

  • Déploiement Git auto
  • CDN global
  • Preview deployments
  • Analytics intégrés

Render

MCP

Hébergement de services web, cron jobs, Postgres managé. Utilisé pour les backends et bases de données.

  • Web services
  • Cron jobs
  • Postgres
  • Key-Value stores
🎭

Playwright

MCP

Tests end-to-end cross-browser. Intégré au pipeline Swarm pour valider chaque PR sur Chromium et mobile (iPhone 14).

  • Tests multi-navigateurs
  • Auto-waiting
  • Visual comparisons
  • iPhone 14 simulé
📖

Context7

MCP

Recherche de documentation temps réel pour tous les frameworks et bibliothèques. Résout les Library ID et interroge la doc à jour pour éviter les APIs obsolètes.

  • Recherche documentation
  • Résolution Library ID
  • APIs à jour
  • Multi-framework
🪄

21st.dev (Magic)

MCP

Génération de composants UI via IA. Recherche, inspiration et raffinement de composants React/Next.js avec design system intégré.

  • Génération composants
  • Recherche UI
  • Inspiration design
  • Refinement visuel