Files
IdeA/agents-dev/README.md

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 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 <crate> (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: <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 ; 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).