Piloter le travail
Les épics, leurs stories et leurs tâches forment l'arbre du travail. Vous venez ici pour demander à l'agent de le créer, de le faire avancer, de le suspendre ou de le clore, sans toucher vous-même aux fichiers.
Ce que vous demandez à l'agent
« Ouvre un épic « Export des données » dans la zone Données. »
« Crée une story « Export CSV » dans cet épic et active-la. »
« Ajoute trois tâches à la story : le format, le bouton, les tests. »
« Passe la tâche TSK-02 de la story 003 de l'épic 012 en cours. »
« J'en ai assez pour aujourd'hui : mets la story en pause, motif : on attend la réponse du client. »
« Reprends la story 003, celle d'hier. »
« Cette story est faite : clos-la, puis clos l'épic. »
effortless_story_complete« La story 004 a été remplacée par la 006 : marque-la comme telle. »
« Retire la story 007 : la fonctionnalité est abandonnée. »
Ce que fait l'agent
Créer et activer un épic
effortless_epic_start: crée l'épic dans unezone, avec untitleet unedescriptionfacultative. Par défaut (activateàtrue), il devient l'épic actif ;activate: falsese contente de le créer.effortless_epic_activate: réactive un épic existant (epic_id) sans passer par une story. Il vide la story active. Rejoué, il ne change rien.
Créer et activer une story
effortless_story_start: crée la story dans l'épic actif ou dansepic_id. Paramètres utiles :title,slug,zone,depends_on,objective,activate.kindvautopale(par défaut, avec cadrage) oufix(correctif direct, voir Cadrer en OPALE).taskless_reasondit pourquoi une story n'aura aucune tâche (cadrage pur, jalon, décision).effortless_story_activate: active une story existante (story_id) et rouvre son épic si besoin.effortless_story_objective: pose ou corrige l'objectif de la story, en une ou deux phrases. Une chaîne vide le retire.
Ajouter des tâches
effortless_task_add: ajoute une tâche Todo à la story active (ou àstory_id). L'agent peut passerdescription,phase,stack(les normes de développement qui s'y appliquent, une norme inexistante est refusée) et un classement de routage facultatif (complexity,capability_tier,effort_level). Le moteur renvoie l'identifiantTSK-NN.effortless_story_items: relit les décisions, les questions et les tâches d'une story.
Faire avancer une tâche
effortless_task_update change le statut d'une tâche (Todo, Doing, Done, affichés À faire, En cours, Terminée dans l'application), son titre, sa description et son résultat. Il exige au moins un champ.
- Passer à En cours est refusé tant que le cadrage de la story n'est pas rendu, ou tant qu'une tâche dont celle-ci dépend n'est pas terminée.
- En terminant une tâche, l'agent renseigne
result: ce qu'elle a produit, constaté (fichiers, verbes, mesures). Ce texte s'affiche sur la page de la tâche dans le Backlog.
Suspendre, reprendre, reboucler
effortless_story_pause: suspend la story (active par défaut), date la pause et libère la story active. Lereasonest obligatoire. Aucune tâche n'est touchée.effortless_story_activatela reprend, et l'atelier se retrouve tel qu'il a été laissé.effortless_story_reloop: renvoie la story active vers une phase OPALE antérieure (target_phase).
Clore, remplacer, retirer, archiver
effortless_story_complete: clôt la story. Elle doit avoir au moins une tâche, et toutes doivent être terminées.effortless_story_supersede: déclare que la story (story_id) est remplacée par une autre du même épic (by). Elle ne bloque plus la clôture de l'épic et n'est pas comptée comme livrée.effortless_story_retire: retire une story non commencée qui ne sera pas faite, avec son motif (reason, obligatoire). Elle ne bloque plus la clôture de l'épic, peut être archivée, et n'est jamais comptée comme livrée ; le registre affiche « retirée : » suivi du motif. Le verbe refuse une story dont une tâche est déjà terminée : clôturez-la, ou déclarez-la remplacée.effortless_story_archive: archive une story déjà terminée, remplacée ou retirée. Le dossier.effortless/crew_contracts/<épic>/<story>/de ses contrats est détruit. Rejoué, il ne change rien.effortless_epic_complete: clôt l'épic (actif par défaut). Chaque story doit être terminée, remplacée ou retirée. La clôture ne résout aucune évolution du registre : celles qui restent En cours sont nommées dans la réponse (evolutions_maintained), et l'agent vous demande ce qu'on en fait (voir Registre des évolutions).
Ce que vous obtenez
- L'arbre du travail dans l'écran Backlog : épics, stories, tâches, avec leur phase et leur état. La page d'une story montre son objectif ; celle d'une tâche, ce qu'elle a produit.
- La tâche en cours et le compteur de tâches de la story sur le Tableau de bord et dans l'écran Tâches.
- Les mêmes informations rendues en Markdown dans
blueprints/(par exempleblueprints/3-Backlog.md).
Quand l'agent est refusé
| Situation | Ce que dit le refus | Ce qu'il faut faire |
|---|---|---|
Aucune story active et aucun story_id passé | pilotage:noActiveStory | Passer epic_id et story_id, ou activer une story. |
| Activer un épic sans le nommer | pilotage:epicActivateNeedsId | Nommer l'épic ; epic_start en crée un neuf. |
| Activer un épic inconnu | pilotage:epicUnknownCannotActivate | Utiliser epic_start pour en créer un, ou status pour voir ceux qui existent. |
| Activer un épic déjà clos | pilotage:epicDoneCannotActivate | Activer une de ses stories : cela rouvre l'épic. |
| Clore une story sans aucune tâche | pilotage:storyNoTask | Déclarer le travail avec task_add avant de clore. |
| Clore une story dont des tâches ne sont pas terminées | pilotage:storyTasksNotDone | Terminer les tâches. |
| Clore un épic dont des stories ne sont pas terminées | pilotage:epicStoriesNotDone | Clore chaque story nommée par le refus, ou la déclarer remplacée. |
| Suspendre une story sans motif | pilotage:storyPauseNeedsReason | Passer reason. |
| Suspendre une story déjà terminée | pilotage:storyDoneCannotPause | La rouvrir avec story_activate si le travail reprend. |
| Story inconnue | pilotage:storyUnknown | Relire les stories existantes (story_items, project_tree). |
| Remplacer une story par elle-même ou par une story d'un autre épic | pilotage:supersederInvalid | Passer dans by une autre story du même épic. |
| Remplacer une story déjà close | pilotage:storyAlreadyClosed | Rien : une story close le reste. |
| Archiver une story qui n'est pas terminée | pilotage:storyNotDoneCannotArchive | La clore d'abord. |
| Mettre à jour une tâche sans aucun champ | pilotage:taskUpdateEmpty | Passer au moins status, title, description ou result. |
| Tâche à En cours pendant que le cadrage est inachevé | cadrage:phaseIncomplete | Rendre les documents manquants, ou ouvrir un correctif direct (kind: "fix"). |
| Tâche à En cours alors qu'une tâche dont elle dépend n'est pas terminée | refus sans code, qui nomme la tâche dépendante | Terminer d'abord la tâche dépendante. |
Norme de développement inexistante dans stack | pilotage:nddUnknown | Passer le nom d'une norme présente dans .ai/ndd/. |