3.9 KiB
3.9 KiB
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·../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 | ✅ vert (84 tests) |
| L1 | L1-ipc-bridge.md | ✅ vert (46 tests) |
| L2 | L2-projects.md | ✅ vert (26 tests) |
| L3 | L3-terminals.md | ✅ vert (61 tests) |
| L4 | L4-layout.md | ✅ vert (52 tests) |
| L5 | L5-ai-runtime.md | ✅ vert (69 tests) |
| L6 | L6-agents.md | ✅ vert (domaine+app+infra+IPC+front · activer un agent ouvre son terminal) |
| LD | LD-design-system.md | ✅ vert (Tailwind v4 + UI kit maison, thème sombre) |
| L7 | L7-templates.md | ✅ vert (backend + IPC + front · drift & sync) |
| L8 | L8-git.md | ✅ vert (backend + IPC + front · git local libgit2) |
| L9 | L9-remote.md | 🟡 socle vert (LocalHost + ConnectRemote, Liskov) · SSH/WSL gated à venir |
| L10 | L10-windows.md | 🟡 backend + IPC verts (move-tab + WebviewWindow) · détach UI fait avec la refonte L11 |
| L11 | L11-packaging.md | 🟡 AppImage Linux OK · refonte disposition IDE en cours · Windows/CI à venir |
| L12 | L12-skills.md | ⬜ Skills — entité + store + assignation + injection convention file + UI |
| L13 | 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
domainreste 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 <crate>(Rust) et/ouvitest(front). - Domaine/application testés sans I/O (ports mockés :
mockallou fakes). - Pas de
new ConcreteAdapterailleurs 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: <nom du test>
ATTENDU: <…>
OBTENU: <…>
SORTIE: <extrait pertinent de cargo test / vitest>
HYPOTHÈSE: <cause probable, si identifiable>
Conventions techniques
- Rust : workspace multi-crate (
crates/domain,application,infrastructure,app-tauri). - Erreurs typées par port/use case ;
asyncviaasync_traitcôté ports I/O. - Déterminisme des tests via ports
Clock/IdGenerator(implFixed/Seqen test). - Front :
domain/portspurs (Vitest),featurestestés avec gateways mock (RTL).