Registre des évolutions
Le registre garde tout ce qui mérite d'être retenu sans être traité tout de suite : un défaut croisé en passant, une idée, une amélioration, une découverte. Vous venez ici pour que l'agent note ces choses, les trie, puis décide avec vous de leur sort.
Ce que vous demandez à l'agent
« Note une anomalie : l'export plante quand le nom contient une apostrophe. »
effortless_evolution_addtype=Anomalietitle=L’export plante quand le nom contient une apostrophe
« Ajoute une idée d'amélioration : un mode sombre pour l'écran Release. »
effortless_evolution_addtype=Améliorationtitle=Mode sombre pour l’écran Release
« Passe l'évolution EVO-041 en criticité 1 et priorité 2. »
« Par quoi je reprends ? Montre-moi la file. »
effortless_evolution_queue« Transforme l'évolution EVO-041 en épic dans la zone Données. »
« L'évolution EVO-041 est traitée : résous-la, c'est réglé par le correctif de l'export. »
effortless_evolution_resolveevo_id=EVO-041note=Réglé par le correctif de l’export
« Retire EVO-041, on ne le fera pas : le client a changé d'avis. »
« EVO-041 ne peut démarrer qu'après la clôture de l'épic 12. »
Ce que fait l'agent
Noter une évolution
effortless_evolution_add consigne l'entrée. Le type est l'un de cinq marqueurs : Découverte, Fonctionnalité, Amélioration, Anomalie ou Test. L'agent passe aussi le title, et si besoin :
detail: le texte complet ;reporter: qui rapporte l'entrée ;criticalityetpriority: des entiers de 1 à 3, 1 étant le plus urgent. Sans eux, l'entrée reste non classée ;status:Planifiépar défaut. Pour un type donné (horsAnomalie), si le quota d'entrées actives est atteint, l'entrée est poséeEn Attente;born_marker: un fragment de texte stable qui nomme le défaut dans le code suivi par git. Pendant un chantier, le moteur vérifie alors si le défaut existait avant la story. S'il est né de ce travail, l'entrée est refusée : on le corrige dans le chantier.
La réponse porte une implication : des verbes suggérés. L'agent ne les déclenche jamais tout seul.
Lire et trier
effortless_evolution_list: lecture seule. Filtres facultatifs :status(Planifié,En cours,En Attente,Résolu,Retiré),query(recherche sans tenir compte de la casse dans l'identifiant, le titre et le détail) etform(fulloucompact).effortless_evolution_queue: lecture seule. La file des entrées actives, déjà triées par le moteur : d'abord celles dont la dépendance n'attend plus, puis criticité, priorité, ancienneté, identifiant. Elle répond à « par quoi reprendre ».limitborne la fenêtre (25 par défaut, 200 au plus) ; le total est rendu à côté.
Qualifier
effortless_evolution_edit: corrigecriticality,priorityetdetail. L'ancien texte du détail est conservé, jamais écrasé. Marche aussi sur une entrée déjà résolue ou retirée. Ne touche ni au titre, ni au statut, ni au type.effortless_evolution_requalify: fait passer une entrée deAnomalieàAmélioration, ou l'inverse, et rien d'autre. L'identifiant ne change pas.effortless_evolution_set_ready: pose ou lève le drapeau « prête à être promue » (ready).
Ordonner par dépendance
effortless_evolution_depends_on déclare qu'une évolution (evo_id) attend la clôture d'une autre évolution ou d'un épic (target). Elle passe derrière dans la file tant que la cible n'est pas close, sans être retirée ni décomptée. Sans target, la dépendance est levée.
Promouvoir en épic
effortless_evolution_graduate rattache l'évolution à un épic existant (epic_id) ou en crée un et l'active à partir d'une zone (avec title et description facultatifs). Il ne crée aucune story : c'est l'étape suivante (Piloter le travail).
Clore sans passer par un épic
effortless_evolution_resolve: résout l'évolution. Lanote, qui dit ce qui l'a réglée, est obligatoire.effortless_evolution_retire: l'écarte explicitement (statutRetiré). Lereasonest obligatoire. Marche même sur une évolution déjà promue en épic ; ne pose jamaisRésolu.
Mettre à niveau un ancien registre
Deux verbes servent une seule fois, sur un registre hérité d'une version antérieure. Ils sont rejouables sans effet de bord.
effortless_evolution_migrate_markers: convertit l'ancien champtype(finding, besoin, amélioration, refonte, chantier) vers l'un des cinq marqueurs. Aucun identifiant ne change.effortless_evolution_migrate_levels: convertit en entiers les niveaux écrits à la main. Sa réponse nomme chaque valeur qu'il n'a pas su convertir.
Ce que vous obtenez
- Le registre dans l'écran Backlog, racine Registre, onglet Registre des évolutions : identifiant, Type, titre, État, Criticité, Priorité, avec la recherche et les filtres Marqueur et Masquer Résolu/Retiré.
- Le même registre rendu en Markdown dans
blueprints/4-Evolutions.md. - Une évolution promue devient un épic visible dans le Backlog, sous Projet.
- À la clôture d'un épic, les évolutions qu'il laisse En cours sont nommées : elles ne se résolvent pas toutes seules.
Quand l'agent est refusé
| Situation | Ce que dit le refus | Ce qu'il faut faire |
|---|---|---|
Marqueur de type hors des cinq | cadrage:markerInvalid | Passer Découverte, Fonctionnalité, Amélioration, Anomalie ou Test. |
status hors nomenclature | cadrage:statusInvalid | Passer Planifié, En cours, En Attente, Résolu ou Retiré. |
criticality ou priority hors de 1 à 3 | cadrage:levelOutOfRange | Passer un entier de 1 à 3, ou omettre le champ pour laisser l'entrée non classée. |
| Anomalie déposée alors qu'elle est née du chantier en cours | cadrage:evolutionNeeDuChantier | La corriger dans le chantier : task_add ouvre la tâche qui la porte. |
| Identifiant d'évolution inconnu | cadrage:evolutionUnknown (ou cadrage:evolutionNotFound pour graduate) | Lire le registre avec evolution_list et reprendre le bon identifiant. |
form autre que full ou compact | cadrage:evolutionSearchFormInvalide | Passer full ou compact. |
evolution_edit sans aucun champ | cadrage:evolutionEditEmpty | Passer au moins criticality, priority ou detail. |
Résoudre, retirer ou marquer prête une évolution déjà Résolu ou Retiré | cadrage:evolutionAlreadyTerminal | Rien à lever : un statut terminal ne se modifie plus. Ouvrir une entrée neuve si le sujet revient. |
| Requalifier autre chose que Anomalie vers Amélioration, ou l'inverse | cadrage:requalifyNotAllowed | Retirer l'entrée, puis en ouvrir une du bon marqueur. |
| Retirer sans motif | cadrage:evolutionRetireReasonRequired | Passer reason. |
| Résoudre sans raison | cadrage:evolutionResolveNoteRequired | Passer note. |
| Dépendance qui ferme un cycle, ou d'une évolution envers elle-même | cadrage:dependencyCycle | Choisir une autre cible. |
| Dépendance vers une évolution inexistante | cadrage:dependencyUnknown | Vérifier l'identifiant avec evolution_list. |
| Cible de dépendance qui n'est ni une évolution ni un épic | cadrage:dependencyUnknownShape | Passer l'identifiant d'une évolution ou d'un épic. |