# Agents de développement IdeA — Protocole commun > Ces agents servent à **développer l'IDE IdeA lui-même**. Ils ne sont pas la feature produit « agents IA » de l'application. > Référence produit/archi : [`../CONTEXT.md`](../CONTEXT.md) · [`../ARCHITECTURE.md`](../ARCHITECTURE.md). ## Composition de l'équipe Chaque **lot livrable** (L0…L11) est confié à un **binôme** : - un **agent de développement** (écrit le code), - un **agent de test** appairé (écrit et exécute les tests unitaires). Un fichier `Lx-*.md` par binôme décrit son périmètre, ses ports/adapters, ses dépendances et sa *definition of done*. | Lot | Fichier | Statut | |---|---|---| | L0 | [L0-core-domain.md](L0-core-domain.md) | ✅ **vert** (84 tests) | | L1 | [L1-ipc-bridge.md](L1-ipc-bridge.md) | ✅ **vert** (46 tests) | | L2 | [L2-projects.md](L2-projects.md) | ✅ **vert** (26 tests) | | L3 | [L3-terminals.md](L3-terminals.md) | ✅ **vert** (61 tests) | | L4 | [L4-layout.md](L4-layout.md) | ✅ **vert** (52 tests) | | L5 | [L5-ai-runtime.md](L5-ai-runtime.md) | ✅ **vert** (69 tests) | | L6 | [L6-agents.md](L6-agents.md) | ✅ **vert** (domaine+app+infra+IPC+front · activer un agent ouvre son terminal) | | LD | [LD-design-system.md](LD-design-system.md) | ✅ **vert** (Tailwind v4 + UI kit maison, thème sombre) | | L7 | [L7-templates.md](L7-templates.md) | ✅ **vert** (backend + IPC + front · drift & sync) | | L8 | [L8-git.md](L8-git.md) | ✅ **vert** (backend + IPC + front · git local libgit2) | | L9 | [L9-remote.md](L9-remote.md) | 🟡 **socle vert** (LocalHost + ConnectRemote, Liskov) · SSH/WSL gated à venir | | L10 | [L10-windows.md](L10-windows.md) | 🟡 **backend + IPC verts** (move-tab + `WebviewWindow`) · détach UI fait avec la refonte L11 | | L11 | [L11-packaging.md](L11-packaging.md) | 🟡 AppImage Linux **OK** · refonte disposition IDE en cours · Windows/CI à venir | | L12 | [L12-skills.md](L12-skills.md) | ⬜ **Skills** — entité + store + assignation + injection convention file + UI | | L13 | [L13-orchestrator.md](L13-orchestrator.md) | ⬜ **OrchestratorApi** — file-watcher, spawn depuis agent ou UI, même résultat | ## Cycle dev ↔ test (obligatoire, cf. CONTEXT §3) ``` 1. Archi valide le découpage et les contrats (ports/interfaces) du lot. 2. Agent DEV écrit le code de la feature. 3. Agent TEST écrit les tests unitaires + les exécute. 4a. Vert → feature validée, lot suivant. 4b. Rouge → rapport d'erreurs structuré → retour DEV → correction → retour étape 3. ``` **Règle d'or** : aucune feature n'est « terminée » tant que ses tests ne passent pas. Les résultats sont relayés fidèlement (sortie réelle des tests). ## Definition of Done (commune à tous les lots) - [ ] Code conforme à l'architecture hexagonale et SOLID (cf. ARCHITECTURE §1). - [ ] Le `domain` reste pur (aucune dépendance I/O qui y entre). - [ ] Les use cases ne parlent qu'aux **ports**, jamais aux adapters concrets. - [ ] Tests unitaires écrits et **verts** : `cargo test -p ` (Rust) et/ou `vitest` (front). - [ ] Domaine/application testés **sans I/O** (ports mockés : `mockall` ou fakes). - [ ] Pas de `new ConcreteAdapter` ailleurs que dans la composition root (`app-tauri`). - [ ] Pas de régression sur les lots déjà verts. - [ ] Code lisible, cohérent avec le style existant. ## Format du rapport d'erreurs (TEST → DEV) ``` LOT: Lx TEST EN ÉCHEC: ATTENDU: <…> OBTENU: <…> SORTIE: HYPOTHÈSE: ``` ## Conventions techniques - Rust : workspace multi-crate (`crates/domain`, `application`, `infrastructure`, `app-tauri`). - Erreurs typées par port/use case ; `async` via `async_trait` côté ports I/O. - Déterminisme des tests via ports `Clock`/`IdGenerator` (impl `Fixed`/`Seq` en test). - Front : `domain`/`ports` purs (Vitest), `features` testés avec gateways **mock** (RTL).