Skip to content

Boucle équipe et routage ​

La boucle analyste / développeur / QA, le routage des tâches vers les modèles, les profils de fournisseurs.

crew_init ​

effortless_crew_init — Stabilité : beta · projet

Démarre la boucle ÉQUIPE : trois rôles agents (analyste, développeur senior, ingénieur QA) se relaient sur le pipe OPALE, l'agent appelant orchestre. Utiliser quand l'utilisateur demande de « lancer la boucle équipe », « faire tourner l'équipe sur l'épic courante » ou « ouvrir un atelier d'évolutions ». En périmètre all, la cascade entre dans l'atelier dès qu'il n'y a plus d'épic à livrer et gradue un axe en épic suivant, jusqu'au plafond max_epics. Gaté (semi-auto).

💬 Vous demandez à l’agent

« Lance la boucle équipe sur l'épic courante avec l'objectif « Livrer l'export CSV », avec 6 tours maximum. »

→ L’agent appelleeffortless_crew_init
  • goal = Livrer l'export CSV
  • scope = epic
  • max_rounds = 6
NomTypeRequisDescription
goalstringouiObjectif lisible de la boucle, repris dans chaque prompt de rôle. Obligatoire.
scopestringnonPérimètre de la cascade : story, epic, all ou workshop (défaut epic).
max_roundsintegernonNombre maximum d'actes ; 0 = illimité (défaut 100).
max_epicsintegernonNombre maximum d'epics traités ; 0 = illimité (défaut 3).
barobjectnonBarre mécanique : objet associant un nom (test, lint, typecheck, build) à une commande shell, ou à un objet avec command et éventuellement cwd ou stack ; au moins une commande est nécessaire, sinon l'initialisation est refusée.
forcebooleannonSi true, écrase une boucle déjà initialisée (défaut false).

crew_report ​

effortless_crew_report — Stabilité : beta · projet

Remonte le compte-rendu de l'acte exécuté par un rôle, fait avancer la boucle équipe et rend directement l'acte suivant. Le rôle rapporté doit être celui que l'étape attend, sinon le rapport est refusé sans rien consigner. payload_path est une porte de sortie pour une charge trop volumineuse pour payload — jamais la voie par défaut, et mutuellement exclusif avec payload (les deux ensemble sont refusés). ⚠️ Cet appel peut être long : le moteur mesure lui-même la barre mécanique (jusqu'à 4 commandes, 600 s chacune) avant de rendre la main — prévoir un délai d'appel généreux côté client. Gaté (semi-auto).

💬 Vous demandez à l’agent

« Voici le compte-rendu du développeur : verdict « done », les tests du parseur passent. Remonte-le à la boucle équipe. »

→ L’agent appelleeffortless_crew_report
  • role = developer
  • verdict = done
  • summary = Les tests du parseur passent.
NomTypeRequisDescription
rolestringouiRôle qui rapporte : analyst, developer ou qa ; ce doit être le rôle attendu par la boucle. Obligatoire.
verdictstringouiVerdict : go ou no-go pour qa, done pour analyst et developer. Obligatoire.
summarystringouiRésumé compact de l'acte, versé au ledger. Obligatoire.
payloadobjectnonSortie structurée du rôle sous forme d'objet JSON (forme libre, propre à chaque rôle) ; exclusif avec payload_path.
payload_pathstringnonChemin d'un fichier JSON chargé comme payload, pour une charge trop volumineuse pour tenir en ligne (4 Mio maximum) ; relatif au projet, ou absolu sous celui-ci ; exclusif avec payload.

crew_status ​

effortless_crew_status — Stabilité : beta · projet

État de la boucle équipe en lecture seule : étape courante, rôle attendu, pointeur epic/story/tâche, compteurs, plafonds, raison de fin (finished_reason : scope_covered, epics_exhausted, rounds_exhausted — null tant que la boucle tourne) et ledger horodaté des actes. ⚠️ Le ledger n'est rendu qu'aux derniers actes par défaut (les plus anciens sont annoncés dans ledger_omitted) : passer full=true pour la trace complète. N'avance rien, n'écrit rien.

💬 Vous demandez à l’agent

« Où en est la boucle équipe ? Quelle étape et quel rôle sont attendus ? »

→ L’agent appelleeffortless_crew_status
NomTypeRequisDescription
fullbooleannonSi true, rend le ledger complet et non les derniers actes seulement (défaut false ; les actes omis sont annoncés dans ledger_omitted).

crew_step ​

effortless_crew_step — Stabilité : beta · projet

Rend le contrat de l'acte suivant de la boucle équipe : quel rôle doit agir, sur quel modèle et quel effort, et quelle sortie attendue. Le texte du contrat ne voyage PAS dans la réponse : prompt_path en donne la référence, un chemin relatif au projet vers un objet JSON à une clé prompt, à lire sur disque avant de lancer le sous-agent. document (optionnel) cible un document de cadrage précis. N'avance PAS l'état — appelé deux fois, rend deux fois la même chose. ⚠️ Cet appel est habituellement instantané, mais il peut être long à l'étape qa : si les faits de barre en cache ne correspondent pas à l'acte courant, le moteur la mesure à la volée (jusqu'à 4 commandes, 600 s chacune). Prévoir un délai d'appel généreux côté client. Gaté (semi-auto).

💬 Vous demandez à l’agent

« Fais avancer la boucle équipe d'une étape : donne-moi le contrat de l'acte suivant. »

→ L’agent appelleeffortless_crew_step
NomTypeRequisDescription
documentstringnonId du document de cadrage OPALE visé par ce contrat, pour un round parallèle à plusieurs documents (défaut : tous les documents attendus de la phase, dans un seul bloc).

loop_init ​

effortless_loop_init — Stabilité : stable · projet

Initialise la boucle de build autonome (objectif global). Outil d'exécution gaté (désactivé en semi-auto).

💬 Vous demandez à l’agent

« Initialise la boucle de build autonome avec l'objectif « livrer le module site en version 1.4.1 ». »

→ L’agent appelleeffortless_loop_init
  • goal = livrer le module site en version 1.4.1
NomTypeRequisDescription
goalstringouiObjectif global de la boucle autonome. Obligatoire.

loop_step ​

effortless_loop_step — Stabilité : stable · projet

Fait avancer la machine à états de la boucle autonome (Plan→Implémentation→Recette→Delivery). Lance test_command à la recette. Gaté (semi-auto).

💬 Vous demandez à l’agent

« Fais avancer la boucle autonome d'une étape, et lance `pnpm test` à la recette. »

→ L’agent appelleeffortless_loop_step
  • test_command = pnpm test
NomTypeRequisDescription
test_commandstringnonCommande shell jouée à l'étape de recette (défaut : le cycle de test du modèle de la première stack déclarée ; requise si aucune stack n'expose de cycle de test).

provider_presets_list ​

effortless_provider_presets_list — Stabilité : stable · sans projet

Liste les presets provider (embarqués + custom). Lecture seule.

💬 Vous demandez à l’agent

« Quels presets de fournisseur sont disponibles ? »

Aucun paramètre.

provider_profile_init ​

effortless_provider_profile_init — Stabilité : stable · sans projet

(Re)génère le profil provider (matrice tier×effort) depuis un preset de FAMILLE, portée global|project. N'écrase pas sans force=true. Renvoie un conseil de bonnes pratiques.

💬 Vous demandez à l’agent

« Génère mon profil de fournisseur global à partir du preset de la famille « anthropic ». »

→ L’agent appelleeffortless_provider_profile_init
  • family = anthropic
  • scope = global
NomTypeRequisDescription
familystringouiFamille de preset : claude, codex, gemini, mistral, ou un nom libre. Obligatoire.
scopestringnonPortée du profil : global (défaut) ou project.
forcebooleannonSi true, écrase un profil existant de cette portée ; défaut false, l'appel est refusé.

provider_profile_show ​

effortless_provider_profile_show — Stabilité : stable · sans projet

Profil provider (LLM) actif de l'utilisateur (~/.effortless). Lecture seule.

💬 Vous demandez à l’agent

« Montre-moi mon profil de fournisseur LLM actif. »

Aucun paramètre.

task_classify ​

effortless_task_classify — Stabilité : stable · story

Classe une tâche de la story active sur 1+ axes de routage (complexity, capability_tier, effort_level). Au moins un axe requis ; renvoie la reco de routage résolue.

💬 Vous demandez à l’agent

« Classe la tâche TSK-03 en complexité élevée, avec un modèle de palier haut. »

→ L’agent appelleeffortless_task_classify
  • task_id = TSK-03
  • complexity = complex
  • capability_tier = deep
NomTypeRequisDescription
task_idstringouiId de la tâche à classer (par exemple TSK-01). Obligatoire.
complexitystringnonAxe complexité : simple ou complex ; au moins un axe est requis.
capability_tierstringnonAxe palier de capacité : deep, standard ou light ; absent, il reste inchangé.
effort_levelstringnonAxe niveau d'effort : low, medium ou high ; absent, il reste inchangé.

task_route_show ​

effortless_task_route_show — Stabilité : stable · story

Reco de routage résolue d'une tâche : tier/effort → capacité concrète (modèle + effort natif) via le profil provider (projet > global). Suggestion, jamais imposée.

💬 Vous demandez à l’agent

« Quel modèle et quel effort recommandes-tu pour la tâche TSK-03 ? »

→ L’agent appelleeffortless_task_route_show
  • task_id = TSK-03
NomTypeRequisDescription
task_idstringouiId de la tâche dont afficher la recommandation de routage (par exemple TSK-01). Obligatoire.

Effortless — ArboRithm