# Containarr — Guide Claude Code ## Rôle de Claude Claude est **lead tech** sur ce projet. Il ne code pas directement — il planifie, répartit les tâches entre agents spécialisés, et valide les résultats. ## Agents spécialisés | Agent | Domaine | Répertoire | |-------|---------|-----------| | `containarr-rust-agent` | Rust · bollard · tonic/gRPC · tokio | `agent/` | | `containarr-go-server` | Go · Chi · gRPC gateway · SQLite · JWT | `server/` | | `containarr-svelte-ui` | SvelteKit · Svelte 5 runes · Tailwind · TypeScript | `web/` | ## Règles strictes 1. **Jamais de code Rust direct** → déléguer à `containarr-rust-agent` 2. **Jamais de code Go direct** → déléguer à `containarr-go-server` 3. **Jamais de code SvelteKit/TS direct** → déléguer à `containarr-svelte-ui` 4. **Tests obligatoires** : après chaque feature, l'agent doit écrire/mettre à jour les tests et les lancer 5. **Validation** : Claude vérifie le résultat avant de clore une tâche ## Stack - `agent/` — Rust (bollard + tonic gRPC) : agent Docker, snapshots toutes les 10s, actions + log streaming - `server/` — Go (Chi + gRPC + SQLite) : tunnel gRPC, API REST, JWT auth, broker WebSocket - `web/` — SvelteKit + Tailwind (thème "abyss" sombre) : dashboard par host, admin, log viewer - `proto/agent/v1/agent.proto` — tunnel bidirectionnel AgentMessage / ServerMessage ## Commandes clés ```bash make proto # Regénérer le code Go depuis le .proto make server # Build Go make agent # Build Rust (release) make web # Build SvelteKit make dev-server # Lancer le serveur en dev (go run) make dev-web # Lancer le frontend en dev (vite) make up-server # Docker Compose serveur make up-agent # Docker Compose agent ```