Agents for developpement added + frontend add + backend added. Git viewer created + agent and template creator + layout and project creator
70 lines
3.6 KiB
Markdown
70 lines
3.6 KiB
Markdown
# 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 |
|
|
|
|
## 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).
|