Skip to content

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 ​

ModeL'agentLe moteurPour qui
Fullavance seul, sans validation intermédiairen'empêche rienvous connaissez Effortless et faites confiance à votre agent
Semi-autopropose ; vous validez les jalons clésdésactive ses outils d'exécution : livraison, regroupement du code, boucle autonome, boucle équipevous voulez garder la main sur ce qui s'exécute
Tutoréavance pas à pas, explique et fait confirmer chaque étapen'empêche rien : c'est une consigne pour l'agentvous 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 :

💬 Vous demandez à l’agent

« Déclare le module api, dont le code est dans ../facturation-api, avec son propre dépôt git. »

→ L’agent appelleeffortless_stack_add
  • id = api
  • path = ../facturation-api
  • git = true

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 :

💬 Vous demandez à l’agent

« Déclare le module socle, dont le code partagé est dans ../socle-commun, sans le suivre. »

→ L’agent appelleeffortless_stack_add
  • id = socle
  • path = ../socle-commun

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 situationModeOrganisation
Vous découvrez Effortless sur un petit projetTutoréun seul dépôt
Vous voulez valider ce qui s'exécuteSemi-autoselon le projet
Un dépôt avec une application, une API, une documentationFull ou Semi-automodules dans codebase/
Le code est réparti dans plusieurs dépôts que vous développezFull ou Semi-automodules externes avec git: true
Vous vous appuyez sur une bibliothèque commune que vous ne devez pas modifier ni instrumenterau choixsources partagées (sans git: true)
Un dépôt existant dont la structure doit rester telle quelleau choixcréez le projet sans reprise, puis déclarez les modules là où ils sont, avec path

Effortless — ArboRithm