Skip to content

Épics, stories et tâches ​

Créer, activer, faire avancer et clore le travail, phase OPALE comprise.

epic_activate ​

effortless_epic_activate — Stabilité : beta · projet

Active un épic existant sans passer par une story. Refuse par son nom un épic inconnu ou terminé et n'en crée aucun : pour cela, utiliser effortless_epic_start. Vide la story active, puisqu'un épic qu'on vient d'activer n'en a aucune en cours. Idempotent.

💬 Vous demandez à l’agent

« Réactive l'épic 012 comme épic de travail. »

→ L’agent appelleeffortless_epic_activate
  • epic_id = 012
NomTypeRequisDescription
epic_idstringouiId de l'epic EXISTANT à activer (aucune cible implicite). Obligatoire.

epic_complete ​

effortless_epic_complete — Stabilité : stable · projet

Clôture un epic : chacune de ses stories doit être Done ou remplacée (une story en cours ou suspendue bloque, refus nommé). La clôture ne résout aucune évolution : celles qui restent En cours sont nommées dans evolutions_maintained. Défaut : epic actif.

💬 Vous demandez à l’agent

« Clos l'épic 012, toutes ses stories sont terminées. »

→ L’agent appelleeffortless_epic_complete
  • epic_id = 012
NomTypeRequisDescription
epic_idstringnonId de l'epic à clôturer (défaut : epic actif).

epic_start ​

effortless_epic_start — Stabilité : stable · projet

Crée (et optionnellement active) un epic dans une zone fonctionnelle. Renvoie l'id.

💬 Vous demandez à l’agent

« Crée un épic « Refonte de l'export » dans la zone « rapports » et active-le. »

→ L’agent appelleeffortless_epic_start
  • zone = rapports
  • title = Refonte de l'export
  • activate = true
NomTypeRequisDescription
zonestringouiZone fonctionnelle de l'epic. Obligatoire.
titlestringouiTitre de l'epic. Obligatoire.
descriptionstringnonDescription de l'epic (optionnelle).
activatebooleannonSi true (défaut), l'epic créé devient l'epic actif et le pointeur de story active est vidé ; false se contente de le créer.

phase_eligibility ​

effortless_phase_eligibility — Stabilité : stable · projet

Vérifie l'éligibilité au passage à la phase OPALE suivante (lecture seule).

💬 Vous demandez à l’agent

« Suis-je éligible pour passer à la phase suivante ? »

→ L’agent appelleeffortless_phase_eligibility

Aucun paramètre.

phase_next ​

effortless_phase_next — Stabilité : stable · story

Fait avancer le projet à la phase OPALE suivante (horodatage serveur).

💬 Vous demandez à l’agent

« Passe le projet à la phase suivante. »

→ L’agent appelleeffortless_phase_next

Aucun paramètre.

story_activate ​

effortless_story_activate — Stabilité : stable · story

Active une story existante (statut Doing), en rouvrant son epic si besoin.

💬 Vous demandez à l’agent

« Reprends la story 003 de l'épic 012. »

→ L’agent appelleeffortless_story_activate
  • story_id = 003
  • epic_id = 012
NomTypeRequisDescription
story_idstringouiId de la story à activer. Obligatoire.
epic_idstringnonEpic parent de la story (défaut : résolu automatiquement).

story_archive ​

effortless_story_archive — Stabilité : beta · story

Archive une story déjà terminée et ferme la transaction de ses contrats d'acte : le dossier .effortless/crew_contracts/<épic>/<story>/ est détruit. Refuse une story qui n'est pas terminée. Idempotent. Par défaut : la story active.

💬 Vous demandez à l’agent

« Archive la story 003, elle est terminée. »

→ L’agent appelleeffortless_story_archive
  • story_id = 003
NomTypeRequisDescription
story_idstringnonId de la story à archiver ; elle doit être Done (défaut : story active).

story_complete ​

effortless_story_complete — Stabilité : stable · story

Clôture une story : elle doit avoir au moins une tâche, et toutes doivent être Done (sinon refus nommé). Idempotent. Défaut : story active.

💬 Vous demandez à l’agent

« Clos la story active, toutes ses tâches sont faites. »

→ L’agent appelleeffortless_story_complete
NomTypeRequisDescription
story_idstringnonId de la story à clôturer (défaut : story active).

story_items ​

effortless_story_items — Stabilité : stable · story

Liste les items (décisions, questions, tâches) d'une story donnée.

💬 Vous demandez à l’agent

« Montre-moi les décisions, questions et tâches de la story 003 de l'épic 012. »

→ L’agent appelleeffortless_story_items
  • epic_id = 012
  • story_id = 003
NomTypeRequisDescription
epic_idstringouiId de l'epic qui porte la story. Obligatoire.
story_idstringouiId de la story dont on liste les décisions, questions et tâches. Obligatoire.

story_objective ​

effortless_story_objective — Stabilité : beta · story

Pose ou corrige l'objectif d'une story (une ou deux phrases), montré par le backlog à la sélection. Chaîne vide : le retire.

💬 Vous demandez à l’agent

« Pose l'objectif de la story 003 : « Exporter les rapports mensuels en CSV sans perdre les accents. » »

→ L’agent appelleeffortless_story_objective
  • story_id = 003
  • objective = Exporter les rapports mensuels en CSV sans perdre les accents.
NomTypeRequisDescription
story_idstringouiId de la story visée. Obligatoire.
objectivestringouiNouvel objectif, une ou deux phrases ; une chaîne vide le retire. Obligatoire.
epic_idstringnonEpic parent de la story (défaut : résolu automatiquement).

story_pause ​

effortless_story_pause — Stabilité : beta · story

Suspend une story : pose le statut Suspendu, date la pause, exige un motif et libère le pointeur de story active. Ne touche à aucune tâche, la reprise retrouve l'atelier tel qu'il a été laissé. Refuse une story terminée et un motif vide. Idempotent. Reprise par effortless_story_activate.

💬 Vous demandez à l’agent

« Mets la story 003 en pause, motif : on attend la réponse du client sur le format. »

→ L’agent appelleeffortless_story_pause
  • story_id = 003
  • reason = On attend la réponse du client sur le format.
NomTypeRequisDescription
story_idstringnonId de la story à suspendre (défaut : story active).
reasonstringouiMotif de la suspension, consigné pour le prochain lecteur ; un motif vide est refusé. Obligatoire.

story_reloop ​

effortless_story_reloop — Stabilité : stable · story

Reboucle la story active vers une phase OPALE antérieure (rewind du cadrage).

💬 Vous demandez à l’agent

« Reboucle la story active vers la phase de cadrage, le besoin a changé. »

→ L’agent appelleeffortless_story_reloop
  • target_phase = P-cadrage
NomTypeRequisDescription
target_phasestringouiId de la phase OPALE vers laquelle rebobiner la story active ; elle doit précéder la phase courante (workflow par défaut : O-analyse, P-cadrage, A-specs, L-plan, E-execute). Obligatoire.

story_retire ​

effortless_story_retire — Stabilité : beta · story

Retire une story NON COMMENCÉE, avec son motif (obligatoire) : statut Retired, elle cesse de bloquer la clôture de l'épic et peut être archivée, mais n'est jamais comptée comme livrée. Refuse une story déjà close, un motif vide, et une story dont une tâche est déjà Done (story_complete ou story_supersede alors).

💬 Vous demandez à l’agent

« Retire la story 007 : la fonctionnalité est abandonnée. »

→ L’agent appelleeffortless_story_retire
  • story_id = 007
  • reason = fonctionnalité abandonnée
NomTypeRequisDescription
story_idstringouiStory à retirer (non commencée : aucune tâche Done).
reasonstringouiPourquoi elle ne sera pas faite — obligatoire.

story_start ​

effortless_story_start — Stabilité : stable · story

Crée (et optionnellement active) une story dans un epic. Renvoie l'id créé. kind : opale (défaut, avec cadrage) ou fix (correctif direct : aucun cadrage, ouverte d'emblée en phase d'exécution).

💬 Vous demandez à l’agent

« Crée une story « Corriger l'accent dans l'export » de type correctif dans l'épic 012 et active-la. »

→ L’agent appelleeffortless_story_start
  • epic_id = 012
  • title = Corriger l'accent dans l'export
  • kind = fix
  • activate = true
NomTypeRequisDescription
epic_idstringnonEpic qui reçoit la story (défaut : epic actif).
titlestringouiTitre de la story. Obligatoire.
slugstringnonSlug explicite (défaut : dérivé du titre).
zonestringnonZone fonctionnelle de la story (défaut : la zone de l'epic parent).
depends_onarray<string>nonIds dont dépend la story (défaut aucun).
activatebooleannonSi true, active immédiatement la story créée ; défaut false.
kindstringnonType de story : opale (défaut), ou fix pour un correctif direct qui saute les documents de cadrage et démarre en phase d'exécution.
taskless_reasonstringnonMotif pour lequel cette story n'aura AUCUNE tâche (cadrage pur, jalon, décision) ; le renseigner lève le drapeau taskless, et l'audit cesse de compter la story comme un oubli.
objectivestringnonObjectif de la story en une ou deux phrases, montré par le backlog quand on la sélectionne.

story_supersede ​

effortless_story_supersede — Stabilité : beta · story

Marque une story remplacée par une autre du même épic : elle ne bloque plus la clôture de l'épic, n'est pas comptée comme livrée.

💬 Vous demandez à l’agent

« La story 004 est remplacée par la 006 : marque-la comme remplacée. »

→ L’agent appelleeffortless_story_supersede
  • story_id = 004
  • by = 006
NomTypeRequisDescription
story_idstringouiId de la story remplacée, qui ne sera jamais livrée ; une story déjà close est refusée. Obligatoire.
bystringouiId de la story qui a porté le travail à sa place, dans le même epic. Obligatoire.

task_add ​

effortless_task_add — Stabilité : stable · story

Ajoute une tâche (statut Todo) à une story. Renvoie l'id (TSK-NN). stack : normes de développement qui s'appliquent à la tâche (refusé si une norme n'existe pas). Classement de routage optionnel dès la création (complexity, capability_tier, effort_level), relisible via effortless_task_route_show.

💬 Vous demandez à l’agent

« Ajoute une tâche « Écrire les tests du parseur » à la story active. »

→ L’agent appelleeffortless_task_add
  • title = Écrire les tests du parseur
NomTypeRequisDescription
titlestringouiTitre de la tâche. Obligatoire.
descriptionstringnonDescription de la tâche (défaut vide).
phasestringnonPhase OPALE de la tâche, sous forme d'id de phase du workflow (défaut : la phase courante de la story).
epic_idstringnonEpic visé (défaut : epic actif).
story_idstringnonStory visée (défaut : story active).
stackarray<string>nonNormes de développement qui s'appliquent à la tâche, nommées comme les dossiers de .ai/ndd/ (par exemple ["rust", "tauri"]) ; l'agent ne reçoit que celles-ci. Une norme inexistante est refusée.
complexitystringnonComplexité de la tâche : simple ou complex.
capability_tierstringnonPalier de capacité pour le routage : deep, standard ou light.
effort_levelstringnonEffort demandé pour le routage : low, medium ou high.

task_update ​

effortless_task_update — Stabilité : stable · story

Corrige le statut (Todo / Doing / Done), le titre, la description et/ou le résultat d'une tâche. Au moins un champ est exigé. Passer à Doing est refusé tant que le cadrage de la story est inachevé ou qu'une tâche dont celle-ci dépend n'est pas Done.

💬 Vous demandez à l’agent

« Passe la tâche TSK-02 de la story 003 de l'épic 012 à Doing. »

→ L’agent appelleeffortless_task_update
  • epic_id = 012
  • story_id = 003
  • task_id = TSK-02
  • status = Doing
NomTypeRequisDescription
epic_idstringouiId de l'epic qui porte la tâche. Obligatoire.
story_idstringouiId de la story qui porte la tâche. Obligatoire.
task_idstringouiId de la tâche à modifier (par exemple TSK-01). Obligatoire.
statusstringnonNouveau statut : Todo, Doing ou Done ; au moins un champ à modifier est requis.
titlestringnonNouveau titre de la tâche.
descriptionstringnonNouvelle description (l'objectif de la tâche) ; une chaîne vide la retire.
resultstringnonCe que la tâche a produit, constaté (fichiers, verbes, mesures) ; une chaîne vide le retire.

Effortless — ArboRithm