@atlashub/smartstack-cli 1.7.0 → 1.8.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.
@@ -216,14 +216,40 @@ git push origin --delete feature/{name} 2>/dev/null || true
216
216
  ```
217
217
 
218
218
  **Resume:**
219
+
219
220
  ```
220
- FEATURE FINALISEE
221
- ────────────────────────────────
222
- Branche: feature/{name}
223
- Mergee: develop
224
- PR: #{number}
225
- Cleanup: ✓ Branche supprimee
226
- ────────────────────────────────
221
+ ═══════════════════════════════════════════════════════════════════════════════
222
+ FEATURE FINALISÉE
223
+ ═══════════════════════════════════════════════════════════════════════════════
224
+
225
+ FINISH DETAILS
226
+ ───────────────────────────────────────────────────────────────────────────────
227
+ • Type: feature
228
+ • Branche: feature/{name}
229
+ • Mergée: develop
230
+ • PR: #{number}
231
+
232
+ WORKFLOW STATUT
233
+ ───────────────────────────────────────────────────────────────────────────────
234
+ ✓ PR #{number} mergée avec succès
235
+ ✓ Branche feature/{name} supprimée (local)
236
+ ✓ Branche feature/{name} supprimée (remote)
237
+ ✓ Worktree nettoyé
238
+
239
+ ═══════════════════════════════════════════════════════════════════════════════
240
+ PROCHAINES ÉTAPES
241
+ ═══════════════════════════════════════════════════════════════════════════════
242
+
243
+ 1. Créer une nouvelle feature:
244
+ /gitflow:10-start feature {name}
245
+
246
+ 2. Créer une release (si prêt pour production):
247
+ /gitflow:10-start release
248
+
249
+ 3. Voir le statut du repo:
250
+ /gitflow:2-status
251
+
252
+ ═══════════════════════════════════════════════════════════════════════════════
227
253
  ```
228
254
 
229
255
  ---
@@ -251,9 +277,29 @@ git push origin "v$VERSION"
251
277
  git checkout develop
252
278
  git pull origin develop
253
279
  git merge main --no-ff -m "chore: merge release v$VERSION back to develop"
280
+
281
+ # 4. AUTO-INCREMENT MINOR VERSION sur develop (prepare next release)
282
+ # Ceci evite que les futures features utilisent la meme version que la release
283
+ CURRENT_VERSION=$(cat package.json | jq -r '.version')
284
+
285
+ # Calculer la prochaine version MINOR (ex: 1.2.0 -> 1.3.0)
286
+ NEXT_VERSION=$(node -e "
287
+ const [major, minor, patch] = '$CURRENT_VERSION'.split('.').map(Number);
288
+ console.log([major, minor + 1, 0].join('.'));
289
+ ")
290
+
291
+ # Mettre a jour package.json avec la nouvelle version
292
+ npm version $NEXT_VERSION --no-git-tag-version
293
+
294
+ # Committer le bump de version
295
+ git add package.json package-lock.json
296
+ git commit -m "chore: bump develop to v$NEXT_VERSION for next release"
297
+
254
298
  git push origin develop
255
299
 
256
- # 4. Cleanup worktree + branche
300
+ echo "OK Version develop incrementee: $CURRENT_VERSION -> $NEXT_VERSION"
301
+
302
+ # 5. Cleanup worktree + branche
257
303
  WORKTREE_PATH="../worktrees/releases/v$VERSION"
258
304
  if [ -d "$WORKTREE_PATH" ]; then
259
305
  git worktree remove "$WORKTREE_PATH" --force 2>/dev/null || true
@@ -263,20 +309,50 @@ git push origin --delete release/v$VERSION 2>/dev/null || true
263
309
  ```
264
310
 
265
311
  **Resume:**
312
+
266
313
  ```
267
- RELEASE FINALISEE
268
- ════════════════════════════════════════
269
- Version: v{version}
270
- Tag: v{version} ✓
271
- Main: ✓ Mergee
272
- Develop: ✓ Merge back complete
273
-
274
- Actions effectuees:
275
- Tag v{version} cree et pousse
276
- Main mis a jour
277
- ✓ Develop synchronise avec main
278
- ✓ Branche release supprimee
279
- ════════════════════════════════════════
314
+ ═══════════════════════════════════════════════════════════════════════════════
315
+ RELEASE FINALISÉE
316
+ ═══════════════════════════════════════════════════════════════════════════════
317
+
318
+ RELEASE DETAILS
319
+ ───────────────────────────────────────────────────────────────────────────────
320
+ • Type: release
321
+ Branche: release/v{version}
322
+ Version: v{version}
323
+ Tag: v{version}
324
+
325
+ VERSIONING
326
+ ───────────────────────────────────────────────────────────────────────────────
327
+ • Release: v{version} → Déployée sur main
328
+ • Develop: {version} → {NEXT_VERSION} (auto-incrémenté)
329
+
330
+ WORKFLOW STATUT
331
+ ───────────────────────────────────────────────────────────────────────────────
332
+ ✓ PR mergée sur main
333
+ ✓ Tag v{version} créé et poussé
334
+ ✓ Main mis à jour
335
+ ✓ Merge back vers develop effectué
336
+ ✓ Version develop incrémentée ({version} → {NEXT_VERSION})
337
+ ✓ Branche release/{version} supprimée
338
+ ✓ Worktree nettoyé
339
+
340
+ ═══════════════════════════════════════════════════════════════════════════════
341
+ PROCHAINES ÉTAPES
342
+ ═══════════════════════════════════════════════════════════════════════════════
343
+
344
+ ✅ Release v{version} déployée avec succès!
345
+
346
+ 1. Créer une nouvelle feature:
347
+ /gitflow:10-start feature {name}
348
+
349
+ 2. Créer un hotfix (si besoin):
350
+ /gitflow:10-start hotfix {name}
351
+
352
+ 3. Voir le statut du repo:
353
+ /gitflow:2-status
354
+
355
+ ═══════════════════════════════════════════════════════════════════════════════
280
356
  ```
281
357
 
282
358
  ---
@@ -324,7 +400,7 @@ git pull origin develop
324
400
  git merge main --no-ff -m "chore: merge hotfix v$NEW_VERSION back to develop"
325
401
  git push origin develop
326
402
 
327
- # 5. Cleanup worktree + branche
403
+ # 6. Cleanup worktree + branche
328
404
  WORKTREE_PATH="../worktrees/hotfixes/{name}"
329
405
  if [ -d "$WORKTREE_PATH" ]; then
330
406
  git worktree remove "$WORKTREE_PATH" --force 2>/dev/null || true
@@ -336,21 +412,50 @@ git push origin --delete hotfix/{name} 2>/dev/null || true
336
412
  **⚠️ IMPORTANT:** Le bump de version PATCH est automatique. Pas besoin de le faire manuellement avant le finish.
337
413
 
338
414
  **Resume:**
415
+
339
416
  ```
340
- HOTFIX FINALISE
341
- ════════════════════════════════════════
342
- Hotfix: {name}
343
- Version: v{CURRENT_VERSION} → v{NEW_VERSION}
344
- Tag: v{NEW_VERSION}
345
-
346
- Actions effectuees:
347
- Version incrementee (PATCH): {CURRENT_VERSION} → {NEW_VERSION}
348
- package.json mis a jour
349
- ✓ Tag v{NEW_VERSION} cree et pousse
350
- ✓ Main mis a jour
351
- ✓ Develop synchronise (merge back)
352
- Branche hotfix supprimee
353
- ════════════════════════════════════════
417
+ ═══════════════════════════════════════════════════════════════════════════════
418
+ HOTFIX FINALISÉ
419
+ ═══════════════════════════════════════════════════════════════════════════════
420
+
421
+ HOTFIX DETAILS
422
+ ───────────────────────────────────────────────────────────────────────────────
423
+ Type: hotfix
424
+ Branche: hotfix/{name}
425
+ Correction: {description}
426
+
427
+ VERSIONING
428
+ ───────────────────────────────────────────────────────────────────────────────
429
+ Avant: v{CURRENT_VERSION}
430
+ • Après: v{NEW_VERSION} (PATCH auto-incrémenté)
431
+ • Tag: v{NEW_VERSION} ✓
432
+
433
+ WORKFLOW STATUT
434
+ ───────────────────────────────────────────────────────────────────────────────
435
+ ✓ Version incrémentée (PATCH): {CURRENT_VERSION} → {NEW_VERSION}
436
+ ✓ package.json mis à jour
437
+ ✓ Tag v{NEW_VERSION} créé et poussé
438
+ ✓ Main mis à jour
439
+ ✓ Merge back vers develop effectué
440
+ ✓ Branche hotfix/{name} supprimée
441
+ ✓ Worktree nettoyé
442
+
443
+ ═══════════════════════════════════════════════════════════════════════════════
444
+ PROCHAINES ÉTAPES
445
+ ═══════════════════════════════════════════════════════════════════════════════
446
+
447
+ ✅ Hotfix v{NEW_VERSION} déployé avec succès!
448
+
449
+ 1. Créer une nouvelle feature:
450
+ /gitflow:10-start feature {name}
451
+
452
+ 2. Créer une release:
453
+ /gitflow:10-start release
454
+
455
+ 3. Voir le statut du repo:
456
+ /gitflow:2-status
457
+
458
+ ═══════════════════════════════════════════════════════════════════════════════
354
459
  ```
355
460
 
356
461
  ---
@@ -424,29 +529,6 @@ cleanup_worktree_for_branch "$BRANCH"
424
529
 
425
530
  ---
426
531
 
427
- ## Resume final
428
-
429
- ```
430
- GITFLOW FINISH COMPLETE
431
- ════════════════════════════════════════
432
- Type: {feature|release|hotfix}
433
- Branche: {branch_name}
434
- Status: FINALISEE
435
-
436
- Resultats:
437
- PR: #{number} (mergee)
438
- Tag: {tag|N/A}
439
- Main: {updated|N/A}
440
- Develop: {updated|unchanged}
441
- Cleanup: ✓ Branche supprimee
442
- Worktree: ✓ Nettoye
443
-
444
- ════════════════════════════════════════
445
- Workflow GitFlow complete!
446
- ```
447
-
448
- ---
449
-
450
532
  ## Modes
451
533
 
452
534
  | Commande | Action |
@@ -6,18 +6,65 @@ model: haiku
6
6
 
7
7
  # Phase 2: STATUS - Overview
8
8
 
9
- Tu es expert GitFlow et EF Core. Affiche l'etat complet du projet.
9
+ Tu es expert GitFlow et EF Core. Affiche l'etat COMPLET du projet.
10
10
 
11
11
  ---
12
12
 
13
13
  ## Informations a collecter
14
14
 
15
- ### Git
15
+ ### 1. BRANCHES - Vue complete
16
+
17
+ #### Toutes les branches (locales et remote)
18
+ ```bash
19
+ # Fetch pour avoir les infos a jour
20
+ git fetch --all --quiet 2>/dev/null
21
+
22
+ # Branches locales avec dernier commit
23
+ echo "=== BRANCHES LOCALES ==="
24
+ git for-each-ref --sort=-committerdate --format='%(refname:short)|%(objectname:short)|%(committerdate:short)|%(subject)' refs/heads
25
+
26
+ # Branches remote avec dernier commit
27
+ echo "=== BRANCHES REMOTE ==="
28
+ git for-each-ref --sort=-committerdate --format='%(refname:short)|%(objectname:short)|%(committerdate:short)|%(subject)' refs/remotes/origin
29
+
30
+ # Worktrees actifs
31
+ echo "=== WORKTREES ==="
32
+ git worktree list
33
+
34
+ # Tracking relationships
35
+ echo "=== TRACKING ==="
36
+ git branch -vv
37
+ ```
38
+
39
+ ### 2. TAGS - Tous les tags avec details
40
+ ```bash
41
+ # Tous les tags tries par version (newest first)
42
+ echo "=== TAGS ==="
43
+ git for-each-ref --sort=-v:refname --format='%(refname:short)|%(creatordate:short)|%(subject)' refs/tags
44
+
45
+ # Dernier tag sur chaque branche principale
46
+ echo "=== LATEST TAG PER BRANCH ==="
47
+ for branch in main develop; do
48
+ if git rev-parse --verify $branch >/dev/null 2>&1; then
49
+ TAG=$(git describe --tags --abbrev=0 $branch 2>/dev/null || echo "none")
50
+ AHEAD=$(git rev-list --count $TAG..$branch 2>/dev/null || echo "0")
51
+ echo "$branch: $TAG (+$AHEAD commits)"
52
+ fi
53
+ done
54
+
55
+ # Quelles branches contiennent quels tags (3 derniers tags)
56
+ echo "=== TAG CONTAINMENT ==="
57
+ for tag in $(git tag -l --sort=-v:refname | head -3); do
58
+ BRANCHES=$(git branch -a --contains $tag 2>/dev/null | tr '\n' ',' | sed 's/,$//')
59
+ echo "$tag: $BRANCHES"
60
+ done
61
+ ```
62
+
63
+ ### 3. Git Status courant
16
64
  - Branche courante et type (feature/release/hotfix/develop/main)
17
65
  - Etat working directory (clean/dirty)
18
66
  - Synchronisation locale vs remote (push/pull needed)
19
67
  - Synchronisation vs develop et main (commits ahead/behind)
20
- - Dernier tag
21
68
 
22
69
  ### Sync Local vs Remote
23
70
  ```bash
@@ -51,29 +98,82 @@ else
51
98
  fi
52
99
  ```
53
100
 
54
- ### Sync develop vs main (CRITIQUE)
101
+ ### 4. COMPARAISONS - develop vs main vs releases (CRITIQUE)
55
102
 
56
103
  ```bash
104
+ # === DEVELOP vs MAIN ===
105
+ echo "=== DEVELOP vs MAIN ==="
106
+
57
107
  # Commits sur develop absents de main (normal - a releaser)
58
- DEVELOP_AHEAD=$(git rev-list --count origin/main..origin/develop 2>/dev/null || echo "0")
108
+ DEVELOP_AHEAD=$(git rev-list --count main..develop 2>/dev/null || echo "0")
59
109
 
60
110
  # Commits sur main absents de develop (ANORMAL - hotfix non merge back?)
61
- MAIN_AHEAD=$(git rev-list --count origin/develop..origin/main 2>/dev/null || echo "0")
111
+ MAIN_AHEAD=$(git rev-list --count develop..main 2>/dev/null || echo "0")
112
+
113
+ echo "develop → main: +$DEVELOP_AHEAD commits"
114
+ echo "main → develop: +$MAIN_AHEAD commits"
62
115
 
63
116
  # Determiner l'etat de synchronisation
64
117
  if [ "$DEVELOP_AHEAD" -eq 0 ] && [ "$MAIN_AHEAD" -eq 0 ]; then
65
- BASE_SYNC="SYNCHRONIZED"
118
+ echo "STATUS: SYNCHRONIZED"
66
119
  elif [ "$MAIN_AHEAD" -gt 0 ]; then
67
- BASE_SYNC="DIVERGED" # PROBLEME!
120
+ echo "STATUS: DIVERGED ⚠️ (main a des commits non merges dans develop)"
68
121
  elif [ "$DEVELOP_AHEAD" -gt 0 ]; then
69
- BASE_SYNC="RELEASE_NEEDED" # Normal
122
+ echo "STATUS: RELEASE_NEEDED (normal)"
70
123
  fi
124
+
125
+ # === RELEASES EN COURS ===
126
+ echo ""
127
+ echo "=== RELEASES EN COURS ==="
128
+
129
+ # Pour chaque branche release (locale et remote)
130
+ for RELEASE in $(git branch -a | grep -E 'release/' | sed 's/.*release\//release\//' | sort -u); do
131
+ BRANCH_NAME=$(echo $RELEASE | sed 's/remotes\/origin\///')
132
+
133
+ # Verifier si la branche existe
134
+ if git rev-parse --verify $BRANCH_NAME >/dev/null 2>&1; then
135
+ REL_VS_DEV_AHEAD=$(git rev-list --count develop..$BRANCH_NAME 2>/dev/null || echo "0")
136
+ REL_VS_DEV_BEHIND=$(git rev-list --count $BRANCH_NAME..develop 2>/dev/null || echo "0")
137
+ REL_VS_MAIN_AHEAD=$(git rev-list --count main..$BRANCH_NAME 2>/dev/null || echo "0")
138
+ REL_VS_MAIN_BEHIND=$(git rev-list --count $BRANCH_NAME..main 2>/dev/null || echo "0")
139
+ LAST_COMMIT=$(git log -1 --format='%h %s' $BRANCH_NAME 2>/dev/null)
140
+
141
+ echo ""
142
+ echo "$BRANCH_NAME:"
143
+ echo " vs develop: +$REL_VS_DEV_AHEAD/-$REL_VS_DEV_BEHIND"
144
+ echo " vs main: +$REL_VS_MAIN_AHEAD/-$REL_VS_MAIN_BEHIND"
145
+ echo " last: $LAST_COMMIT"
146
+
147
+ # Status
148
+ if [ "$REL_VS_DEV_AHEAD" -eq 0 ] && [ "$REL_VS_MAIN_AHEAD" -eq 0 ]; then
149
+ echo " status: MERGED ✓ (peut etre supprimee)"
150
+ elif [ "$REL_VS_DEV_AHEAD" -gt 0 ] || [ "$REL_VS_MAIN_AHEAD" -gt 0 ]; then
151
+ echo " status: ACTIVE (commits non merges)"
152
+ fi
153
+ fi
154
+ done
155
+
156
+ # === FEATURES EN COURS ===
157
+ echo ""
158
+ echo "=== FEATURES EN COURS ==="
159
+
160
+ for FEATURE in $(git branch -a | grep -E 'feature/' | sed 's/.*feature\//feature\//' | sort -u | head -10); do
161
+ BRANCH_NAME=$(echo $FEATURE | sed 's/remotes\/origin\///')
162
+
163
+ if git rev-parse --verify $BRANCH_NAME >/dev/null 2>&1; then
164
+ FEAT_VS_DEV_AHEAD=$(git rev-list --count develop..$BRANCH_NAME 2>/dev/null || echo "0")
165
+ FEAT_VS_DEV_BEHIND=$(git rev-list --count $BRANCH_NAME..develop 2>/dev/null || echo "0")
166
+ LAST_COMMIT=$(git log -1 --format='%h %s' $BRANCH_NAME 2>/dev/null)
167
+
168
+ echo "$BRANCH_NAME: +$FEAT_VS_DEV_AHEAD/-$FEAT_VS_DEV_BEHIND | $LAST_COMMIT"
169
+ fi
170
+ done
71
171
  ```
72
172
 
73
173
  **Si MAIN_AHEAD > 0 (main a des commits absents de develop):**
74
174
  ```bash
75
- # Lister les commits divergents
76
- git log origin/develop..origin/main --oneline
175
+ echo "=== COMMITS MANQUANTS DANS DEVELOP ==="
176
+ git log develop..main --oneline
77
177
  ```
78
178
 
79
179
  ### Version
@@ -132,70 +232,150 @@ done
132
232
  ## Affichage
133
233
 
134
234
  ```
135
- ================================================================================
136
- GITFLOW STATUS
137
- ================================================================================
235
+ ╔══════════════════════════════════════════════════════════════════════════════╗
236
+ GITFLOW STATUS
237
+ ╚══════════════════════════════════════════════════════════════════════════════╝
138
238
 
139
239
  BRANCHE: {branch} ({type}) | {clean|dirty}
140
240
  VERSION: {version} ({source})
241
+ REMOTE: {UP-TO-DATE|AHEAD N|BEHIND N|DIVERGED|NO REMOTE}
242
+
243
+ ┌──────────────────────────────────────────────────────────────────────────────┐
244
+ │ BRANCHES │
245
+ ├──────────────────────────────────────────────────────────────────────────────┤
246
+ │ LOCALES ({n}) │
247
+ │ ──────────────────────────────────────────────────────────────────────────── │
248
+ │ Branch │ Commit │ Date │ Message │
249
+ │ ─────────────────────────────────────────────────────────────────────────────│
250
+ │ * develop │ 8e8069d │ 2026-01-17 │ fix(ci): use NPM_TOKEN... │
251
+ │ main │ dd0cb2a │ 2026-01-17 │ chore(ci): update pipeline... │
252
+ │ release/v1.5.1 │ 10d2c58 │ 2026-01-17 │ chore: bump version to 1.5.1 │
253
+ │ │
254
+ │ REMOTE origin ({n}) │
255
+ │ ──────────────────────────────────────────────────────────────────────────── │
256
+ │ origin/develop │ 8e8069d │ 2026-01-17 │ fix(ci): use NPM_TOKEN... │
257
+ │ origin/main │ 91d0986 │ 2026-01-16 │ feat(license): add license... │
258
+ │ │
259
+ │ WORKTREES ({n}) │
260
+ │ ──────────────────────────────────────────────────────────────────────────── │
261
+ │ 01-Main │ main │ dd0cb2a │
262
+ │ 02-Develop │ develop │ 8e8069d (current) │
263
+ │ releases/v1.4.2 │ release/v1.4.2 │ a45f239 │
264
+ └──────────────────────────────────────────────────────────────────────────────┘
265
+
266
+ ┌──────────────────────────────────────────────────────────────────────────────┐
267
+ │ TAGS ({n} total) │
268
+ ├──────────────────────────────────────────────────────────────────────────────┤
269
+ │ Tag │ Date │ Message │ Branches │
270
+ │ ─────────────────────────────────────────────────────────────────────────────│
271
+ │ v1.5.2 │ 2026-01-17 │ Release v1.5.2 - Azure DevOps... │ main │
272
+ │ v1.5.1 │ 2026-01-17 │ Release v1.5.1 - Fix init... │ main │
273
+ │ v1.5.0 │ 2026-01-17 │ Release v1.5.0 - Project scaf... │ develop, main │
274
+ │ v1.4.1 │ 2026-01-17 │ Release v1.4.1 - Patch release │ develop, main │
275
+ │ v1.4.0 │ 2026-01-16 │ Release v1.4.0 │ develop, main │
276
+ │ │
277
+ │ DERNIERE VERSION PAR BRANCHE │
278
+ │ main: v1.5.2 (+2 commits depuis ce tag) │
279
+ │ develop: v1.5.0 (+10 commits depuis ce tag) │
280
+ │ │
281
+ │ Legende: "+N commits" = nombre de changements faits apres ce tag │
282
+ └──────────────────────────────────────────────────────────────────────────────┘
141
283
 
142
- REMOTE SYNC
143
- vs origin/{branch}: {UP-TO-DATE|AHEAD N|BEHIND N|DIVERGED|NO REMOTE}
284
+ ┌──────────────────────────────────────────────────────────────────────────────┐
285
+ COMPARAISONS ENTRE BRANCHES │
286
+ ├──────────────────────────────────────────────────────────────────────────────┤
287
+ │ DEVELOP vs MAIN (Production) │
288
+ │ ──────────────────────────────────────────────────────────────────────────── │
289
+ │ │
290
+ │ develop: {N} commits prets a publier en production │
291
+ │ (changements sur develop non encore sur main) │
292
+ │ │
293
+ │ main: {N} commits a recuperer dans develop │
294
+ │ (changements sur main non encore sur develop) │
295
+ │ │
296
+ │ ETAT: {message selon situation} │
297
+ │ ✓ SYNCHRONISE = develop et main sont identiques │
298
+ │ ℹ️ A PUBLIER = develop a des changements prets pour une release │
299
+ │ ⚠️ DESYNCHRONISE = main a des commits non recuperes (action requise) │
300
+ │ │
301
+ │ {Si main a des commits non recuperes:} │
302
+ │ ⚠️ ATTENTION: {N} changements sur main non recuperes dans develop! │
303
+ │ ───────────────────────────────────────────────────────────────────────── │
304
+ │ Ces commits sont sur main mais absents de develop: │
305
+ │ dd0cb2a chore(ci): update pipeline to use NPM_TOKEN variable │
306
+ │ 3db14b6 Merge pull request 31 from release/v1.5.2 into main │
307
+ │ │
308
+ │ → ACTION: Recuperer ces changements avec: git merge main │
309
+ │ │
310
+ │ RELEASES EN COURS │
311
+ │ ──────────────────────────────────────────────────────────────────────────── │
312
+ │ Branch │ vs develop │ vs main │ Status │
313
+ │ ─────────────────────────────────────────────────────────────────────────────│
314
+ │ release/v1.5.1 │ 0 a publier/25 a │ 0 a publier/28 a │ TERMINEE ✓ │
315
+ │ │ recuperer │ recuperer │ (supprimable) │
316
+ │ release/v1.4.2 │ 0 a publier/26 a │ 0 a publier/29 a │ TERMINEE ✓ │
317
+ │ │ recuperer │ recuperer │ (supprimable) │
318
+ │ │
319
+ │ FEATURES (branches de fonctionnalites) │
320
+ │ ──────────────────────────────────────────────────────────────────────────── │
321
+ │ feature/xxx: {N} commits a publier / {N} a recuperer de develop │
322
+ │ Dernier: {message du dernier commit} │
323
+ └──────────────────────────────────────────────────────────────────────────────┘
144
324
 
145
- --------------------------------------------------------------------------------
146
- SYNC DEVELOP <-> MAIN
147
- --------------------------------------------------------------------------------
148
- develop → main: +{DEVELOP_AHEAD} commits {message}
149
- main develop: +{MAIN_AHEAD} commits {message}
325
+ ┌──────────────────────────────────────────────────────────────────────────────┐
326
+ EF CORE │
327
+ ├──────────────────────────────────────────────────────────────────────────────┤
328
+ Migrations: {total} total, {pending} pending │
329
+ [Pending] {liste}
330
+ │ │
331
+ │ BRANCHES AVEC MIGRATIONS │
332
+ │ ──────────────────────────────────────────────────────────────────────────── │
333
+ │ feature/add-users +1 migration (AddUsersTable) Conflit: NON │
334
+ │ feature/add-orders +1 migration (AddOrdersTable) Conflit: NON │
335
+ │ feature/add-products +2 migrations Conflit: OUI ⚠️ │
336
+ │ │
337
+ │ ORDRE DE MERGE RECOMMANDE: │
338
+ │ 1. feature/add-users (independant) │
339
+ │ 2. feature/add-orders (independant) │
340
+ │ 3. feature/add-products (rebase requis apres #1 et #2) │
341
+ └──────────────────────────────────────────────────────────────────────────────┘
150
342
 
151
- {Si DEVELOP_AHEAD > 0 et MAIN_AHEAD == 0:}
152
- ✓ Normal: develop a {N} commits prets a releaser
153
- → Action: /gitflow:10-start release
343
+ PLANS: {n} active | OPERATIONS: {none|rebase|merge} | RISKS: {liste}
154
344
 
155
- {Si MAIN_AHEAD > 0:}
156
- ⚠️ ATTENTION: main contient {N} commits absents de develop!
345
+ ══════════════════════════════════════════════════════════════════════════════
346
+ ACTIONS A FAIRE
347
+ ══════════════════════════════════════════════════════════════════════════════
157
348
 
158
- Commits sur main non merges dans develop:
159
- {git log origin/develop..origin/main --oneline}
349
+ {Generer cette section dynamiquement selon l'etat detecte}
350
+ {Chaque action = 1 ligne description + 1 bloc code copiable}
160
351
 
161
- Causes possibles:
162
- - Hotfix non merge back dans develop
163
- - Commit direct sur main (non recommande)
164
- - Release mal finalisee
352
+ EXEMPLES DE FORMAT:
165
353
 
166
- Actions:
167
- 1. Merger main dans develop: git merge origin/main
168
- 2. Ou via release: /gitflow:10-start release (reset main)
354
+ ⚠️ Recuperer 3 commits de main dans develop
355
+ git merge main
169
356
 
170
- {Si DEVELOP_AHEAD == 0 et MAIN_AHEAD == 0:}
171
- ✓ Synchronise: develop et main sont identiques
172
- --------------------------------------------------------------------------------
357
+ ℹ️ Creer une release (10 commits prets pour production)
358
+ /gitflow:start release v1.6.0
173
359
 
174
- DERNIER TAG: {tag}
360
+ Merger feature/add-users dans develop (prete, 0 conflit)
361
+ /gitflow:finish feature/add-users
175
362
 
176
- EF CORE (branche courante)
177
- Migrations: {total} total, {pending} pending
178
- [Pending] {liste}
363
+ Mettre a jour feature/add-orders (15 commits a recuperer de develop)
364
+ /gitflow:rebase feature/add-orders
179
365
 
180
- --------------------------------------------------------------------------------
181
- BRANCHES ACTIVES ({features} features, {releases} releases, {hotfixes} hotfixes)
182
- --------------------------------------------------------------------------------
183
- {Si branches actives avec migrations:}
184
- feature/add-users +1 migration (AddUsersTable) Conflit: NON
185
- feature/add-orders +1 migration (AddOrdersTable) Conflit: NON
186
- feature/add-products +2 migrations (AddProducts, AddFK) Conflit: OUI
366
+ 🗑️ Nettoyer release/v1.5.1 (terminee, supprimable)
367
+ /gitflow:cleanup release/v1.5.1
187
368
 
188
- ORDRE DE MERGE RECOMMANDE:
189
- 1. feature/add-users (independant)
190
- 2. feature/add-orders (independant)
191
- 3. feature/add-products (conflit ModelSnapshot - rebase requis)
192
- --------------------------------------------------------------------------------
369
+ 🗑️ Nettoyer release/v1.4.2 (terminee, supprimable)
370
+ /gitflow:cleanup release/v1.4.2
193
371
 
194
- PLANS: {n} active | OPERATIONS: {none|rebase|merge} | RISKS: {liste}
372
+ 💾 Sauvegarder les modifications en cours (3 fichiers modifies)
373
+ /gitflow:commit "description des changements"
374
+
375
+ ↑ Envoyer develop vers le serveur (5 commits non publies)
376
+ /gitflow:sync develop
195
377
 
196
- ================================================================================
197
- Actions: /gitflow:13-sync | /gitflow:14-rebase | /gitflow:3-commit | /gitflow:4-plan
198
- ================================================================================
378
+ ══════════════════════════════════════════════════════════════════════════════
199
379
  ```
200
380
 
201
381
  ---