Choisir son organisation
Avant de créer ou de reprendre un projet, deux choix déterminent la façon dont Effortless travaille avec vous : comment l'agent avance (le mode de travail) et où vit le code (l'organisation en modules). Les deux se changent ensuite, mais bien les poser au départ évite des détours.
Un troisième point compte autant : où vous lancez votre agent. La meilleure expérience vient d'un agent en ligne de commande ouvert à la racine du projet — voir Travailler au mieux.
Le mode de travail
| Mode | L'agent | Le moteur | Pour qui |
|---|---|---|---|
| Full | avance seul, sans validation intermédiaire | n'empêche rien | vous connaissez Effortless et faites confiance à votre agent |
| Semi-auto | propose ; vous validez les jalons clés | désactive ses outils d'exécution : livraison, regroupement du code, boucle autonome, boucle équipe | vous voulez garder la main sur ce qui s'exécute |
| Tutoré | avance pas à pas, explique et fait confirmer chaque étape | n'empêche rien : c'est une consigne pour l'agent | vous découvrez Effortless ou la méthode OPALE |
Un projet créé ou repris démarre en Full. Le mode se change à tout moment dans les Réglages du projet, ou par l'agent avec effortless_mode_set.
Semi-auto et reprise
En semi-auto, l'étape Regrouper le code de la reprise d'un projet existant est refusée : elle déplace des fichiers. Faites la reprise en Full ou en Tutoré, puis passez en semi-auto.
L'organisation du code
Effortless sépare le pilotage du code. Le pilotage (effortless.json, .effortless/, blueprints/) vit toujours à la racine du projet. Le code se déclare en modules (des « stacks ») : chacun a un identifiant, un emplacement, ses langages et ses normes de développement. L'écran Modules les montre tous.
Un seul dépôt, le code à la racine
Le cas le plus simple. Sans déclaration, le projet a un module implicite, default, qui couvre la racine. Rien à faire.
Plusieurs modules dans le projet
Un dépôt unique qui porte plusieurs parties — une application, une API, une documentation. Chaque module vit dans codebase/<module>/. Vous le déclarez depuis l'assistant de création (étape Stack), depuis Préférences › Modèle de stack, ou par l'agent avec effortless_stack_add. La reprise d'un projet existant range le code de la racine dans codebase/<module>/.
Un module externe, avec son propre dépôt
Le code d'un module vit hors du projet, dans un autre dépôt git que vous développez aussi. Déclarez-le avec son chemin et git: true :
« Déclare le module api, dont le code est dans ../facturation-api, avec son propre dépôt git. »
Effortless suit alors ce dépôt comme celui du projet : la dérive y est lue, et le hook anti-dérive y est posé aussi quand vous l'installez.
Des sources partagées, en marge
Le code d'un module vit dans un dépôt que vous partagez — une bibliothèque commune à plusieurs de vos projets, un dépôt tiers — et que vous ne voulez pas instrumenter. Déclarez-le avec son chemin, sans git: true :
« Déclare le module socle, dont le code partagé est dans ../socle-commun, sans le suivre. »
Effortless travaille alors en marge de ces sources : il n'y pose aucun hook et n'y commite rien. En contrepartie, la dérive n'y est pas surveillée. effortless_stack_list marque ce module NON SUIVIE : c'est voulu, l'étiquette rappelle simplement ce choix.
Le hook anti-dérive : quand, et où
Le hook pre-commit anti-dérive refuse un commit de code quand aucune tâche n'est en cours. Il n'est jamais posé d'office : ni à la création, ni à la reprise.
- Vous l'installez depuis l'écran Dérive (Installer le hook pre-commit) ou par l'agent avec
effortless_drift_hook_install. - Il est posé sur le dépôt du projet, et sur chaque module déclaré avec
git: true. - Il n'est jamais posé sur des sources partagées (un module externe sans
git: true). - Il ne remplace jamais un hook pre-commit qui n'est pas d'Effortless : l'installation est refusée, et le refus nomme le fichier.
Quel choix pour quel cas
| Votre situation | Mode | Organisation |
|---|---|---|
| Vous découvrez Effortless sur un petit projet | Tutoré | un seul dépôt |
| Vous voulez valider ce qui s'exécute | Semi-auto | selon le projet |
| Un dépôt avec une application, une API, une documentation | Full ou Semi-auto | modules dans codebase/ |
| Le code est réparti dans plusieurs dépôts que vous développez | Full ou Semi-auto | modules externes avec git: true |
| Vous vous appuyez sur une bibliothèque commune que vous ne devez pas modifier ni instrumenter | au choix | sources partagées (sans git: true) |
| Un dépôt existant dont la structure doit rester telle quelle | au choix | créez le projet sans reprise, puis déclarez les modules là où ils sont, avec path |