@atlashub/smartstack-cli 2.8.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/.documentation/business-analyse.html +81 -17
  2. package/dist/index.js +94 -21
  3. package/dist/index.js.map +1 -1
  4. package/dist/mcp-entry.mjs +1302 -223
  5. package/dist/mcp-entry.mjs.map +1 -1
  6. package/package.json +1 -1
  7. package/templates/agents/efcore/db-deploy.md +1 -1
  8. package/templates/agents/efcore/migration.md +26 -10
  9. package/templates/agents/efcore/rebase-snapshot.md +24 -7
  10. package/templates/agents/efcore/squash.md +73 -57
  11. package/templates/agents/gitflow/commit.md +138 -18
  12. package/templates/agents/gitflow/exec.md +1 -1
  13. package/templates/agents/gitflow/finish.md +79 -62
  14. package/templates/agents/gitflow/init-clone.md +186 -0
  15. package/templates/agents/gitflow/init-detect.md +137 -0
  16. package/templates/agents/gitflow/init-validate.md +210 -0
  17. package/templates/agents/gitflow/init.md +231 -74
  18. package/templates/agents/gitflow/merge.md +65 -33
  19. package/templates/agents/gitflow/pr.md +93 -49
  20. package/templates/agents/gitflow/start.md +76 -33
  21. package/templates/agents/gitflow/status.md +41 -71
  22. package/templates/hooks/appsettings-guard.sh +76 -0
  23. package/templates/hooks/ef-migration-check.md +1 -1
  24. package/templates/hooks/hooks.json +9 -0
  25. package/templates/project/test-frontend/msw/handlers.ts +58 -0
  26. package/templates/project/test-frontend/msw/server.ts +25 -0
  27. package/templates/project/test-frontend/setup.ts +16 -0
  28. package/templates/project/test-frontend/test-utils.tsx +59 -0
  29. package/templates/project/test-frontend/vitest.config.ts +31 -0
  30. package/templates/skills/_resources/config-safety.md +61 -0
  31. package/templates/skills/_resources/formatting-guide.md +2 -2
  32. package/templates/skills/_shared.md +21 -0
  33. package/templates/skills/application/SKILL.md +32 -3
  34. package/templates/skills/application/steps/step-04-backend.md +21 -0
  35. package/templates/skills/application/steps/step-05-frontend.md +20 -36
  36. package/templates/skills/application/steps/step-07-tests.md +259 -120
  37. package/templates/skills/business-analyse/SKILL.md +57 -28
  38. package/templates/skills/business-analyse/_shared.md +70 -39
  39. package/templates/skills/business-analyse/html/ba-interactive.html +2622 -0
  40. package/templates/skills/business-analyse/questionnaire/00-application.md +123 -131
  41. package/templates/skills/business-analyse/questionnaire/01-context.md +173 -24
  42. package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +170 -50
  43. package/templates/skills/business-analyse/questionnaire/03-scope.md +154 -48
  44. package/templates/skills/business-analyse/questionnaire/10-documentation.md +1 -1
  45. package/templates/skills/business-analyse/questionnaire/14-risk-assumptions.md +135 -0
  46. package/templates/skills/business-analyse/questionnaire/15-success-metrics.md +136 -0
  47. package/templates/skills/business-analyse/questionnaire.md +55 -46
  48. package/templates/skills/business-analyse/steps/step-00-init.md +24 -2
  49. package/templates/skills/business-analyse/steps/step-01-cadrage.md +31 -20
  50. package/templates/skills/business-analyse/steps/step-03-specify.md +1 -0
  51. package/templates/skills/business-analyse/steps/step-05-handoff.md +103 -1
  52. package/templates/skills/business-analyse/steps/step-06-extract.md +518 -0
  53. package/templates/skills/check-version/SKILL.md +1 -1
  54. package/templates/skills/efcore/steps/db/step-deploy.md +22 -3
  55. package/templates/skills/efcore/steps/db/step-reset.md +27 -4
  56. package/templates/skills/efcore/steps/db/step-seed.md +46 -2
  57. package/templates/skills/efcore/steps/db/step-status.md +14 -0
  58. package/templates/skills/efcore/steps/migration/step-01-check.md +31 -5
  59. package/templates/skills/efcore/steps/migration/step-02-create.md +20 -4
  60. package/templates/skills/efcore/steps/rebase-snapshot/step-03-create.md +60 -0
  61. package/templates/skills/efcore/steps/shared/step-00-init.md +47 -8
  62. package/templates/skills/efcore/steps/squash/step-03-create.md +27 -5
  63. package/templates/skills/gitflow/SKILL.md +91 -29
  64. package/templates/skills/gitflow/_shared.md +144 -2
  65. package/templates/skills/gitflow/phases/status.md +11 -1
  66. package/templates/skills/gitflow/steps/step-commit.md +1 -1
  67. package/templates/skills/gitflow/steps/step-init.md +202 -39
  68. package/templates/skills/gitflow/templates/config.json +10 -1
  69. package/templates/skills/ralph-loop/steps/step-03-commit.md +2 -2
  70. package/templates/skills/validate-feature/SKILL.md +83 -0
  71. package/templates/skills/validate-feature/steps/step-01-compile.md +38 -0
  72. package/templates/skills/validate-feature/steps/step-02-unit-tests.md +45 -0
  73. package/templates/skills/validate-feature/steps/step-03-integration-tests.md +53 -0
  74. package/templates/skills/validate-feature/steps/step-04-api-smoke.md +157 -0
@@ -1,69 +1,189 @@
1
- # Category 2: Stakeholders
1
+ # Categorie 2 : Parties prenantes
2
2
 
3
- > **Usage:** Identification of stakeholders and their needs
4
- > **When to load:** ALWAYS (core)
3
+ > **Usage :** Identification de toutes les personnes concernees et de leurs besoins reels
4
+ > **Quand charger :** TOUJOURS (noyau)
5
+ > **Objectif :** Comprendre QUI utilise le systeme, COMMENT et POURQUOI
5
6
 
6
7
  ---
7
8
 
8
- ## 2.1 Identification
9
+ ## 2.1 Identification des utilisateurs
10
+
11
+ > **But :** Dresser la carte complete de toutes les personnes qui interagiront avec le systeme.
12
+
13
+ | # | Question | Type de reponse |
14
+ |---|----------|-----------------|
15
+ | Q2.1 | Qui sont les personnes qui utiliseront ce systeme au quotidien ? Decrivez leurs postes et ce qu'ils font dans l'entreprise. | Liste de profils utilisateurs |
16
+ | Q2.2 | Y a-t-il des personnes qui ne l'utiliseront pas directement mais qui beneficieront des resultats (rapports, donnees, decisions) ? | Liste de beneficiaires indirects |
17
+ | Q2.3 | Qui est le decideur final sur ce projet ? Qui peut dire "oui, on lance" ou "non, on arrete" ? | Nom et role du decideur |
18
+ | Q2.4 | Y a-t-il des personnes ou des services qui pourraient s'opposer a ce projet ou le freiner ? Pourquoi ? | Liste de resistances potentielles |
19
+
20
+ **Reformulation guidee pour Q2.1 :**
21
+ ```
22
+ question: "Qui sont les personnes qui utiliseront ce systeme au quotidien ?"
23
+ header: "Utilisateurs"
24
+ options:
25
+ - label: "Equipe operationnelle"
26
+ description: "Les personnes qui font le travail quotidien et saisissent les donnees"
27
+ - label: "Responsables et managers"
28
+ description: "Les personnes qui supervisent, valident et prennent des decisions"
29
+ - label: "Direction"
30
+ description: "Les personnes qui consultent les tableaux de bord et les indicateurs"
31
+ - label: "Equipe support"
32
+ description: "Les personnes qui aident les utilisateurs et resolvent les problemes"
33
+ ```
9
34
 
10
- | # | Question | Answer Type |
11
- |---|----------|-------------|
12
- | Q2.1 | Who are the direct end users? | List of roles |
13
- | Q2.2 | Who are the indirect beneficiaries? | List |
14
- | Q2.3 | Who is the sponsor/final decision maker? | Name + role |
15
- | Q2.4 | Who can block the project? | List + reasons |
35
+ ---
36
+
37
+ ## 2.2 Le quotidien de chaque utilisateur
38
+
39
+ > **But :** Comprendre concretement ce que chaque type d'utilisateur fait et a besoin de faire.
40
+
41
+ | # | Question | Type de reponse |
42
+ |---|----------|-----------------|
43
+ | Q2.5 | Pour chaque type d'utilisateur : quelles sont les 3 a 5 taches principales qu'il doit accomplir avec ce systeme ? | Taches par profil utilisateur |
44
+ | Q2.6 | A quelle frequence chaque utilisateur se servira-t-il du systeme ? Tous les jours ? Plusieurs fois par jour ? Une fois par semaine ? | Frequence d'utilisation par profil |
45
+ | Q2.7 | Quel est le niveau de confort de chaque utilisateur avec les outils informatiques ? Certains sont-ils plus a l'aise que d'autres ? | Niveau d'aisance par profil |
46
+ | Q2.8 | Pour chaque utilisateur : quelles sont ses 2 a 3 plus grandes frustrations avec la facon de travailler actuelle ? | Frustrations par profil |
47
+
48
+ **Reformulation guidee pour Q2.5 :**
49
+ ```
50
+ question: "Quelles sont les taches principales de chaque type d'utilisateur ?"
51
+ header: "Taches"
52
+ options:
53
+ - label: "Saisie et creation"
54
+ description: "Creer de nouvelles fiches, saisir des informations, remplir des formulaires"
55
+ - label: "Consultation et recherche"
56
+ description: "Chercher des informations, consulter des fiches, verifier des donnees"
57
+ - label: "Validation et approbation"
58
+ description: "Verifier le travail des autres, approuver des demandes, valider des etapes"
59
+ - label: "Suivi et reporting"
60
+ description: "Suivre l'avancement, consulter des indicateurs, generer des rapports"
61
+ ```
16
62
 
17
- ## 2.2 Needs by Role
63
+ ---
18
64
 
19
- | # | Question | Answer Type |
20
- |---|----------|-------------|
21
- | Q2.5 | For each role: What tasks should they accomplish? | Per role |
22
- | Q2.6 | What frequency of use per role? | Daily/Weekly/Monthly |
23
- | Q2.7 | What level of technical expertise per role? | Novice/Intermediate/Expert |
24
- | Q2.8 | What current frustrations per role? | List of pain points |
65
+ ## 2.3 Les niveaux d'acces
66
+
67
+ > **But :** Definir qui peut voir quoi et faire quoi, en langage simple.
68
+
69
+ | # | Question | Type de reponse |
70
+ |---|----------|-----------------|
71
+ | Q2.9 | Tous les utilisateurs doivent-ils voir les memes informations ? Si non, qui voit quoi ? | Regles de visibilite des donnees |
72
+ | Q2.10 | Qui a le droit de modifier ou supprimer des informations ? Tout le monde ou seulement certaines personnes ? | Regles de modification |
73
+ | Q2.11 | Y a-t-il des actions sensibles qui necessitent une validation par un superieur avant d'etre executees (approbation, suppression, publication) ? | Liste des actions a valider |
74
+ | Q2.12 | Quand un nouvel utilisateur rejoint l'equipe, quel niveau d'acces doit-il avoir par defaut ? | Acces initial |
75
+
76
+ **Reformulation guidee pour Q2.9 :**
77
+ ```
78
+ question: "Tous les utilisateurs voient-ils les memes informations ?"
79
+ header: "Visibilite"
80
+ options:
81
+ - label: "Oui, tout est visible par tous"
82
+ description: "Pas de restriction, tous les utilisateurs voient toutes les donnees"
83
+ - label: "Non, selon le role"
84
+ description: "Chaque role ne voit que les informations qui le concernent"
85
+ - label: "Non, selon le service"
86
+ description: "Chaque service ou equipe ne voit que ses propres donnees"
87
+ - label: "C'est complexe"
88
+ description: "Les regles de visibilite dependent de plusieurs criteres combines"
89
+ ```
25
90
 
26
91
  ---
27
92
 
28
- ## Role -> Permission Mapping
93
+ ## 2.4 La conduite du changement
29
94
 
30
- > **⚠️ RBAC RULE: Roles are platform permissions, NOT entity attributes.**
31
- >
32
- > When stakeholders mention "roles" (admin, manager, user...), these MUST be mapped
33
- > to the platform's RBAC permission system (`business.{app}.{module}.{action}`).
34
- >
35
- > **NEVER** model a role as:
36
- > - A property/column on a User entity (e.g. `User.Role`, `User.RoleType`)
37
- > - An enum or string attribute on any business entity
38
- > - A separate `Role` entity with a FK on User
95
+ > **But :** Anticiper les resistances et planifier l'adoption.
96
+
97
+ | # | Question | Type de reponse |
98
+ |---|----------|-----------------|
99
+ | Q2.13 | Comment reagiront les utilisateurs face a ce changement ? Qui sera enthousiaste et qui sera reticent ? | Cartographie des attitudes |
100
+ | Q2.14 | Y a-t-il eu des tentatives precedentes de resoudre ce probleme ? Qu'est-ce qui a fonctionne ou echoue ? | Historique des initiatives passees |
101
+
102
+ ---
103
+
104
+ ## Guide d'elicitation approfondi
105
+
106
+ ### Techniques de relance par question
107
+
108
+ | Question | Si la reponse est vague ou insuffisante | Relance recommandee |
109
+ |----------|----------------------------------------|---------------------|
110
+ | Q2.1 (utilisateurs directs) | Un seul type d'utilisateur mentionne | "Pensez aux differents moments de la journee : qui intervient le matin pour la saisie ? Qui consulte les rapports l'apres-midi ? Qui gere les cas particuliers ? Y a-t-il un administrateur, un auditeur, ou un processus automatique ?" |
111
+ | Q2.2 (beneficiaires indirects) | "Personne d'autre" | "Quand une information est creee dans le systeme, qui en a besoin ensuite ? La direction consulte-t-elle des chiffres qui en dependent ? Un autre service attend-il des resultats ?" |
112
+ | Q2.4 (oppositions) | "Personne ne s'opposera" | "Quand un nouvel outil est introduit, qui doit changer ses habitudes le plus ? Cette personne est-elle favorable au changement ?" |
113
+ | Q2.5 (taches par role) | Taches generiques ("gerer les donnees") | "Prenons le role {role} : quand il arrive le matin et ouvre le systeme, quelle est sa premiere action ? Que fait-il ensuite ? A quel moment considere-t-il que sa tache est terminee ?" |
114
+ | Q2.6 (frequence) | "Regulierement" | "Combien de fois par jour ? Est-ce 3 fois par jour ou 30 fois ? Y a-t-il des periodes plus intenses que d'autres (debut de mois, fin d'annee) ?" |
115
+ | Q2.7 (aisance informatique) | "Ils se debrouillent" | "Si je donnais un nouveau logiciel a cet utilisateur sans formation, combien de temps lui faudrait-il pour etre autonome ? 5 minutes, 1 heure, une journee ?" |
116
+ | Q2.8 (frustrations) | "Rien de special" | "Quelle tache fait le plus soupirer vos equipes ? Quelle question posent-ils le plus souvent ? De quoi se plaignent-ils en pause cafe ?" |
117
+ | Q2.9 (visibilite) | Reponse ambigue | "Prenons un exemple : un employe du service A peut-il voir les donnees du service B ? Un stagiaire voit-il la meme chose qu'un directeur ?" |
118
+ | Q2.13 (changement) | "Ca ira" (trop optimiste) | "La derniere fois qu'un nouvel outil a ete introduit, comment ca s'est passe ? Certains utilisateurs l'ont-ils evite ou contourne ?" |
119
+
120
+ ### Signaux d'alerte a detecter
121
+
122
+ | Signal du client | Probleme sous-jacent | Action de l'analyste |
123
+ |------------------|---------------------|----------------------|
124
+ | "Tous les utilisateurs font la meme chose" | **Roles non differencies** | "Qui peut supprimer une fiche ? Qui ne fait que consulter ? Qui valide le travail des autres ?" |
125
+ | Un seul type d'utilisateur identifie | **Parties prenantes manquantes** | Proposer systematiquement : administrateur, utilisateur quotidien, lecteur seul, auditeur, support technique |
126
+ | Melange entre titre de poste et niveau d'acces | **Confusion role metier et acces** | Separer : le role metier (chef de projet, comptable) ET son niveau d'acces (consultation, modification, administration) |
127
+ | "Tout le monde doit tout voir" | **Securite non reflechie** | "Meme les stagiaires ? Meme les prestataires externes ? Meme les donnees salariales ou financieres ?" |
128
+ | "Personne ne s'y opposera" | **Resistance sous-estimee** | "Quels utilisateurs devront changer le plus leurs habitudes ? Cette personne a-t-elle ete consultee ?" |
129
+
130
+ ### Regles d'enchainement
131
+
132
+ | Apres | Si la reponse indique... | Alors |
133
+ |-------|-------------------------|-------|
134
+ | Q2.1 | Plus de 4 types d'utilisateurs | Approfondir Q2.5 par lots (2 roles par lot maximum) |
135
+ | Q2.4 | Resistances identifiees | Insister sur Q2.13-Q2.14 pour anticiper la conduite du changement |
136
+ | Q2.7 | Utilisateurs peu a l'aise | Prioriser les questions d'interface utilisateur (categorie 07) |
137
+ | Q2.9 | Regles de visibilite complexes | Charger le questionnaire de securite (categorie 06) en priorite |
138
+ | Q2.11 | Actions a valider identifiees | Noter pour la phase de specification : workflows d'approbation a modeliser |
139
+ | Q2.14 | Echecs passes | Comprendre les raisons d'echec pour ne pas les reproduire |
140
+
141
+ ---
142
+
143
+ ## Regle de mapping des roles vers les permissions
144
+
145
+ > **Important :** Les roles identifies ici sont des profils metier. Ils seront mappes
146
+ > vers des niveaux d'acces de la plateforme lors de la phase de specification.
39
147
  >
40
- > **ALWAYS** map roles to permission sets in the matrix below:
148
+ > Cette correspondance est transparente pour le client. Il definit des profils
149
+ > en langage naturel, le systeme s'occupe de la traduction technique.
41
150
 
42
- | Discovered Role | Platform Permission |
43
- |-----------------|----------------------|
44
- | Admin | `*.admin` |
45
- | Manager | `*.read,create,update` |
46
- | User | `*.read,create` |
47
- | ReadOnly | `*.read` |
151
+ | Profil utilisateur decrit par le client | Niveau d'acces correspondant |
152
+ |-----------------------------------------|-----------------------------|
153
+ | "Il gere tout, c'est l'administrateur" | Administration complete |
154
+ | "Il supervise et valide" | Lecture, creation, modification, validation |
155
+ | "Il saisit et modifie au quotidien" | Lecture, creation, modification |
156
+ | "Il consulte les rapports" | Lecture seule |
157
+
158
+ ---
159
+
160
+ ## Mapping vers le cadrage
161
+
162
+ | Reponse | Alimente |
163
+ |---------|----------|
164
+ | Q2.1, Q2.2, Q2.3, Q2.4 | `cadrage.stakeholders[]` |
165
+ | Q2.5, Q2.6, Q2.7, Q2.8 | `cadrage.stakeholders[].tasks`, `.frequency`, `.painPoints` |
166
+ | Q2.9, Q2.10, Q2.11, Q2.12 | `cadrage.applicationRoles[]` |
167
+ | Q2.13, Q2.14 | `cadrage.risks[]` (risque adoption) |
168
+
169
+ ---
48
170
 
49
- > If the business need requires **custom roles beyond these 4**, document them
50
- > as additional permission sets — not as data model concepts.
171
+ ## Strategie de questionnement
51
172
 
52
- ## Elicitation Guide
173
+ ### Ordre des questions en 4 lots
53
174
 
54
- ### Follow-ups by Question
175
+ **Lot 1 (Q2.1, Q2.2, Q2.3, Q2.4) : Qui est concerne ?**
176
+ - Identifier tous les acteurs du projet
177
+ - Ne pas oublier les beneficiaires indirects et les opposants potentiels
55
178
 
56
- | Question | If answer is vague/insufficient | Probe |
57
- |----------|-------------------------------|-------|
58
- | Q2.1 (end users) | Only 1-2 roles listed | "Y a-t-il des auditeurs, des administrateurs système, du support, des processus automatisés ?" |
59
- | Q2.5 (tasks per role) | Generic tasks ("manage data") | "Prenons le rôle {role} : en arrivant le matin, quelle est sa première action ? Et après ?" |
60
- | Q2.6 (frequency) | "Régulièrement" | "Quotidien ? 10 fois/jour ou 1 fois ? Certains jours plus que d'autres ?" |
61
- | Q2.8 (frustrations) | "Rien de particulier" | "Quel processus prend le plus de temps ? Qu'est-ce qui vous fait soupirer ?" |
179
+ **Lot 2 (Q2.5, Q2.6, Q2.7, Q2.8) : Que font-ils au quotidien ?**
180
+ - Detailler les taches, frequences et frustrations par profil
181
+ - Si plus de 4 profils : traiter les 2 plus importants d'abord
62
182
 
63
- ### Anti-patterns to Detect
183
+ **Lot 3 (Q2.9, Q2.10, Q2.11, Q2.12) : Qui a le droit de faire quoi ?**
184
+ - Etablir les regles de visibilite et de modification
185
+ - Identifier les actions sensibles necessitant validation
64
186
 
65
- | Signal | Anti-pattern | Action |
66
- |--------|-------------|--------|
67
- | Un seul type d'utilisateur identifié | **Stakeholders manquants** | Proposer systématiquement : admin, utilisateur métier, lecteur, auditeur, support N1 |
68
- | "Tous les utilisateurs font la même chose" | **Rôles non différenciés** | "Qui peut supprimer ? Qui ne fait que consulter ? Qui valide ?" |
69
- | Mélange rôle organisationnel et accès | **Confusion rôle/permission** | Séparer : rôle métier (chef de projet) vs niveau d'accès (lecture/écriture) |
187
+ **Lot 4 (Q2.13, Q2.14) : Comment vont-ils reagir ?**
188
+ - Anticiper les resistances et tirer les lecons du passe
189
+ - Ce lot peut etre fusionne avec le lot 3 si le projet est simple
@@ -1,58 +1,164 @@
1
- # Category 3: Functional Scope
1
+ # Categorie 3 : Perimetre fonctionnel
2
2
 
3
- > **Usage:** Scope definition with priority levels
4
- > **When to load:** ALWAYS (core)
3
+ > **Usage :** Definir ce que le systeme doit faire et ne pas faire, avec des priorites claires
4
+ > **Quand charger :** TOUJOURS (noyau)
5
+ > **Objectif :** Delimiter le perimetre et hierarchiser les fonctionnalites
5
6
 
6
7
  ---
7
8
 
8
- ## 3.1 Functionality (Priority Levels)
9
+ ## 3.1 Les fonctionnalites attendues
9
10
 
10
- | # | Question | Answer Type |
11
- |---|----------|-------------|
12
- | Q3.1 | List ESSENTIAL features (Must-Have) | List |
13
- | Q3.2 | List DESIRED features (Should-Have) | List |
14
- | Q3.3 | List OPTIONAL features (Could-Have) | List |
15
- | Q3.4 | Any known constraints limiting scope? | List of constraints |
11
+ > **But :** Lister tout ce que le systeme doit permettre de faire, puis hierarchiser.
16
12
 
17
- ## 3.2 Business Process
13
+ | # | Question | Type de reponse |
14
+ |---|----------|-----------------|
15
+ | Q3.1 | Listez toutes les fonctionnalites que vous souhaitez dans ce systeme. Ne vous censurez pas, notez tout ce qui vous vient a l'esprit. | Liste libre de fonctionnalites |
16
+ | Q3.2 | Parmi cette liste, quelles sont les fonctionnalites INDISPENSABLES ? Celles sans lesquelles le systeme n'a aucun interet ? | Liste de fonctionnalites vitales |
17
+ | Q3.3 | Quelles fonctionnalites seraient tres utiles mais pourraient attendre une deuxieme version si necessaire ? | Liste de fonctionnalites importantes |
18
+ | Q3.4 | Y a-t-il des choses que le systeme ne doit explicitement PAS faire ? Des limites claires a poser ? | Liste d'exclusions |
18
19
 
19
- | # | Question | Answer Type |
20
- |---|----------|-------------|
21
- | Q3.5 | Describe the main user flow | Steps |
22
- | Q3.6 | What are the decision points in the flow? | List |
23
- | Q3.7 | What alternative flows exist? | Per condition |
24
- | Q3.8 | What are the possible error cases? | List |
20
+ **Reformulation guidee pour Q3.2 :**
21
+ ```
22
+ question: "Quelles fonctionnalites sont absolument indispensables ?"
23
+ header: "Indispensable"
24
+ options:
25
+ - label: "Creer et consulter les fiches"
26
+ description: "La base : pouvoir ajouter de nouvelles informations et les retrouver"
27
+ - label: "Suivre l'avancement"
28
+ description: "Voir ou en est chaque element, son statut et son historique"
29
+ - label: "Controler les acces"
30
+ description: "S'assurer que chaque personne ne voit et fait que ce qu'elle a le droit"
31
+ - label: "Generer des rapports"
32
+ description: "Produire des syntheses et des indicateurs pour la prise de decision"
33
+ ```
34
+
35
+ **Test de priorite :**
36
+ > Pour chaque fonctionnalite classee comme indispensable, poser la question :
37
+ > "Si on enlevait cette fonctionnalite, le systeme aurait-il encore de la valeur ?"
38
+ > - Si la reponse est "non" : c'est bien indispensable
39
+ > - Si la reponse est "oui, mais..." : c'est important mais pas vital
40
+
41
+ ---
42
+
43
+ ## 3.2 Le parcours principal
44
+
45
+ > **But :** Comprendre le flux de travail principal de bout en bout.
46
+
47
+ | # | Question | Type de reponse |
48
+ |---|----------|-----------------|
49
+ | Q3.5 | Decrivez le parcours typique d'un utilisateur du debut a la fin : il ouvre le systeme, que fait-il en premier ? Puis ensuite ? Comment termine-t-il sa tache ? | Liste d'etapes ordonnees |
50
+ | Q3.6 | A quels moments l'utilisateur doit-il prendre une decision ? Quelles sont les options possibles a chaque point de decision ? | Points de decision et options |
51
+ | Q3.7 | Que se passe-t-il quand quelque chose ne se deroule pas comme prevu ? Quels sont les cas particuliers ou les exceptions ? | Scenarios alternatifs |
52
+ | Q3.8 | Que se passe-t-il quand une erreur survient ? Comment l'utilisateur est-il informe ? Que doit-il faire pour corriger ? | Gestion des erreurs |
53
+
54
+ **Reformulation guidee pour Q3.5 :**
55
+ ```
56
+ question: "Decrivez le parcours typique d'un utilisateur du debut a la fin"
57
+ header: "Parcours"
58
+ options:
59
+ - label: "Saisie puis validation"
60
+ description: "L'utilisateur cree une fiche, un responsable la valide, elle est publiee"
61
+ - label: "Recherche puis action"
62
+ description: "L'utilisateur cherche une information, puis effectue une action dessus"
63
+ - label: "Reception puis traitement"
64
+ description: "Une demande arrive, l'utilisateur la traite etape par etape"
65
+ - label: "Suivi continu"
66
+ description: "L'utilisateur surveille un tableau de bord et intervient quand necessaire"
67
+ ```
68
+
69
+ ---
70
+
71
+ ## 3.3 Les besoins transversaux
72
+
73
+ > **But :** Identifier les fonctionnalites qui traversent tout le systeme.
74
+
75
+ | # | Question | Type de reponse |
76
+ |---|----------|-----------------|
77
+ | Q3.9 | Les utilisateurs ont-ils besoin de recevoir des notifications ou des alertes ? Si oui, dans quelles situations ? | Liste de situations de notification |
78
+ | Q3.10 | Faut-il pouvoir exporter des donnees du systeme (rapports, fichiers, impressions) ? Dans quel format et pour qui ? | Besoins d'export |
79
+ | Q3.11 | Faut-il pouvoir importer des donnees dans le systeme depuis une source externe (fichiers, autres logiciels) ? | Besoins d'import |
80
+ | Q3.12 | Faut-il garder un historique de qui a fait quoi et quand ? Pour quelles actions ? | Besoins de tracabilite |
81
+
82
+ **Reformulation guidee pour Q3.9 :**
83
+ ```
84
+ question: "Les utilisateurs ont-ils besoin de recevoir des notifications ou des alertes ?"
85
+ header: "Alertes"
86
+ options:
87
+ - label: "Oui, en temps reel"
88
+ description: "Notifications instantanees quand quelque chose de nouveau arrive ou change"
89
+ - label: "Oui, par email"
90
+ description: "Recapitulatif par email quotidien ou a chaque evenement important"
91
+ - label: "Oui, les deux"
92
+ description: "Notification en temps reel dans l'application et recapitulatif par email"
93
+ - label: "Non, pas necessaire"
94
+ description: "Les utilisateurs consulteront le systeme de leur propre initiative"
95
+ ```
96
+
97
+ ---
98
+
99
+ ## Guide d'elicitation approfondi
100
+
101
+ ### Techniques de relance par question
102
+
103
+ | Question | Si la reponse est vague ou insuffisante | Relance recommandee |
104
+ |----------|----------------------------------------|---------------------|
105
+ | Q3.1 (liste de fonctionnalites) | Moins de 5 elements | "Pensez a une journee complete de travail. De l'ouverture de session a la fermeture, quelles actions devriez-vous pouvoir faire ? Creation ? Recherche ? Modification ? Exportation ? Suivi ?" |
106
+ | Q3.2 (indispensable) | Tout est marque comme indispensable | "Si vous ne pouviez garder que 3 fonctionnalites pour un premier lancement, lesquelles choisiriez-vous ? Les autres sont tres importantes mais pourraient venir dans un second temps." |
107
+ | Q3.4 (exclusions) | "Je ne vois pas" | "Certains utilisateurs pourraient-ils s'attendre a des fonctionnalites que vous ne souhaitez PAS inclure ? Par exemple : gestion financiere, messagerie integree, application mobile ?" |
108
+ | Q3.5 (parcours principal) | Moins de 3 etapes | "Detaillons : l'utilisateur arrive sur l'ecran d'accueil. Que voit-il ? Ou clique-t-il ? Que remplit-il ? Que se passe-t-il quand il valide ? Qui est notifie ?" |
109
+ | Q3.6 (decisions) | "Il n'y a pas vraiment de choix" | "A chaque etape, l'utilisateur peut-il annuler ? Revenir en arriere ? Sauvegarder en brouillon ? Deleguer a quelqu'un d'autre ?" |
110
+ | Q3.7 (cas particuliers) | "Il n'y en a pas" | "Que se passe-t-il si l'utilisateur n'a pas toutes les informations ? Si une donnee est incorrecte ? Si deux personnes modifient la meme fiche en meme temps ?" |
111
+ | Q3.8 (erreurs) | "On verra" | "Prenons un exemple : l'utilisateur oublie un champ obligatoire. Le systeme le bloque ? L'avertit ? Le laisse continuer avec un rappel plus tard ?" |
112
+ | Q3.9 (notifications) | Reponse vague | "Quand un element change de statut, qui doit etre prevenu ? Quand une action urgente est requise, comment l'utilisateur le sait-il aujourd'hui ?" |
113
+ | Q3.12 (tracabilite) | "On ne sait pas" | "Si dans 6 mois quelqu'un demande 'Qui a modifie cette fiche et pourquoi ?', devez-vous pouvoir repondre ?" |
114
+
115
+ ### Signaux d'alerte a detecter
116
+
117
+ | Signal du client | Probleme sous-jacent | Action de l'analyste |
118
+ |------------------|---------------------|----------------------|
119
+ | Tout est indispensable (> 10 elements vitaux) | **Priorites non definies** | Appliquer le test : "Si on enlevait cette fonctionnalite, le systeme aurait-il encore de la valeur ?" |
120
+ | Aucune exclusion identifiee | **Perimetre non borne** | "Y a-t-il des aspects qui relevent d'un autre projet, d'un autre service, ou d'une version future ?" |
121
+ | Parcours lineaire sans alternative | **Seul le cas ideal est decrit** | "Que se passe-t-il a l'etape X si la condition Y n'est pas remplie ? Si l'utilisateur change d'avis ?" |
122
+ | Melange fonctionnel et technique | **Solution dans le perimetre** | Separer : "gerer les commandes" (ce que fait le systeme) est fonctionnel, "utiliser tel outil" (comment il le fait) est technique |
123
+ | Fonctionnalites tres detaillees pour certains sujets et vagues pour d'autres | **Expertise inegale** | Approfondir les zones vagues : "Ce sujet semble moins detaille. Est-ce parce qu'il est moins important ou parce qu'il est moins bien connu ?" |
124
+
125
+ ### Regles d'enchainement
126
+
127
+ | Apres | Si la reponse indique... | Alors |
128
+ |-------|-------------------------|-------|
129
+ | Q3.1 | Plus de 15 fonctionnalites | Passer plus de temps sur Q3.2 pour hierarchiser |
130
+ | Q3.2 | Plus de 10 elements indispensables | Challenger chaque element avec le test de priorite |
131
+ | Q3.5 | Parcours avec approbation | Charger les questions de workflow (categorie 11 cycle de vie) |
132
+ | Q3.7 | Beaucoup de cas particuliers | Prevoir de la complexite dans l'estimation des modules |
133
+ | Q3.9 | Notifications en temps reel souhaitees | Noter pour la specification : integration de notifications |
134
+ | Q3.11 | Import de donnees existantes | Charger le questionnaire de migration (categorie 12) |
135
+ | Q3.12 | Tracabilite requise | Noter pour la specification : journal d'activite |
25
136
 
26
137
  ---
27
138
 
28
- ## Prioritization
29
-
30
- | Priority | Criterion |
31
- |----------|-----------|
32
- | Must | Without this feature, the module has no value implement first |
33
- | Should | Brings significant value — implement right after Must items |
34
- | Could | Nice-to-have implement if no technical blocker |
35
- | Won't | Out of scope for this feature belongs to a different module or feature |
36
-
37
- ## Elicitation Guide
38
-
39
- ### Follow-ups by Question
40
-
41
- | Question | If answer is vague/insufficient | Probe |
42
- |----------|-------------------------------|-------|
43
- | Q3.1 (Must-Have) | > 10 items listed | "Si vous ne pouviez en garder que 3 à implémenter en premier, lesquels ? Les autres sont peut-être Should-Have." |
44
- | Q3.1 (Must-Have) | Mélange CRUD + complexe | "Le CRUD de base (liste, création, modification, suppression) est-il un Must, ou certaines actions sont Could ?" |
45
- | Q3.2 (Should-Have) | Vide | "Y a-t-il des fonctionnalités utiles mais moins critiques ? Export, filtres avancés, notifications ?" |
46
- | Q3.4 (limites) | Vide | "Y a-t-il des contraintes connues qui pourraient limiter le périmètre ? (budget, délai, dépendance)" |
47
- | Q3.5 (main flow) | < 3 étapes | "Détaillez : l'utilisateur arrive sur l'écran → que voit-il ? → que clique-t-il ? → que se passe-t-il ?" |
48
- | Q3.7 (alt flows) | "Il n'y en a pas" | "Que se passe-t-il si l'utilisateur annule ? S'il n'a pas la permission ? Si les données sont invalides ?" |
49
- | Q3.8 (errors) | Liste vide | "Que se passe-t-il si le réseau coupe ? Si un champ obligatoire manque ? Si un doublon existe ?" |
50
-
51
- ### Anti-patterns to Detect
52
-
53
- | Signal | Anti-pattern | Action |
54
- |--------|-------------|--------|
55
- | Tout est Must-Have | **Scope non priorisé** | Appliquer le test : "Sans cette fonctionnalité, le module a-t-il ZÉRO valeur ?" |
56
- | Q3.4 pas de limite identifiée | **Scope à valider** | Le scope sera naturellement borné par les Must-Have/Should-Have. Vérifier que les Must-Have sont réalistes. |
57
- | Flow linéaire sans alternative | **Happy path uniquement** | "Que se passe-t-il au step X si la condition Y n'est pas remplie ?" |
58
- | Mélange fonctionnel/technique | **Solution dans le scope** | Séparer : "gérer les commandes" (fonctionnel) vs "utiliser Redis" (technique) |
139
+ ## Mapping vers le cadrage
140
+
141
+ | Reponse | Alimente |
142
+ |---------|----------|
143
+ | Q3.1, Q3.2, Q3.3 | `cadrage.globalScope` (indispensable, important, optionnel, hors perimetre) |
144
+ | Q3.4 | `cadrage.globalScope.outOfScope` |
145
+ | Q3.5, Q3.6, Q3.7, Q3.8 | `cadrage.coverageMatrix` + base pour les cas d'utilisation |
146
+ | Q3.9, Q3.10, Q3.11, Q3.12 | `cadrage.coverageMatrix` + detection de modules transversaux |
147
+
148
+ ---
149
+
150
+ ## Strategie de questionnement
151
+
152
+ ### Ordre des questions en 3 lots
153
+
154
+ **Lot 1 (Q3.1, Q3.2, Q3.3, Q3.4) : Quoi et dans quel ordre ?**
155
+ - Commencer par un brainstorming libre (Q3.1) puis hierarchiser
156
+ - Bien definir les limites (Q3.4) pour eviter les derives
157
+
158
+ **Lot 2 (Q3.5, Q3.6, Q3.7, Q3.8) : Comment ca se deroule ?**
159
+ - Cartographier le parcours principal puis les variantes
160
+ - Ne pas accepter un parcours uniquement ideal
161
+
162
+ **Lot 3 (Q3.9, Q3.10, Q3.11, Q3.12) : Quels besoins transversaux ?**
163
+ - Identifier les fonctionnalites qui traversent tout le systeme
164
+ - Ces reponses orientent le choix des questionnaires conditionnels
@@ -23,7 +23,7 @@
23
23
  | Documentation module | `/documentation` (auto step-08) | React page intégrée via doc-data.ts + DocRenderer |
24
24
  | Swagger API | Automatic (Swashbuckle) | OpenAPI 3.0 |
25
25
  | User guide | Manual or AI | Markdown / PDF |
26
- | Release notes | `/gitflow:11-finish` | Changelog automatique |
26
+ | Release notes | `/gitflow finish` | Changelog automatique |
27
27
  | ERD (schéma données) | `/documentation` skill | Mermaid diagram |
28
28
 
29
29
  ## Elicitation Guide
@@ -0,0 +1,135 @@
1
+ # Categorie 14 : Risques et hypotheses
2
+
3
+ > **Usage :** Identifier les risques du projet et les hypotheses non validees
4
+ > **Quand charger :** TOUJOURS (noyau, charge dans le cadrage)
5
+ > **Objectif :** Anticiper ce qui pourrait mal tourner et valider les certitudes
6
+
7
+ ---
8
+
9
+ ## 14.1 Les risques identifies
10
+
11
+ > **But :** Lister tout ce qui pourrait empecher le projet de reussir.
12
+
13
+ | # | Question | Type de reponse |
14
+ |---|----------|-----------------|
15
+ | Q14.1 | Quels sont les principaux risques que vous voyez pour ce projet ? Qu'est-ce qui pourrait mal tourner ? | Liste de risques |
16
+ | Q14.2 | Parmi ces risques, lesquels auraient les consequences les plus graves si ils se realisaient ? | Hierarchisation par gravite |
17
+ | Q14.3 | Pour chaque risque grave : avez-vous une idee de comment le prevenir ou le reduire ? | Mesures de mitigation |
18
+
19
+ **Reformulation guidee pour Q14.1 :**
20
+ ```
21
+ question: "Quels sont les principaux risques que vous voyez pour ce projet ?"
22
+ header: "Risques"
23
+ multiSelect: true
24
+ options:
25
+ - label: "Adoption par les utilisateurs"
26
+ description: "Les utilisateurs pourraient ne pas vouloir changer leurs habitudes ou utiliser le nouveau systeme"
27
+ - label: "Qualite des donnees existantes"
28
+ description: "Les donnees actuelles sont incompletes, incorrectes ou dispersees dans plusieurs formats"
29
+ - label: "Complexite des regles metier"
30
+ description: "Certaines regles sont mal documentees, contradictoires ou connues uniquement par quelques personnes"
31
+ - label: "Dependances externes"
32
+ description: "Le projet depend de systemes, equipes ou decisions externes qui pourraient retarder ou bloquer"
33
+ ```
34
+
35
+ ---
36
+
37
+ ## 14.2 Les hypotheses a valider
38
+
39
+ > **But :** Rendre explicites les certitudes non verifiees qui sous-tendent le projet.
40
+
41
+ | # | Question | Type de reponse |
42
+ |---|----------|-----------------|
43
+ | Q14.4 | Quelles hypotheses faites-vous sur le projet ? Qu'est-ce que vous tenez pour acquis sans l'avoir verifie ? | Liste d'hypotheses |
44
+ | Q14.5 | Parmi ces hypotheses, lesquelles seraient les plus graves si elles se revelaient fausses ? | Hierarchisation par impact |
45
+ | Q14.6 | Comment pourriez-vous verifier ces hypotheses avant que le projet avance trop loin ? | Methodes de validation |
46
+
47
+ **Reformulation guidee pour Q14.4 :**
48
+ ```
49
+ question: "Quelles hypotheses faites-vous sur ce projet sans les avoir verifiees ?"
50
+ header: "Hypotheses"
51
+ multiSelect: true
52
+ options:
53
+ - label: "Les utilisateurs vont s'adapter"
54
+ description: "On suppose que les utilisateurs accepteront le changement sans difficulte"
55
+ - label: "Les donnees sont fiables"
56
+ description: "On suppose que les donnees existantes sont correctes et exploitables"
57
+ - label: "Le processus actuel est bien compris"
58
+ description: "On suppose que tout le monde decrit le processus de la meme facon"
59
+ - label: "Les besoins ne changeront pas"
60
+ description: "On suppose que le perimetre restera stable pendant le developpement"
61
+ ```
62
+
63
+ ---
64
+
65
+ ## 14.3 Les lecons du passe
66
+
67
+ > **But :** Tirer parti des experiences precedentes pour eviter de reproduire les erreurs.
68
+
69
+ | # | Question | Type de reponse |
70
+ |---|----------|-----------------|
71
+ | Q14.7 | Y a-t-il eu des projets similaires dans l'entreprise par le passe ? Qu'est-ce qui a fonctionne et qu'est-ce qui a echoue ? | Retour d'experience |
72
+ | Q14.8 | Si ce projet devait echouer, quelle serait la raison la plus probable selon vous ? | Cause d'echec anticipee |
73
+
74
+ **Reformulation guidee pour Q14.8 :**
75
+ ```
76
+ question: "Si ce projet devait echouer, quelle serait la raison la plus probable ?"
77
+ header: "Echec"
78
+ options:
79
+ - label: "Perimetre trop ambitieux"
80
+ description: "Trop de fonctionnalites a developper, pas assez de temps ou de budget"
81
+ - label: "Resistance au changement"
82
+ description: "Les utilisateurs refusent de changer leurs habitudes de travail"
83
+ - label: "Regles metier mal comprises"
84
+ description: "Des malentendus sur le fonctionnement reel du metier"
85
+ - label: "Manque de disponibilite"
86
+ description: "Les personnes cles ne sont pas assez disponibles pour valider et tester"
87
+ ```
88
+
89
+ ---
90
+
91
+ ## Guide d'elicitation approfondi
92
+
93
+ ### Techniques de relance par question
94
+
95
+ | Question | Si la reponse est vague ou insuffisante | Relance recommandee |
96
+ |----------|----------------------------------------|---------------------|
97
+ | Q14.1 (risques) | "Je ne vois pas de risque" | "Pensez aux projets passes : qu'est-ce qui a coince ? Les delais ? L'adoption ? La qualite des donnees ? Les changements de priorite en cours de route ?" |
98
+ | Q14.3 (mitigation) | "On verra quand ca arrivera" | "Si ce risque se realise dans 3 mois, que ferez-vous concretement ? Qui sera responsable de la resolution ?" |
99
+ | Q14.4 (hypotheses) | "On ne fait pas d'hypotheses" | "Par exemple : est-on certain que tous les utilisateurs ont un ordinateur ? Que les donnees actuelles sont completes ? Que le processus est le meme dans tous les services ?" |
100
+ | Q14.7 (passe) | "C'est le premier projet de ce type" | "Y a-t-il eu d'autres tentatives de numerisation ou de changement d'outil ? Meme dans un autre domaine ? Qu'est-ce qui s'est bien passe ?" |
101
+ | Q14.8 (echec) | Refuse de repondre ou "ca ne va pas echouer" | "C'est une question difficile mais importante. Imaginons le pire scenario : qu'est-ce qui en serait la cause ? Cela nous aide a le prevenir." |
102
+
103
+ ### Signaux d'alerte a detecter
104
+
105
+ | Signal du client | Probleme sous-jacent | Action de l'analyste |
106
+ |------------------|---------------------|----------------------|
107
+ | "Il n'y a aucun risque" | **Manque de recul ou deni** | Proposer des risques standards et demander lesquels pourraient s'appliquer |
108
+ | "On ne fait pas d'hypotheses, c'est un fait" | **Certitude non questionnee** | "Comment le savez-vous ? Quand est-ce que cela a ete verifie pour la derniere fois ?" |
109
+ | Risques uniquement techniques | **Vision incomplete** | Ajouter les dimensions humaines (adoption, formation), organisationnelles (disponibilite, politique) et metier (regles changeantes) |
110
+ | Pas de lecon du passe | **Memoire organisationnelle absente** | Chercher aupres d'autres interlocuteurs qui etaient presents lors de projets anterieurs |
111
+
112
+ ---
113
+
114
+ ## Mapping vers le cadrage
115
+
116
+ | Reponse | Alimente |
117
+ |---------|----------|
118
+ | Q14.1, Q14.2, Q14.3 | `cadrage.risks[]` |
119
+ | Q14.4, Q14.5, Q14.6 | `cadrage.risks[]` (type: "assumption") |
120
+ | Q14.7, Q14.8 | `cadrage.risks[]` (enrichissement avec contexte historique) |
121
+
122
+ ---
123
+
124
+ ## Strategie de questionnement
125
+
126
+ ### Ordre des questions en 2 lots
127
+
128
+ **Lot 1 (Q14.1, Q14.2, Q14.3, Q14.4) : Risques et hypotheses**
129
+ - Commencer par les risques visibles puis les hypotheses implicites
130
+ - Hierarchiser par gravite et par probabilite
131
+
132
+ **Lot 2 (Q14.5, Q14.6, Q14.7, Q14.8) : Validation et lecons**
133
+ - Identifier comment verifier les hypotheses
134
+ - Tirer les lecons des experiences passees
135
+ - Terminer par la question difficile de l'echec potentiel