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).
« Lance la boucle équipe sur l'épic courante avec l'objectif « Livrer l'export CSV », avec 6 tours maximum. »
| Nom | Type | Requis | Description |
|---|---|---|---|
goal | string | oui | Objectif lisible de la boucle, repris dans chaque prompt de rôle. Obligatoire. |
scope | string | non | Périmètre de la cascade : story, epic, all ou workshop (défaut epic). |
max_rounds | integer | non | Nombre maximum d'actes ; 0 = illimité (défaut 100). |
max_epics | integer | non | Nombre maximum d'epics traités ; 0 = illimité (défaut 3). |
bar | object | non | Barre 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. |
force | boolean | non | Si 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).
« Voici le compte-rendu du développeur : verdict « done », les tests du parseur passent. Remonte-le à la boucle équipe. »
effortless_crew_reportrole=developerverdict=donesummary=Les tests du parseur passent.
| Nom | Type | Requis | Description |
|---|---|---|---|
role | string | oui | Rôle qui rapporte : analyst, developer ou qa ; ce doit être le rôle attendu par la boucle. Obligatoire. |
verdict | string | oui | Verdict : go ou no-go pour qa, done pour analyst et developer. Obligatoire. |
summary | string | oui | Résumé compact de l'acte, versé au ledger. Obligatoire. |
payload | object | non | Sortie structurée du rôle sous forme d'objet JSON (forme libre, propre à chaque rôle) ; exclusif avec payload_path. |
payload_path | string | non | Chemin 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.
« Où en est la boucle équipe ? Quelle étape et quel rôle sont attendus ? »
effortless_crew_status| Nom | Type | Requis | Description |
|---|---|---|---|
full | boolean | non | Si 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).
« Fais avancer la boucle équipe d'une étape : donne-moi le contrat de l'acte suivant. »
effortless_crew_step| Nom | Type | Requis | Description |
|---|---|---|---|
document | string | non | Id 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).
« Initialise la boucle de build autonome avec l'objectif « livrer le module site en version 1.4.1 ». »
| Nom | Type | Requis | Description |
|---|---|---|---|
goal | string | oui | Objectif 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).
« Fais avancer la boucle autonome d'une étape, et lance `pnpm test` à la recette. »
| Nom | Type | Requis | Description |
|---|---|---|---|
test_command | string | non | Commande 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.
« Quels presets de fournisseur sont disponibles ? »
effortless_provider_presets_listAucun 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.
« Génère mon profil de fournisseur global à partir du preset de la famille « anthropic ». »
| Nom | Type | Requis | Description |
|---|---|---|---|
family | string | oui | Famille de preset : claude, codex, gemini, mistral, ou un nom libre. Obligatoire. |
scope | string | non | Portée du profil : global (défaut) ou project. |
force | boolean | non | Si 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.
« Montre-moi mon profil de fournisseur LLM actif. »
effortless_provider_profile_showAucun 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.
« Classe la tâche TSK-03 en complexité élevée, avec un modèle de palier haut. »
| Nom | Type | Requis | Description |
|---|---|---|---|
task_id | string | oui | Id de la tâche à classer (par exemple TSK-01). Obligatoire. |
complexity | string | non | Axe complexité : simple ou complex ; au moins un axe est requis. |
capability_tier | string | non | Axe palier de capacité : deep, standard ou light ; absent, il reste inchangé. |
effort_level | string | non | Axe 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.
« Quel modèle et quel effort recommandes-tu pour la tâche TSK-03 ? »
| Nom | Type | Requis | Description |
|---|---|---|---|
task_id | string | oui | Id de la tâche dont afficher la recommandation de routage (par exemple TSK-01). Obligatoire. |