Cadrer en OPALE
Une story OPALE se prépare avant de se coder : analyse, cadrage, spécifications, plan, puis exécution. Vous venez ici quand vous voulez poser le problème avec votre agent, noter les décisions et les questions, ou, au contraire, corriger un défaut sans cérémonie.
Ce que vous demandez à l'agent
« Crée les documents de cadrage de la story 003 de l'épic 012. »
« Note, sur la story 003 de l'épic 012, la décision « Exporter en CSV » en phase de cadrage, parce qu'Excel doit ouvrir les exports ; conséquence : gérer l'encodage ; alternative écartée : le JSON. »
effortless_decision_addepic_id=012story_id=003title=Exporter en CSVcontext=Excel doit ouvrir les exportsdecision=Exporter en CSVconsequences=Gérer l’encodagerejected_alternatives=Le JSONphase=P-cadrage
« Pose, sur la story 003 de l'épic 012, la question de l'authentification en phase de cadrage : contexte, l'application sera multi-utilisateur ; impact, rien n'avance sans réponse ; suggestion, OAuth2. »
effortless_question_askepic_id=012story_id=003question=Quelle authentification ?context=L’application sera multi-utilisateurimpact=Rien n’avance sans réponsesuggestion=OAuth2phase=P-cadrage
« Est-ce qu'on peut passer à la phase suivante ? »
effortless_phase_eligibility« Liste les décisions et les questions ouvertes du projet. »
effortless_decisions_list« Propose trois stories pour découper cet épic : l'export CSV, l'export Excel, l'archivage. Je validerai. »
« C'est un petit correctif, « Corriger l'accent dans l'export » : ouvre une story de correction directe, sans cadrage. »
« Quelles recettes restent à vérifier ? »
effortless_recipe_maturityCe que fait l'agent
Préparer les documents d'une story
effortless_cadrage_docs_scaffoldavecepic_idetstory_id: crée dansblueprints/les documents OPALE manquants de la story et renvoie les fichiers créés. Les documents déjà là ne sont pas touchés.effortless_cadrage_layer_next: au niveau du projet, indique la prochaine couche de cadrage à rédiger parmi les quatre blueprints racine.
Faire avancer les phases
Une story OPALE traverse cinq phases : O-analyse, P-cadrage, A-specs, L-plan, E-execute.
effortless_phase_eligibility: lecture seule. Dit si les documents requis de la phase courante existent et quelle est la phase suivante.effortless_phase_next: passe à la phase suivante, avec la date posée par le serveur. Le moteur refait lui-même la vérification de son côté.effortless_story_reloop, si le cadrage est à reprendre :target_phasedésigne une phase antérieure à la phase courante.
Tant que la story est avant la phase E-execute, une tâche ne peut pas passer à En cours (voir Piloter le travail).
Consigner les décisions
effortless_decision_add: une décision (ADR) rattachée à une story. L'agent renseigneepic_id,story_id,title,context,decision,consequences,rejected_alternativeset laphaseOPALE concernée. Le moteur renvoie l'identifiantDEC-NN.effortless_decisions_list: toutes les décisions du projet, avec l'épic et la story d'origine.
Poser et résoudre des questions
effortless_question_ask: une question ouverte sur une story (question,context,impact,suggestion,phase). Le moteur renvoieQ-NN.effortless_question_resolve: la résout avec saanswer.effortless_questions_list: toutes les questions du projet.
Les grandes questions ouvertes (BQO)
Une BQO est une question posée au niveau du projet, pas d'une story.
effortless_bqo_ask: la consigne.effortless_bqo_list: les liste.effortless_bqo_resolve: y répond (question_id,answer).effortless_bqo_graduate: si elle mérite un chantier, la copie dans un épic existant (epic_id). Ne crée pas d'épic ; la question n'est plus à résoudre au niveau du projet mais depuis cet épic.
Brouillons de story
Pour découper un épic sans créer les stories tout de suite.
effortless_draft_add: un brouillon (titre, résumé,kindopaleoufix, tâches proposées, justification, dépendances) dans l'épic actif ou l'épic nommé.effortless_draft_update: corrige un brouillon ; ce qui n'est pas passé reste inchangé.effortless_draft_list: liste ceux d'un épic.effortless_draft_submit: le soumet à votre relecture.effortless_draft_validate: le transforme en vraie story et renvoie l'identifiant créé.effortless_draft_reject: l'écarte.
L'agent soumet ; c'est vous qui dites de valider ou de rejeter.
Propositions sur une story
Une proposition est un résumé attaché à une story, qui attend votre verdict.
effortless_proposal_add: la pose (statut en attente) sur la story active, ou surstory_id.effortless_proposal_validate: la valide.effortless_proposal_reject: la rejette.
La voie courte : un correctif
Pour un défaut à corriger tout de suite, l'agent n'a pas besoin de cadrer.
effortless_story_startaveckind: "fix": la story ne demande aucun cadrage et s'ouvre directement en phase d'exécution. Avecactivate: true, elle devient la story active.effortless_task_addpuiseffortless_task_update: la suite se passe comme pour une story normale (Piloter le travail).
Les recettes et les preuves
effortless_recipe_maturity: lecture seule. Classe les scénarios de recette par maturité (stable, candidat, beta, prévu), rend ce qu'il reste à faire et les recettes bloquées par un manque. Option : limiter à unepic_idou unstory_id.effortless_interruption_proof: prouve qu'un ordre d'écriture survit à une interruption réelle. Le moteur coupe la commande déclarée (SIGKILL) à chaque position qu'elle annonce, puis lance le contrôle d'état.proof_iddésigne une preuve que vous avez déclarée danseffortless.json, soussettings.interruption_proofs;positionsrestreint les coupures (par défaut, toutes).
Ce que vous obtenez
- Des documents de cadrage dans
blueprints/, en Markdown, à relire dans votre éditeur. - Les décisions et les questions dans l'écran Connaissance, avec leur origine.
- Les stories, leur phase et leurs brouillons dans le Backlog (blocs Drafts, Proposition et Reloop sur les pages d'épic et de story).
- Les questions ouvertes et les recettes non vérifiées dans Ce qui t'attend du Tableau de bord.
Quand l'agent est refusé
| Situation | Ce que dit le refus | Ce qu'il faut faire |
|---|---|---|
| Une tâche passe à En cours alors que la story n'a pas fini son cadrage | cadrage:phaseIncomplete | Rendre les documents manquants de la phase, ou ouvrir un correctif direct avec story_start et kind: "fix". |
| Passage à la phase suivante, documents requis absents | pilotage:phaseMissingDocs | Rédiger les documents nommés par le refus. |
| Passage à la phase suivante alors que la story est déjà en dernière phase | pilotage:phaseAlreadyLast | Rien à lever : clore la story, ou la reboucler vers une phase antérieure. |
| Phase déjà complétée | pilotage:phaseAlreadyCompleted | Avancer vers la phase suivante, ou revenir en arrière avec story_reloop. |
Décision dont un champ contient une entité HTML échappée (par exemple &) | cadrage:entiteHtml | Réécrire le champ sans l'entité. |
| Résoudre au niveau projet une BQO déjà graduée en épic | cadrage:questionGraduated | Répondre depuis les BQO de l'épic qui la porte, avec question_resolve. |
| BQO inconnue | cadrage:questionNotFound | Lister les BQO avec bqo_list et reprendre le bon identifiant. |
| Lire les items d'une story sans nommer l'épic et la story | pilotage:noStoryTarget | Passer epic_id ET story_id ; project_tree les nomme. |
| Preuve d'interruption non déclarée | proof:unknown | La déclarer dans settings.interruption_proofs de effortless.json. |
| Preuve dont la commande n'annonce aucune position | proof:noPosition | Faire écrire EFFORTLESS-POS <n> à la commande à chaque point de coupure. |
| Preuve dont la commande ne se lance pas | proof:launchFailed | Vérifier la commande déclarée. |