À propos du projet
Genie est une couche de planification et d'exécution en ligne de commande pour les agents de codage IA. L'argument est « des souhaits entrants, des PR sortants » : vous décrivez ce que vous voulez en une phrase, et Genie vous interroge pour établir un plan, dépêche des agents pour le construire en parallèle, examine le résultat selon les critères d'acceptation, puis restitue un élément prêt à fusionner.
L'architecture est délibérément minimale. Il n'y a aucun démon ni Postgres : le cœur est un ensemble de skills, des documents en markdown brut stockés dans git, et un unique fichier SQLite par dépôt (`.genie/genie.db`) sur le moteur intégré de Bun. Une commande ouvre la base de données, exécute une transaction et se termine. Le bundle est décrit comme pesant environ 0,9 Mo avec quatre dépendances d'exécution, et `nats` n'est initialisé qu'au démarrage du runner Omni.
L'installation est un script shell transmis via curl. Les publications sont signées cosign avec une provenance SLSA, et l'installeur vérifie le binaire via `gh attestation verify`, avec `cosign verify-blob` comme solution de repli. Trois surfaces sont livrées : le binaire signé, les skills (fournis par le canal skills.sh, ou via `npx skills add automagik-dev/genie`), et un plugin Orca optionnel enregistré côté Orca.
Le flux de travail est piloté par les skills : `brainstorm` (d'une idée à DESIGN.md plus une revue de conception), `wish` (d'une conception à un WISH.md cadré avec des groupes d'exécution), `review` (revue de plan obligatoire), `work` (des sous-agents de rôle natifs construisent chaque groupe approuvé), et une dernière revue d'implémentation indépendante renvoyant SHIP, FIX-FIRST ou BLOCKED. Les skills sont conçus de façon neutre vis-à-vis du runtime et installés dans chaque répertoire de skills d'agent détecté (Claude Code, le répertoire partagé `~/.agents/skills` utilisé par Codex et d'autres, Goose, Windsurf).
L'état et les documents sont séparés : les souhaits, conceptions et brainstorms sont en markdown sous `.genie/`, tandis que les tâches, tableaux, arêtes de dépendance et état d'exécution résident dans SQLite. Les worktrees liés d'un dépôt partagent une seule base de données résolue à partir du répertoire commun git, les tâches sont donc visibles d'un worktree à l'autre sans étape de synchronisation. Une commande `genie context` émet un JSON versionné décrivant le contexte de lancement (branche, SHA de base, tâches prêtes).
Genie dispose de deux modes de cycle de vie. `standalone` est le mode par défaut ; `genie setup --orchestration-mode orca` fait d'Orca la seule autorité de cycle de vie après vérification d'un runtime compatible, et dans ce mode Genie refuse les lectures/écritures locales de cycle de vie plutôt que de basculer silencieusement en repli. L'ancien serveur MCP et la passerelle UI sont retirés, `genie mcp` et `genie ui-bridge` se terminant avec un code non nul et des diagnostics stables. Une passerelle optionnelle `genie omni` connecte un agent en cours d'exécution à WhatsApp via un hub Omni sur NATS pour des approbations à distance et des one-shots entrants.
Détails opérationnels notables : `genie doctor` signale l'état de l'installation et la présence des skills par agent ; `genie update` gère le retrait des vestiges de l'ère des plugins en sauvegardant d'abord, en préservant les actifs modifiés ou ambigus ; `genie uninstall` ne supprime que les artefacts dont il peut prouver qu'ils appartiennent à Genie. Le README précise explicitement que l'aller-retour WhatsApp en direct est une étape d'assurance qualité manuelle documentée, tandis que le comportement d'Omni est vérifié face à un transport factice dans la suite de tests.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.