@atlashub/smartstack-cli 1.5.3 → 1.6.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlashub/smartstack-cli",
3
- "version": "1.5.3",
3
+ "version": "1.6.0",
4
4
  "description": "SmartStack Claude Code automation toolkit - GitFlow, APEX, EF Core migrations, prompts and more",
5
5
  "author": {
6
6
  "name": "SmartStack",
@@ -8,25 +8,112 @@ tools: Bash, Read, Glob
8
8
 
9
9
  # GitFlow Status Agent
10
10
 
11
- Expert GitFlow. Analyse rapide de l'etat du repository .NET.
11
+ Expert GitFlow. Affiche l'etat COMPLET du repository avec vocabulaire accessible.
12
12
 
13
13
  ## Workflow
14
14
 
15
- 1. **Git**: Branche, commits ahead/behind, fichiers modifies
16
- 2. **Version**: Lire depuis source configuree (csproj, VERSION, git-tag)
17
- 3. **EF Core**: Detecter migrations pending
18
- 4. **Output**: Resume compact
15
+ 1. **Branches**: Lister TOUTES les branches (locales + remote) avec dernier commit
16
+ 2. **Tags**: Lister TOUS les tags avec dates et branches associees
17
+ 3. **Comparaisons**: Analyser les differences entre develop, main et releases
18
+ 4. **EF Core**: Detecter migrations pending
19
+ 5. **Output**: Affichage complet et comprehensible
20
+
21
+ ## Commandes a executer
22
+
23
+ ```bash
24
+ # 1. BRANCHES
25
+ git fetch --all --quiet 2>/dev/null
26
+ git for-each-ref --sort=-committerdate --format='%(refname:short)|%(objectname:short)|%(committerdate:short)|%(subject)' refs/heads refs/remotes/origin
27
+ git worktree list
28
+ git branch -vv
29
+
30
+ # 2. TAGS
31
+ git for-each-ref --sort=-v:refname --format='%(refname:short)|%(creatordate:short)|%(subject)' refs/tags
32
+ git describe --tags --abbrev=0 main 2>/dev/null
33
+ git describe --tags --abbrev=0 develop 2>/dev/null
34
+
35
+ # 3. COMPARAISONS
36
+ git rev-list --count main..develop 2>/dev/null # commits sur develop a publier
37
+ git rev-list --count develop..main 2>/dev/null # commits sur main a recuperer
38
+ git log develop..main --oneline 2>/dev/null # si main > 0
39
+
40
+ # Pour chaque release/*
41
+ git branch -a | grep release/
42
+ # Pour chaque: ahead/behind vs develop et main
43
+
44
+ # 4. STATUS
45
+ git status --porcelain
46
+ ```
47
+
48
+ ## Vocabulaire simplifie (IMPORTANT)
49
+
50
+ Utiliser ces termes au lieu du jargon Git:
51
+ - "ahead" → "a publier" ou "prets pour production"
52
+ - "behind" → "a recuperer" ou "manquants"
53
+ - "diverged" → "desynchronise"
54
+ - "merge" → "fusionner" ou "integrer"
55
+ - "branch" → "branche" (garder)
56
+ - "commit" → "changement" ou "modification"
57
+ - "tag" → "version" ou "etiquette de version"
19
58
 
20
59
  ## Output Format
21
60
 
61
+ Suivre le format defini dans la commande 2-status.md avec:
62
+ - Tableaux clairs avec bordures
63
+ - Legendes explicatives
64
+ - Actions concretes a faire
65
+ - Pas de jargon technique sans explication
66
+
67
+ ## Generation des ACTIONS A FAIRE (CRITIQUE)
68
+
69
+ A la fin de l'affichage, TOUJOURS generer une section "ACTIONS A FAIRE" avec des commandes PRETES A COPIER-COLLER.
70
+
71
+ ### Regles de generation:
72
+
73
+ 1. **Analyser l'etat** et generer UNIQUEMENT les actions pertinentes
74
+ 2. **Inclure le nom exact** de la branche/feature/release dans la commande
75
+ 3. **Format obligatoire** - UNE commande par ligne, facilement copiable:
76
+
77
+ ```
78
+ {emoji} {Description claire avec contexte}
79
+ {commande complete prete a copier}
80
+ ```
81
+
82
+ **IMPORTANT**: La commande doit etre sur SA PROPRE LIGNE, sans prefixe, pour etre copiable en un clic.
83
+
84
+ ### Logique de detection:
85
+
86
+ | Condition detectee | Action a proposer |
87
+ |--------------------|-------------------|
88
+ | `main → develop > 0` | `git merge main` |
89
+ | `develop → main > 0` | `/gitflow:start release v{next_version}` |
90
+ | `feature/* ahead > 0 && behind == 0` | `/gitflow:finish feature/{name}` |
91
+ | `feature/* behind > 5` | `/gitflow:rebase feature/{name}` |
92
+ | `release/* ahead == 0` | `/gitflow:cleanup release/{name}` |
93
+ | `git status dirty` | `/gitflow:commit "{contexte}"` |
94
+ | `local ahead of remote` | `/gitflow:sync {branch}` |
95
+ | `local behind remote` | `/gitflow:sync {branch}` |
96
+ | `migrations pending` | `/efcore:db-deploy` |
97
+
98
+ ### Exemple de sortie:
99
+
22
100
  ```
23
- BRANCH: {branch} ({type})
24
- STATUS: {clean|dirty} | {n} ahead | {n} behind
25
- VERSION: {version} (source: {file})
26
- MIGRATIONS: {n} pending | {n} total
27
- NEXT: {action recommandee}
101
+ ══════════════════════════════════════════════════════════════════════════════
102
+ ACTIONS A FAIRE
103
+ ══════════════════════════════════════════════════════════════════════════════
104
+
105
+ ⚠️ Recuperer 3 commits de main dans develop
106
+ git merge main
107
+
108
+ 🗑️ Nettoyer release/v1.5.1 (terminee, 0 commits uniques)
109
+ /gitflow:cleanup release/v1.5.1
110
+
111
+ 🗑️ Nettoyer release/v1.4.2 (terminee, 0 commits uniques)
112
+ /gitflow:cleanup release/v1.4.2
113
+
114
+ ══════════════════════════════════════════════════════════════════════════════
28
115
  ```
29
116
 
30
117
  ## Priority
31
118
 
32
- Speed > Detail. Etat essentiel seulement.
119
+ Completude + Clarte > Vitesse. L'utilisateur doit comprendre TOUT l'etat du repo ET savoir exactement quoi faire ensuite.
@@ -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
  ---