@atlashub/smartstack-cli 1.1.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.
- package/.documentation/agents.html +912 -0
- package/.documentation/apex.html +1014 -0
- package/.documentation/business-analyse.html +1074 -0
- package/.documentation/commands.html +676 -0
- package/.documentation/css/styles.css +2030 -0
- package/.documentation/efcore.html +2501 -0
- package/.documentation/gitflow.html +2053 -0
- package/.documentation/hooks.html +409 -0
- package/.documentation/index.html +319 -0
- package/.documentation/installation.html +458 -0
- package/.documentation/js/app.js +794 -0
- package/.documentation/test-web.html +509 -0
- package/README.md +90 -0
- package/config/default-config.json +86 -0
- package/config/settings.json +53 -0
- package/config/settings.local.example.json +16 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +38198 -0
- package/dist/index.js.map +1 -0
- package/package.json +86 -0
- package/templates/agents/action.md +36 -0
- package/templates/agents/efcore/conflicts.md +57 -0
- package/templates/agents/efcore/db-deploy.md +51 -0
- package/templates/agents/efcore/db-reset.md +59 -0
- package/templates/agents/efcore/db-seed.md +56 -0
- package/templates/agents/efcore/db-status.md +43 -0
- package/templates/agents/efcore/migration.md +85 -0
- package/templates/agents/efcore/rebase-snapshot.md +62 -0
- package/templates/agents/efcore/scan.md +60 -0
- package/templates/agents/efcore/squash.md +67 -0
- package/templates/agents/explore-codebase.md +65 -0
- package/templates/agents/explore-docs.md +97 -0
- package/templates/agents/fix-grammar.md +49 -0
- package/templates/agents/gitflow/abort.md +45 -0
- package/templates/agents/gitflow/cleanup.md +85 -0
- package/templates/agents/gitflow/commit.md +40 -0
- package/templates/agents/gitflow/exec.md +48 -0
- package/templates/agents/gitflow/finish.md +92 -0
- package/templates/agents/gitflow/init.md +139 -0
- package/templates/agents/gitflow/merge.md +62 -0
- package/templates/agents/gitflow/plan.md +42 -0
- package/templates/agents/gitflow/pr.md +78 -0
- package/templates/agents/gitflow/review.md +49 -0
- package/templates/agents/gitflow/start.md +61 -0
- package/templates/agents/gitflow/status.md +32 -0
- package/templates/agents/snipper.md +36 -0
- package/templates/agents/websearch.md +46 -0
- package/templates/commands/_resources/formatting-guide.md +124 -0
- package/templates/commands/ai-prompt.md +315 -0
- package/templates/commands/apex/1-analyze.md +100 -0
- package/templates/commands/apex/2-plan.md +145 -0
- package/templates/commands/apex/3-execute.md +171 -0
- package/templates/commands/apex/4-examine.md +116 -0
- package/templates/commands/apex/5-tasks.md +209 -0
- package/templates/commands/apex.md +76 -0
- package/templates/commands/application/create.md +362 -0
- package/templates/commands/application/templates-backend.md +463 -0
- package/templates/commands/application/templates-frontend.md +517 -0
- package/templates/commands/application/templates-i18n.md +478 -0
- package/templates/commands/application/templates-seed.md +362 -0
- package/templates/commands/application.md +303 -0
- package/templates/commands/business-analyse/1-init.md +269 -0
- package/templates/commands/business-analyse/2-discover.md +520 -0
- package/templates/commands/business-analyse/3-analyse.md +408 -0
- package/templates/commands/business-analyse/4-specify.md +598 -0
- package/templates/commands/business-analyse/5-validate.md +326 -0
- package/templates/commands/business-analyse/6-handoff.md +746 -0
- package/templates/commands/business-analyse/7-doc-html.md +602 -0
- package/templates/commands/business-analyse/bug.md +325 -0
- package/templates/commands/business-analyse/change-request.md +368 -0
- package/templates/commands/business-analyse/hotfix.md +200 -0
- package/templates/commands/business-analyse.md +559 -0
- package/templates/commands/controller/create.md +216 -0
- package/templates/commands/controller/postman-templates.md +528 -0
- package/templates/commands/controller/templates.md +600 -0
- package/templates/commands/controller.md +278 -0
- package/templates/commands/debug.md +95 -0
- package/templates/commands/documentation/module.md +202 -0
- package/templates/commands/documentation/templates.md +432 -0
- package/templates/commands/documentation.md +190 -0
- package/templates/commands/efcore/_env-check.md +153 -0
- package/templates/commands/efcore/conflicts.md +269 -0
- package/templates/commands/efcore/db-deploy.md +193 -0
- package/templates/commands/efcore/db-reset.md +426 -0
- package/templates/commands/efcore/db-seed.md +326 -0
- package/templates/commands/efcore/db-status.md +214 -0
- package/templates/commands/efcore/migration.md +388 -0
- package/templates/commands/efcore/rebase-snapshot.md +264 -0
- package/templates/commands/efcore/scan.md +202 -0
- package/templates/commands/efcore/squash.md +298 -0
- package/templates/commands/efcore.md +176 -0
- package/templates/commands/epct.md +69 -0
- package/templates/commands/explain.md +186 -0
- package/templates/commands/explore.md +45 -0
- package/templates/commands/feature-full.md +267 -0
- package/templates/commands/gitflow/1-init.md +1038 -0
- package/templates/commands/gitflow/10-start.md +768 -0
- package/templates/commands/gitflow/11-finish.md +323 -0
- package/templates/commands/gitflow/12-cleanup.md +276 -0
- package/templates/commands/gitflow/13-sync.md +216 -0
- package/templates/commands/gitflow/14-rebase.md +251 -0
- package/templates/commands/gitflow/2-status.md +167 -0
- package/templates/commands/gitflow/3-commit.md +194 -0
- package/templates/commands/gitflow/4-plan.md +145 -0
- package/templates/commands/gitflow/5-exec.md +147 -0
- package/templates/commands/gitflow/6-abort.md +344 -0
- package/templates/commands/gitflow/7-pull-request.md +226 -0
- package/templates/commands/gitflow/8-review.md +176 -0
- package/templates/commands/gitflow/9-merge.md +224 -0
- package/templates/commands/gitflow.md +128 -0
- package/templates/commands/implement.md +663 -0
- package/templates/commands/notification.md +129 -0
- package/templates/commands/oneshot.md +57 -0
- package/templates/commands/quick-search.md +72 -0
- package/templates/commands/review.md +106 -0
- package/templates/commands/utils/test-web-config.md +160 -0
- package/templates/commands/utils/test-web.md +151 -0
- package/templates/commands/workflow.md +193 -0
- package/templates/gitflow/config.json +138 -0
- package/templates/hooks/ef-migration-check.md +139 -0
- package/templates/hooks/hooks.json +15 -0
- package/templates/skills/ai-prompt/SKILL.md +778 -0
- package/templates/skills/application/SKILL.md +563 -0
- package/templates/skills/application/templates-backend.md +450 -0
- package/templates/skills/application/templates-frontend.md +531 -0
- package/templates/skills/application/templates-i18n.md +520 -0
- package/templates/skills/application/templates-seed.md +647 -0
- package/templates/skills/business-analyse/SKILL.md +191 -0
- package/templates/skills/business-analyse/questionnaire.md +283 -0
- package/templates/skills/business-analyse/templates-frd.md +477 -0
- package/templates/skills/business-analyse/templates-react.md +580 -0
- package/templates/skills/controller/SKILL.md +240 -0
- package/templates/skills/controller/postman-templates.md +614 -0
- package/templates/skills/controller/templates.md +1468 -0
- package/templates/skills/documentation/SKILL.md +133 -0
- package/templates/skills/documentation/templates.md +476 -0
- package/templates/skills/feature-full/SKILL.md +838 -0
- package/templates/skills/notification/SKILL.md +555 -0
- package/templates/skills/ui-components/SKILL.md +870 -0
- package/templates/skills/workflow/SKILL.md +582 -0
- package/templates/test-web/api-health.json +38 -0
- package/templates/test-web/minimal.json +19 -0
- package/templates/test-web/npm-package.json +46 -0
- package/templates/test-web/seo-check.json +54 -0
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Bug resolution documentation and specification (ULTRATHINK)
|
|
3
|
+
agent: ba-bug
|
|
4
|
+
model: sonnet
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Documentation Bug - Business Analyse
|
|
8
|
+
|
|
9
|
+
> **Modèle:** Sonnet (analyse root cause)
|
|
10
|
+
> **Output:** `.business-analyse/.../tracking/bugs/BUG-XXX.md`
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## QUAND UTILISER
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
╔══════════════════════════════════════════════════════════════════════════════╗
|
|
18
|
+
║ DOCUMENTATION BUG: Traçabilité et analyse structurée ║
|
|
19
|
+
╠══════════════════════════════════════════════════════════════════════════════╣
|
|
20
|
+
║ ║
|
|
21
|
+
║ Utiliser cette commande pour: ║
|
|
22
|
+
║ • Documenter un bug découvert après implémentation ║
|
|
23
|
+
║ • Analyser la root cause ║
|
|
24
|
+
║ • Créer un prompt de correction pour Claude ║
|
|
25
|
+
║ • Maintenir la traçabilité vers les specs (FR/BR impactés) ║
|
|
26
|
+
║ ║
|
|
27
|
+
║ NE PAS utiliser pour: ║
|
|
28
|
+
║ • Hotfix urgent (utiliser /business-analyse:hotfix) ║
|
|
29
|
+
║ • Changement de scope (utiliser /business-analyse:change-request) ║
|
|
30
|
+
║ ║
|
|
31
|
+
╚══════════════════════════════════════════════════════════════════════════════╝
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## STEP 1: Collecte des informations
|
|
37
|
+
|
|
38
|
+
```javascript
|
|
39
|
+
AskUserQuestion({
|
|
40
|
+
questions: [
|
|
41
|
+
{
|
|
42
|
+
question: "Quelle feature est impactée par ce bug?",
|
|
43
|
+
header: "Feature",
|
|
44
|
+
options: [
|
|
45
|
+
{ label: "Feature existante", description: "Bug sur une feature documentée" },
|
|
46
|
+
{ label: "Nouvelle", description: "Bug sur code non documenté en BA" }
|
|
47
|
+
],
|
|
48
|
+
multiSelect: false
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
question: "Quelle est la sévérité du bug?",
|
|
52
|
+
header: "Sévérité",
|
|
53
|
+
options: [
|
|
54
|
+
{ label: "Critique", description: "Bloque l'utilisation, perte de données" },
|
|
55
|
+
{ label: "Majeur", description: "Fonctionnalité principale impactée" },
|
|
56
|
+
{ label: "Mineur", description: "Workaround possible" },
|
|
57
|
+
{ label: "Cosmétique", description: "UI/UX, pas d'impact fonctionnel" }
|
|
58
|
+
],
|
|
59
|
+
multiSelect: false
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
question: "Le bug est-il reproductible?",
|
|
63
|
+
header: "Repro",
|
|
64
|
+
options: [
|
|
65
|
+
{ label: "Toujours", description: "100% reproductible" },
|
|
66
|
+
{ label: "Souvent", description: ">50% du temps" },
|
|
67
|
+
{ label: "Parfois", description: "<50% du temps" },
|
|
68
|
+
{ label: "Rarement", description: "Difficile à reproduire" }
|
|
69
|
+
],
|
|
70
|
+
multiSelect: false
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
})
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## STEP 2: Générer Bug ID
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
FEATURE_ID=$1 # Optionnel
|
|
82
|
+
DATE=$(date +%Y%m%d)
|
|
83
|
+
|
|
84
|
+
# Lire le dernier bug ID
|
|
85
|
+
LAST_BUG_ID=$(find .business-analyse -name "BUG-*.md" | grep -oP 'BUG-\K\d+' | sort -n | tail -1 || echo "0")
|
|
86
|
+
NEW_BUG_ID=$(printf "%03d" $((LAST_BUG_ID + 1)))
|
|
87
|
+
BUG_ID="BUG-$NEW_BUG_ID"
|
|
88
|
+
|
|
89
|
+
# Déterminer le dossier
|
|
90
|
+
if [ -n "$FEATURE_ID" ]; then
|
|
91
|
+
FEATURE_DIR=$(find .business-analyse -type d -name "${FEATURE_ID}*" | head -1)
|
|
92
|
+
BUG_DIR="$FEATURE_DIR/tracking/bugs"
|
|
93
|
+
else
|
|
94
|
+
BUG_DIR=".business-analyse/tracking/bugs"
|
|
95
|
+
fi
|
|
96
|
+
|
|
97
|
+
mkdir -p "$BUG_DIR"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## STEP 3: Collecte détaillée
|
|
103
|
+
|
|
104
|
+
Demander à l'utilisateur:
|
|
105
|
+
|
|
106
|
+
1. **Description du bug** (comportement observé vs attendu)
|
|
107
|
+
2. **Étapes de reproduction**
|
|
108
|
+
3. **Environnement** (browser, OS, données de test)
|
|
109
|
+
4. **Screenshots/logs** si disponibles
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## STEP 4: Analyse root cause
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
╔══════════════════════════════════════════════════════════════════════════════╗
|
|
117
|
+
║ ANALYSE ROOT CAUSE (5 WHYS) ║
|
|
118
|
+
╠══════════════════════════════════════════════════════════════════════════════╣
|
|
119
|
+
║ ║
|
|
120
|
+
║ 1. POURQUOI le bug se produit? ║
|
|
121
|
+
║ → {réponse niveau 1} ║
|
|
122
|
+
║ ║
|
|
123
|
+
║ 2. POURQUOI {réponse niveau 1}? ║
|
|
124
|
+
║ → {réponse niveau 2} ║
|
|
125
|
+
║ ║
|
|
126
|
+
║ 3. POURQUOI {réponse niveau 2}? ║
|
|
127
|
+
║ → {réponse niveau 3} ║
|
|
128
|
+
║ ║
|
|
129
|
+
║ ... jusqu'à identifier la ROOT CAUSE ║
|
|
130
|
+
║ ║
|
|
131
|
+
╚══════════════════════════════════════════════════════════════════════════════╝
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## STEP 5: Génération du document
|
|
137
|
+
|
|
138
|
+
### Template BUG-XXX.md
|
|
139
|
+
|
|
140
|
+
```markdown
|
|
141
|
+
# {BUG_ID} - {Bug Title}
|
|
142
|
+
|
|
143
|
+
> **Feature:** {FEATURE_ID} (si applicable)
|
|
144
|
+
> **Sévérité:** {Critique/Majeur/Mineur/Cosmétique}
|
|
145
|
+
> **Status:** Open
|
|
146
|
+
> **Date:** {YYYY-MM-DD}
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## 1. Description
|
|
151
|
+
|
|
152
|
+
### Comportement observé
|
|
153
|
+
{Description précise de ce qui se passe}
|
|
154
|
+
|
|
155
|
+
### Comportement attendu
|
|
156
|
+
{Ce qui devrait se passer selon les specs}
|
|
157
|
+
|
|
158
|
+
### Impact
|
|
159
|
+
- Utilisateurs impactés: {qui}
|
|
160
|
+
- Fonctionnalité: {laquelle}
|
|
161
|
+
- Workaround: {existe/n'existe pas}
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## 2. Reproduction
|
|
166
|
+
|
|
167
|
+
### Prérequis
|
|
168
|
+
- Environnement: {dev/staging/prod}
|
|
169
|
+
- Rôle utilisateur: {rôle}
|
|
170
|
+
- Données requises: {données de test}
|
|
171
|
+
|
|
172
|
+
### Étapes
|
|
173
|
+
1. {Étape 1}
|
|
174
|
+
2. {Étape 2}
|
|
175
|
+
3. {Étape 3}
|
|
176
|
+
4. → Bug observé
|
|
177
|
+
|
|
178
|
+
### Reproductibilité
|
|
179
|
+
{Toujours/Souvent/Parfois/Rarement}
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## 3. Analyse
|
|
184
|
+
|
|
185
|
+
### 3.1 Root Cause Analysis (5 Whys)
|
|
186
|
+
|
|
187
|
+
| # | Question | Réponse |
|
|
188
|
+
|---|----------|---------|
|
|
189
|
+
| 1 | Pourquoi le bug se produit? | {réponse} |
|
|
190
|
+
| 2 | Pourquoi {réponse 1}? | {réponse} |
|
|
191
|
+
| 3 | Pourquoi {réponse 2}? | {réponse} |
|
|
192
|
+
| 4 | Pourquoi {réponse 3}? | {réponse} |
|
|
193
|
+
| 5 | Pourquoi {réponse 4}? | **ROOT CAUSE: {cause}** |
|
|
194
|
+
|
|
195
|
+
### 3.2 Specs impactées
|
|
196
|
+
|
|
197
|
+
| Type | ID | Description | Impact |
|
|
198
|
+
|------|----|----|--------|
|
|
199
|
+
| Règle métier | BR-XXX | {description} | {comment impacté} |
|
|
200
|
+
| Exigence | FR-XXX | {description} | {comment impacté} |
|
|
201
|
+
| Use Case | UC-XXX | {description} | {comment impacté} |
|
|
202
|
+
|
|
203
|
+
### 3.3 Code impacté
|
|
204
|
+
|
|
205
|
+
| Fichier | Ligne(s) | Description |
|
|
206
|
+
|---------|----------|-------------|
|
|
207
|
+
| `{path/to/file}` | ~{lines} | {ce qui est incorrect} |
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 4. Solution proposée
|
|
212
|
+
|
|
213
|
+
### 4.1 Correction
|
|
214
|
+
|
|
215
|
+
{Description de la correction à apporter}
|
|
216
|
+
|
|
217
|
+
### 4.2 Fichiers à modifier
|
|
218
|
+
|
|
219
|
+
| Fichier | Modification |
|
|
220
|
+
|---------|--------------|
|
|
221
|
+
| `{path}` | {description du changement} |
|
|
222
|
+
|
|
223
|
+
### 4.3 Tests à ajouter
|
|
224
|
+
|
|
225
|
+
```gherkin
|
|
226
|
+
@bugfix @{BUG_ID}
|
|
227
|
+
Scenario: {BUG_ID} - {description}
|
|
228
|
+
Given {contexte}
|
|
229
|
+
When {action qui causait le bug}
|
|
230
|
+
Then {comportement correct attendu}
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## 5. Prompt de correction
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
CONTEXTE:
|
|
239
|
+
Bug {BUG_ID} à corriger dans le module business/{app}/{module}
|
|
240
|
+
|
|
241
|
+
ROOT CAUSE:
|
|
242
|
+
{root cause identifiée}
|
|
243
|
+
|
|
244
|
+
CORRECTION:
|
|
245
|
+
{description de la correction}
|
|
246
|
+
|
|
247
|
+
FICHIERS À MODIFIER:
|
|
248
|
+
{liste des fichiers}
|
|
249
|
+
|
|
250
|
+
TEST DE VALIDATION:
|
|
251
|
+
Après correction, le scénario Gherkin suivant doit passer:
|
|
252
|
+
{scénario}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## 6. Validation
|
|
258
|
+
|
|
259
|
+
### Critères d'acceptation
|
|
260
|
+
- [ ] Bug n'est plus reproductible
|
|
261
|
+
- [ ] Tests de régression passent
|
|
262
|
+
- [ ] Nouveau test ajouté pour ce cas
|
|
263
|
+
- [ ] Code review effectué
|
|
264
|
+
|
|
265
|
+
### Environnements testés
|
|
266
|
+
- [ ] Local
|
|
267
|
+
- [ ] Staging
|
|
268
|
+
- [ ] Production (si applicable)
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## 7. Prévention
|
|
273
|
+
|
|
274
|
+
### Comment éviter ce type de bug à l'avenir?
|
|
275
|
+
|
|
276
|
+
| Action | Responsable | Deadline |
|
|
277
|
+
|--------|-------------|----------|
|
|
278
|
+
| {action préventive} | {qui} | {quand} |
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## Historique
|
|
283
|
+
|
|
284
|
+
| Date | Action | Par |
|
|
285
|
+
|------|--------|-----|
|
|
286
|
+
| {date} | Création | {auteur} |
|
|
287
|
+
| {date} | Analyse | {auteur} |
|
|
288
|
+
| {date} | Correction | {dev} |
|
|
289
|
+
| {date} | Validation | {qa} |
|
|
290
|
+
| {date} | Fermé | {pm} |
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## STEP 6: Résumé
|
|
296
|
+
|
|
297
|
+
```
|
|
298
|
+
================================================================================
|
|
299
|
+
BUG DOCUMENTÉ - {BUG_ID}
|
|
300
|
+
================================================================================
|
|
301
|
+
|
|
302
|
+
FICHIER: {BUG_DIR}/{BUG_ID}.md
|
|
303
|
+
FEATURE LIÉE: {FEATURE_ID ou "N/A"}
|
|
304
|
+
SÉVÉRITÉ: {sévérité}
|
|
305
|
+
ROOT CAUSE: {résumé}
|
|
306
|
+
|
|
307
|
+
SPECS IMPACTÉES:
|
|
308
|
+
• BR: {liste ou "Aucune"}
|
|
309
|
+
• FR: {liste ou "Aucune"}
|
|
310
|
+
• UC: {liste ou "Aucune"}
|
|
311
|
+
|
|
312
|
+
================================================================================
|
|
313
|
+
CORRECTION
|
|
314
|
+
================================================================================
|
|
315
|
+
|
|
316
|
+
Utilisez le prompt de correction dans la section 5 pour demander
|
|
317
|
+
à Claude de corriger ce bug.
|
|
318
|
+
|
|
319
|
+
Si c'est un hotfix urgent, utilisez:
|
|
320
|
+
/business-analyse:hotfix {BUG_ID}
|
|
321
|
+
|
|
322
|
+
================================================================================
|
|
323
|
+
|
|
324
|
+
Contact support: support@atlshub.ch
|
|
325
|
+
```
|
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Phase 10 - Change Request - Formal specification change during development
|
|
3
|
+
agent: ba-change-request
|
|
4
|
+
model: sonnet
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Change Request - Modification Post-Handoff
|
|
8
|
+
|
|
9
|
+
> **Modèle:** Sonnet (analyse d'impact)
|
|
10
|
+
> **Usage:** Changement de scope après validation/handoff
|
|
11
|
+
> **Output:** `.business-analyse/.../tracking/changes/CR-FEAT-XXX-NNN.md`
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## QUAND UTILISER
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
╔══════════════════════════════════════════════════════════════════════════════╗
|
|
19
|
+
║ CHANGE REQUEST: Modification formelle des spécifications ║
|
|
20
|
+
╠══════════════════════════════════════════════════════════════════════════════╣
|
|
21
|
+
║ ║
|
|
22
|
+
║ Utiliser APRÈS validation (phase 5) ou handoff (phase 6) quand: ║
|
|
23
|
+
║ ║
|
|
24
|
+
║ • Le stakeholder demande une modification de scope ║
|
|
25
|
+
║ • Une nouvelle exigence est découverte ║
|
|
26
|
+
║ • Un cas d'usage manquant est identifié ║
|
|
27
|
+
║ • Une règle métier doit être modifiée ║
|
|
28
|
+
║ ║
|
|
29
|
+
║ PROCESSUS: ║
|
|
30
|
+
║ 1. Documenter le changement demandé ║
|
|
31
|
+
║ 2. Analyser l'impact sur les specs existantes ║
|
|
32
|
+
║ 3. Estimer l'effort ║
|
|
33
|
+
║ 4. Obtenir approbation ║
|
|
34
|
+
║ 5. Mettre à jour les documents (avec versioning) ║
|
|
35
|
+
║ ║
|
|
36
|
+
╚══════════════════════════════════════════════════════════════════════════════╝
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## STEP 1: Identification
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
FEATURE_ID=$1
|
|
45
|
+
FEATURE_DIR=$(find .business-analyse -type d -name "${FEATURE_ID}*" | head -1)
|
|
46
|
+
|
|
47
|
+
if [ -z "$FEATURE_DIR" ]; then
|
|
48
|
+
echo "❌ ERREUR: Feature $FEATURE_ID non trouvée"
|
|
49
|
+
exit 1
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
# Générer CR ID
|
|
53
|
+
EXISTING_CRS=$(find "$FEATURE_DIR/tracking/changes" -name "CR-*.md" 2>/dev/null | wc -l)
|
|
54
|
+
CR_NUM=$(printf "%03d" $((EXISTING_CRS + 1)))
|
|
55
|
+
CR_ID="CR-${FEATURE_ID}-${CR_NUM}"
|
|
56
|
+
|
|
57
|
+
CR_DIR="$FEATURE_DIR/tracking/changes"
|
|
58
|
+
mkdir -p "$CR_DIR"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## STEP 2: Collecte du changement
|
|
64
|
+
|
|
65
|
+
```javascript
|
|
66
|
+
AskUserQuestion({
|
|
67
|
+
questions: [
|
|
68
|
+
{
|
|
69
|
+
question: "Quel type de changement est demandé?",
|
|
70
|
+
header: "Type",
|
|
71
|
+
options: [
|
|
72
|
+
{ label: "Nouvelle fonctionnalité", description: "Ajouter quelque chose de nouveau" },
|
|
73
|
+
{ label: "Modification existant", description: "Changer un comportement" },
|
|
74
|
+
{ label: "Suppression", description: "Retirer une fonctionnalité" },
|
|
75
|
+
{ label: "Clarification", description: "Préciser une spec ambiguë" }
|
|
76
|
+
],
|
|
77
|
+
multiSelect: false
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
question: "Quelle est la priorité de ce changement?",
|
|
81
|
+
header: "Priorité",
|
|
82
|
+
options: [
|
|
83
|
+
{ label: "Critique", description: "Bloque la release" },
|
|
84
|
+
{ label: "Haute", description: "Important pour le MVP" },
|
|
85
|
+
{ label: "Moyenne", description: "Souhaitable" },
|
|
86
|
+
{ label: "Basse", description: "Nice-to-have" }
|
|
87
|
+
],
|
|
88
|
+
multiSelect: false
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
question: "Ce changement est-il approuvé par le sponsor?",
|
|
92
|
+
header: "Approbation",
|
|
93
|
+
options: [
|
|
94
|
+
{ label: "Oui, approuvé", description: "Sponsor a validé" },
|
|
95
|
+
{ label: "En attente", description: "Discussion en cours" },
|
|
96
|
+
{ label: "À soumettre", description: "Pas encore discuté" }
|
|
97
|
+
],
|
|
98
|
+
multiSelect: false
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
})
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## STEP 3: Description détaillée
|
|
107
|
+
|
|
108
|
+
Collecter:
|
|
109
|
+
- Description du changement demandé
|
|
110
|
+
- Justification business
|
|
111
|
+
- Demandeur (qui a demandé)
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## STEP 4: Analyse d'impact
|
|
116
|
+
|
|
117
|
+
### 4.1 Impact sur les documents
|
|
118
|
+
|
|
119
|
+
Analyser automatiquement les documents existants:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# Lire les documents
|
|
123
|
+
DISCOVERY=$(cat "$FEATURE_DIR/1-discovery.md" 2>/dev/null)
|
|
124
|
+
BRD=$(cat "$FEATURE_DIR/2-business-requirements.md" 2>/dev/null)
|
|
125
|
+
FRD=$(cat "$FEATURE_DIR/3-functional-specification.md" 2>/dev/null)
|
|
126
|
+
HANDOFF=$(cat "$FEATURE_DIR/4-development-handoff.md" 2>/dev/null)
|
|
127
|
+
|
|
128
|
+
# Identifier les sections impactées
|
|
129
|
+
echo "Analyse d'impact en cours..."
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### 4.2 Matrice d'impact
|
|
133
|
+
|
|
134
|
+
| Document | Section | Impact | Modification requise |
|
|
135
|
+
|----------|---------|--------|---------------------|
|
|
136
|
+
| Discovery | Périmètre | {Aucun/Mineur/Majeur} | {description} |
|
|
137
|
+
| BRD | Règles métier | {Aucun/Mineur/Majeur} | {description} |
|
|
138
|
+
| FRD | Use Cases | {Aucun/Mineur/Majeur} | {description} |
|
|
139
|
+
| FRD | Wireframes | {Aucun/Mineur/Majeur} | {description} |
|
|
140
|
+
| FRD | Permissions | {Aucun/Mineur/Majeur} | {description} |
|
|
141
|
+
| Handoff | Instructions | {Aucun/Mineur/Majeur} | {description} |
|
|
142
|
+
|
|
143
|
+
### 4.3 Impact sur le code (si déjà implémenté)
|
|
144
|
+
|
|
145
|
+
| Couche | Fichiers impactés | Type de modification |
|
|
146
|
+
|--------|-------------------|---------------------|
|
|
147
|
+
| Domain | {fichiers} | {ajouter/modifier/supprimer} |
|
|
148
|
+
| Application | {fichiers} | {ajouter/modifier/supprimer} |
|
|
149
|
+
| Infrastructure | {fichiers} | {ajouter/modifier/supprimer} |
|
|
150
|
+
| API | {fichiers} | {ajouter/modifier/supprimer} |
|
|
151
|
+
| Frontend | {fichiers} | {ajouter/modifier/supprimer} |
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## STEP 5: Estimation effort
|
|
156
|
+
|
|
157
|
+
| Composant | Effort estimé | Complexité |
|
|
158
|
+
|-----------|---------------|------------|
|
|
159
|
+
| Mise à jour specs | {heures} | {Simple/Moyen/Complexe} |
|
|
160
|
+
| Backend | {heures} | {Simple/Moyen/Complexe} |
|
|
161
|
+
| Frontend | {heures} | {Simple/Moyen/Complexe} |
|
|
162
|
+
| Tests | {heures} | {Simple/Moyen/Complexe} |
|
|
163
|
+
| **Total** | **{heures}** | |
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## STEP 6: Génération du document CR
|
|
168
|
+
|
|
169
|
+
### Template CR-FEAT-XXX-NNN.md
|
|
170
|
+
|
|
171
|
+
```markdown
|
|
172
|
+
# {CR_ID} - Change Request
|
|
173
|
+
|
|
174
|
+
> **Feature:** {FEATURE_ID}
|
|
175
|
+
> **Type:** {Nouvelle fonctionnalité/Modification/Suppression/Clarification}
|
|
176
|
+
> **Priorité:** {Critique/Haute/Moyenne/Basse}
|
|
177
|
+
> **Status:** {En attente/Approuvé/Rejeté/Implémenté}
|
|
178
|
+
> **Date:** {YYYY-MM-DD}
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## 1. Changement demandé
|
|
183
|
+
|
|
184
|
+
### Description
|
|
185
|
+
{Description détaillée du changement}
|
|
186
|
+
|
|
187
|
+
### Justification business
|
|
188
|
+
{Pourquoi ce changement est nécessaire}
|
|
189
|
+
|
|
190
|
+
### Demandeur
|
|
191
|
+
{Nom et rôle du demandeur}
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 2. Analyse d'impact
|
|
196
|
+
|
|
197
|
+
### 2.1 Documents impactés
|
|
198
|
+
|
|
199
|
+
| Document | Version actuelle | Impact | Action |
|
|
200
|
+
|----------|-----------------|--------|--------|
|
|
201
|
+
| 1-discovery.md | 1.0 | {impact} | {action} |
|
|
202
|
+
| 2-brd.md | 1.0 | {impact} | {action} |
|
|
203
|
+
| 3-frd.md | 1.0 | {impact} | {action} |
|
|
204
|
+
| 4-handoff.md | 1.0 | {impact} | {action} |
|
|
205
|
+
|
|
206
|
+
### 2.2 Specs impactées
|
|
207
|
+
|
|
208
|
+
| Type | ID | Modification |
|
|
209
|
+
|------|----|----|
|
|
210
|
+
| Règle métier | BR-XXX | {Modifier/Ajouter/Supprimer: description} |
|
|
211
|
+
| Use Case | UC-XXX | {Modifier/Ajouter/Supprimer: description} |
|
|
212
|
+
| Exigence | FR-XXX | {Modifier/Ajouter/Supprimer: description} |
|
|
213
|
+
|
|
214
|
+
### 2.3 Code impacté (si déjà développé)
|
|
215
|
+
|
|
216
|
+
| Fichier | Modification |
|
|
217
|
+
|---------|--------------|
|
|
218
|
+
| `{path}` | {description} |
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## 3. Effort estimé
|
|
223
|
+
|
|
224
|
+
| Composant | Effort | Risque |
|
|
225
|
+
|-----------|--------|--------|
|
|
226
|
+
| Specs | {heures} | {Faible/Moyen/Élevé} |
|
|
227
|
+
| Backend | {heures} | {Faible/Moyen/Élevé} |
|
|
228
|
+
| Frontend | {heures} | {Faible/Moyen/Élevé} |
|
|
229
|
+
| Tests | {heures} | {Faible/Moyen/Élevé} |
|
|
230
|
+
| **Total** | **{heures}** | |
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## 4. Décision
|
|
235
|
+
|
|
236
|
+
### Recommandation
|
|
237
|
+
{Accepter/Rejeter/Reporter} ce changement
|
|
238
|
+
|
|
239
|
+
### Justification
|
|
240
|
+
{Pourquoi cette recommandation}
|
|
241
|
+
|
|
242
|
+
### Conditions (si accepté)
|
|
243
|
+
- {Condition 1}
|
|
244
|
+
- {Condition 2}
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## 5. Approbation
|
|
249
|
+
|
|
250
|
+
| Rôle | Nom | Décision | Date |
|
|
251
|
+
|------|-----|----------|------|
|
|
252
|
+
| Product Owner | {nom} | {Approuvé/Rejeté} | {date} |
|
|
253
|
+
| Tech Lead | {nom} | {Approuvé/Rejeté} | {date} |
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## 6. Implémentation (si approuvé)
|
|
258
|
+
|
|
259
|
+
### 6.1 Mise à jour des specs
|
|
260
|
+
|
|
261
|
+
| Document | Nouvelle version | Modifications |
|
|
262
|
+
|----------|-----------------|---------------|
|
|
263
|
+
| 3-frd.md | 1.1 | {description} |
|
|
264
|
+
|
|
265
|
+
### 6.2 Prompt de modification
|
|
266
|
+
|
|
267
|
+
```
|
|
268
|
+
CHANGE REQUEST: {CR_ID}
|
|
269
|
+
|
|
270
|
+
CHANGEMENT À IMPLÉMENTER:
|
|
271
|
+
{description du changement}
|
|
272
|
+
|
|
273
|
+
FICHIERS À MODIFIER:
|
|
274
|
+
{liste des fichiers}
|
|
275
|
+
|
|
276
|
+
TESTS À AJOUTER:
|
|
277
|
+
{scénarios Gherkin}
|
|
278
|
+
|
|
279
|
+
VALIDATION:
|
|
280
|
+
{critères de validation}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## 7. Historique
|
|
286
|
+
|
|
287
|
+
| Date | Action | Par |
|
|
288
|
+
|------|--------|-----|
|
|
289
|
+
| {date} | CR créé | {auteur} |
|
|
290
|
+
| {date} | Analyse complétée | {auteur} |
|
|
291
|
+
| {date} | {Approuvé/Rejeté} | {décideur} |
|
|
292
|
+
| {date} | Implémenté | {dev} |
|
|
293
|
+
| {date} | Validé | {qa} |
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## STEP 7: Actions post-approbation
|
|
299
|
+
|
|
300
|
+
Si le CR est approuvé:
|
|
301
|
+
|
|
302
|
+
### 7.1 Mise à jour des documents
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
# Incrémenter version des documents impactés
|
|
306
|
+
# 1.0 → 1.1 pour changement mineur
|
|
307
|
+
# 1.0 → 2.0 pour changement majeur
|
|
308
|
+
|
|
309
|
+
# Ajouter dans l'historique de chaque document:
|
|
310
|
+
# | 1.1 | {date} | BA | CR-FEAT-XXX-001: {description} |
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### 7.2 Options d'implémentation
|
|
314
|
+
|
|
315
|
+
```javascript
|
|
316
|
+
AskUserQuestion({
|
|
317
|
+
questions: [{
|
|
318
|
+
question: "Comment souhaitez-vous implémenter ce changement?",
|
|
319
|
+
header: "Action",
|
|
320
|
+
options: [
|
|
321
|
+
{ label: "Implémentation immédiate", description: "Générer prompt et implémenter maintenant" },
|
|
322
|
+
{ label: "Planifier", description: "Ajouter au backlog pour plus tard" },
|
|
323
|
+
{ label: "Mettre à jour specs seulement", description: "Modifier les documents, implémenter plus tard" }
|
|
324
|
+
],
|
|
325
|
+
multiSelect: false
|
|
326
|
+
}]
|
|
327
|
+
})
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## STEP 8: Résumé
|
|
333
|
+
|
|
334
|
+
```
|
|
335
|
+
================================================================================
|
|
336
|
+
CHANGE REQUEST CRÉÉ - {CR_ID}
|
|
337
|
+
================================================================================
|
|
338
|
+
|
|
339
|
+
FEATURE: {FEATURE_ID}
|
|
340
|
+
TYPE: {type}
|
|
341
|
+
PRIORITÉ: {priorité}
|
|
342
|
+
STATUS: {status}
|
|
343
|
+
|
|
344
|
+
IMPACT:
|
|
345
|
+
Documents: {N} impactés
|
|
346
|
+
Règles métier: {N} modifiées
|
|
347
|
+
Code: {N} fichiers
|
|
348
|
+
|
|
349
|
+
EFFORT ESTIMÉ: {N} heures
|
|
350
|
+
|
|
351
|
+
================================================================================
|
|
352
|
+
PROCHAINES ÉTAPES
|
|
353
|
+
================================================================================
|
|
354
|
+
|
|
355
|
+
SI APPROUVÉ:
|
|
356
|
+
1. Mettre à jour les specs avec versioning
|
|
357
|
+
2. Générer prompt de modification
|
|
358
|
+
3. Implémenter les changements
|
|
359
|
+
4. Valider et fermer le CR
|
|
360
|
+
|
|
361
|
+
SI REJETÉ:
|
|
362
|
+
1. Documenter la raison
|
|
363
|
+
2. Archiver le CR
|
|
364
|
+
|
|
365
|
+
================================================================================
|
|
366
|
+
|
|
367
|
+
Contact support: support@atlshub.ch
|
|
368
|
+
```
|