@atlashub/smartstack-cli 1.11.0 → 1.13.1

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/agents.html +7 -2
  2. package/.documentation/apex.html +7 -2
  3. package/.documentation/business-analyse.html +7 -2
  4. package/.documentation/cli-commands.html +871 -0
  5. package/.documentation/commands.html +7 -2
  6. package/.documentation/efcore.html +7 -2
  7. package/.documentation/gitflow.html +7 -2
  8. package/.documentation/hooks.html +7 -2
  9. package/.documentation/index.html +7 -2
  10. package/.documentation/init.html +7 -2
  11. package/.documentation/installation.html +7 -2
  12. package/.documentation/ralph-loop.html +7 -2
  13. package/.documentation/test-web.html +7 -2
  14. package/dist/index.js +1932 -336
  15. package/dist/index.js.map +1 -1
  16. package/package.json +8 -2
  17. package/templates/agents/efcore/squash.md +67 -31
  18. package/templates/agents/gitflow/finish.md +68 -56
  19. package/templates/commands/business-analyse/0-orchestrate.md +72 -556
  20. package/templates/commands/business-analyse/1-init.md +23 -193
  21. package/templates/commands/business-analyse/2-discover.md +85 -462
  22. package/templates/commands/business-analyse/3-analyse.md +40 -342
  23. package/templates/commands/business-analyse/4-specify.md +72 -537
  24. package/templates/commands/business-analyse/5-validate.md +43 -237
  25. package/templates/commands/business-analyse/6-handoff.md +93 -682
  26. package/templates/commands/business-analyse/7-doc-html.md +45 -544
  27. package/templates/commands/business-analyse/_shared.md +176 -0
  28. package/templates/commands/business-analyse/bug.md +50 -257
  29. package/templates/commands/business-analyse/change-request.md +59 -283
  30. package/templates/commands/business-analyse/hotfix.md +36 -120
  31. package/templates/commands/business-analyse.md +55 -574
  32. package/templates/commands/efcore/_shared.md +206 -0
  33. package/templates/commands/efcore/conflicts.md +39 -201
  34. package/templates/commands/efcore/db-deploy.md +28 -237
  35. package/templates/commands/efcore/db-reset.md +41 -390
  36. package/templates/commands/efcore/db-seed.md +44 -323
  37. package/templates/commands/efcore/db-status.md +31 -210
  38. package/templates/commands/efcore/migration.md +45 -368
  39. package/templates/commands/efcore/rebase-snapshot.md +38 -241
  40. package/templates/commands/efcore/scan.md +35 -204
  41. package/templates/commands/efcore/squash.md +158 -251
  42. package/templates/commands/efcore.md +49 -177
  43. package/templates/commands/gitflow/1-init.md +94 -1318
  44. package/templates/commands/gitflow/10-start.md +86 -990
  45. package/templates/commands/gitflow/11-finish.md +264 -454
  46. package/templates/commands/gitflow/12-cleanup.md +40 -213
  47. package/templates/commands/gitflow/2-status.md +51 -386
  48. package/templates/commands/gitflow/3-commit.md +108 -801
  49. package/templates/commands/gitflow/4-plan.md +42 -13
  50. package/templates/commands/gitflow/5-exec.md +60 -5
  51. package/templates/commands/gitflow/6-abort.md +54 -277
  52. package/templates/commands/gitflow/7-pull-request.md +74 -717
  53. package/templates/commands/gitflow/8-review.md +51 -178
  54. package/templates/commands/gitflow/9-merge.md +74 -404
  55. package/templates/commands/gitflow/_shared.md +196 -0
  56. package/templates/commands/quickstart.md +154 -0
  57. package/templates/commands/ralph-loop/ralph-loop.md +104 -2
  58. package/templates/hooks/hooks.json +13 -0
  59. package/templates/hooks/ralph-mcp-logger.sh +46 -0
  60. package/templates/hooks/ralph-session-end.sh +69 -0
  61. package/templates/ralph/README.md +91 -0
  62. package/templates/ralph/ralph.config.yaml +113 -0
  63. package/templates/scripts/setup-ralph-loop.sh +173 -0
  64. package/templates/skills/_shared.md +117 -0
  65. package/templates/skills/ai-prompt/SKILL.md +87 -654
  66. package/templates/skills/application/SKILL.md +76 -499
  67. package/templates/skills/controller/SKILL.md +38 -165
  68. package/templates/skills/documentation/SKILL.md +2 -1
  69. package/templates/skills/feature-full/SKILL.md +107 -732
  70. package/templates/skills/notification/SKILL.md +85 -474
  71. package/templates/skills/ui-components/SKILL.md +62 -762
  72. package/templates/skills/workflow/SKILL.md +85 -489
  73. package/templates/commands/gitflow/rescue.md +0 -867
  74. package/templates/skills/business-analyse/SKILL.md +0 -191
@@ -6,420 +6,110 @@ 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.
10
-
11
9
  ---
12
10
 
13
- ## Informations a collecter
11
+ ## Informations à collecter
14
12
 
15
- ### 1. BRANCHES - Vue complete
13
+ ### 1. Branches
16
14
 
17
- #### Toutes les branches (locales et remote)
18
15
  ```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 ==="
16
+ git fetch --all --quiet
24
17
  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
18
  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
19
  git worktree list
33
-
34
- # Tracking relationships
35
- echo "=== TRACKING ==="
36
- git branch -vv
37
20
  ```
38
21
 
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
22
+ ### 2. Tags
44
23
 
45
- # Dernier tag sur chaque branche principale
46
- echo "=== LATEST TAG PER BRANCH ==="
24
+ ```bash
25
+ git for-each-ref --sort=-v:refname --format='%(refname:short)|%(creatordate:short)|%(subject)' refs/tags | head -5
26
+ # Par branche
47
27
  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"
28
+ TAG=$(git describe --tags --abbrev=0 $branch 2>/dev/null || echo "none")
29
+ AHEAD=$(git rev-list --count $TAG..$branch 2>/dev/null || echo "0")
30
+ echo "$branch: $TAG (+$AHEAD)"
60
31
  done
61
32
  ```
62
33
 
63
- ### 3. Git Status courant
64
- - Branche courante et type (feature/release/hotfix/develop/main)
65
- - Etat working directory (clean/dirty)
66
- - Synchronisation locale vs remote (push/pull needed)
67
- - Synchronisation vs develop et main (commits ahead/behind)
34
+ ### 3. Sync local vs remote
68
35
 
69
- ### Sync Local vs Remote
70
36
  ```bash
71
- # Fetch pour avoir les infos a jour (sans modifier le working directory)
72
- git fetch --quiet 2>/dev/null
73
-
74
- # Verifier si la branche a un remote tracking
75
37
  UPSTREAM=$(git rev-parse --abbrev-ref @{upstream} 2>/dev/null)
76
-
77
- if [ -n "$UPSTREAM" ]; then
78
- # Comparer local vs remote
38
+ [ -n "$UPSTREAM" ] && {
79
39
  LOCAL=$(git rev-parse @)
80
40
  REMOTE=$(git rev-parse @{upstream})
81
41
  BASE=$(git merge-base @ @{upstream})
82
-
83
- if [ "$LOCAL" = "$REMOTE" ]; then
84
- SYNC_STATUS="UP-TO-DATE"
85
- elif [ "$LOCAL" = "$BASE" ]; then
86
- BEHIND=$(git rev-list --count @..@{upstream})
87
- SYNC_STATUS="BEHIND $BEHIND (pull needed)"
88
- elif [ "$REMOTE" = "$BASE" ]; then
89
- AHEAD=$(git rev-list --count @{upstream}..@)
90
- SYNC_STATUS="AHEAD $AHEAD (push needed)"
91
- else
92
- AHEAD=$(git rev-list --count @{upstream}..@)
93
- BEHIND=$(git rev-list --count @..@{upstream})
94
- SYNC_STATUS="DIVERGED +$AHEAD/-$BEHIND (pull --rebase needed)"
95
- fi
96
- else
97
- SYNC_STATUS="NO REMOTE (not pushed yet)"
98
- fi
42
+ [ "$LOCAL" = "$REMOTE" ] && echo "UP-TO-DATE"
43
+ [ "$LOCAL" = "$BASE" ] && echo "BEHIND $(git rev-list --count @..@{upstream})"
44
+ [ "$REMOTE" = "$BASE" ] && echo "AHEAD $(git rev-list --count @{upstream}..@)"
45
+ }
99
46
  ```
100
47
 
101
- ### 4. COMPARAISONS - develop vs main vs releases (CRITIQUE)
48
+ ### 4. develop vs main (CRITIQUE)
102
49
 
103
50
  ```bash
104
- # === DEVELOP vs MAIN ===
105
- echo "=== DEVELOP vs MAIN ==="
106
-
107
- # Commits sur develop absents de main (normal - a releaser)
108
51
  DEVELOP_AHEAD=$(git rev-list --count main..develop 2>/dev/null || echo "0")
109
-
110
- # Commits sur main absents de develop (ANORMAL - hotfix non merge back?)
111
52
  MAIN_AHEAD=$(git rev-list --count develop..main 2>/dev/null || echo "0")
112
53
 
113
- echo "develop → main: +$DEVELOP_AHEAD commits"
114
- echo "main → develop: +$MAIN_AHEAD commits"
115
-
116
- # Determiner l'etat de synchronisation
117
- if [ "$DEVELOP_AHEAD" -eq 0 ] && [ "$MAIN_AHEAD" -eq 0 ]; then
118
- echo "STATUS: SYNCHRONIZED ✓"
119
- elif [ "$MAIN_AHEAD" -gt 0 ]; then
120
- echo "STATUS: DIVERGED ⚠️ (main a des commits non merges dans develop)"
121
- elif [ "$DEVELOP_AHEAD" -gt 0 ]; then
122
- echo "STATUS: RELEASE_NEEDED (normal)"
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
54
+ echo "develop → main: +$DEVELOP_AHEAD (à releaser)"
55
+ echo "main → develop: +$MAIN_AHEAD"
56
+ [ "$MAIN_AHEAD" -gt 0 ] && echo "⚠️ DIVERGENCE: main a commits non mergés dans develop"
171
57
  ```
172
58
 
173
- **Si MAIN_AHEAD > 0 (main a des commits absents de develop):**
174
- ```bash
175
- echo "=== COMMITS MANQUANTS DANS DEVELOP ==="
176
- git log develop..main --oneline
177
- ```
59
+ ### 5. Version
178
60
 
179
- ### Version
180
- Read from configured source in [.claude/gitflow/config.json](.claude/gitflow/config.json):
181
- - `versioning.source` → type (csproj, Directory.Build.props, AssemblyInfo, VERSION, git-tag, package.json)
182
- - `versioning.sourceFile` → file path
183
- - Read current version from THAT file (not from config.json)
184
-
185
- Fallback si pas de config:
186
61
  ```bash
187
- # package.json
188
62
  VERSION=$(grep '"version"' package.json 2>/dev/null | head -1 | sed 's/.*: "\(.*\)".*/\1/')
189
- # .csproj
190
63
  [ -z "$VERSION" ] && VERSION=$(grep -oP '(?<=<Version>).*(?=</Version>)' *.csproj 2>/dev/null | head -1)
191
- # VERSION file
192
- [ -z "$VERSION" ] && VERSION=$(cat VERSION 2>/dev/null)
193
- # Git tag
194
64
  [ -z "$VERSION" ] && VERSION=$(git describe --tags --abbrev=0 2>/dev/null)
195
65
  ```
196
66
 
197
- ### EF Core
198
- - Lister les migrations (total et pending)
199
- - Lister les DbContext detectes
200
-
201
- ### EF Core - Vue globale (toutes branches)
202
- Si `--all-branches` ou si plusieurs branches GitFlow actives:
203
- ```bash
204
- # Scanner les branches actives
205
- FEATURES=$(git branch -r | grep 'feature/' | wc -l)
206
- RELEASES=$(git branch -r | grep 'release/' | wc -l)
207
- HOTFIXES=$(git branch -r | grep 'hotfix/' | wc -l)
208
-
209
- # Pour chaque branche, detecter migrations ajoutees
210
- for BRANCH in $(git branch -r | grep -E 'feature/|release/|hotfix/'); do
211
- MIGRATIONS=$(git diff origin/develop..$BRANCH --name-only | grep -E "Migrations/.*\.cs$" | grep -v Designer | grep -v ModelSnapshot)
212
- CONFLICT=$(git diff origin/develop..$BRANCH --name-only | grep "ModelSnapshot" | wc -l)
213
- done
214
- ```
67
+ ### 6. EF Core
215
68
 
216
- ### Plans GitFlow
217
- - Plans actifs (non termines)
218
- - Plans termines recemment (7 jours)
219
-
220
- ### Operations en cours
221
- - Rebase, merge, cherry-pick en cours?
222
- - Conflits detectes?
223
-
224
- ### Risques
225
- - **Divergence main/develop** (main a des commits absents de develop)
226
- - Divergence > 5 commits vs develop
227
- - Migrations non commitees
228
- - ModelSnapshot modifie non commite
69
+ Migrations: total, pending, branches avec migrations, conflits potentiels
229
70
 
230
71
  ---
231
72
 
232
73
  ## Affichage
233
74
 
234
75
  ```
235
- ╔══════════════════════════════════════════════════════════════════════════════╗
236
- ║ GITFLOW STATUS ║
237
- ╚══════════════════════════════════════════════════════════════════════════════╝
238
-
76
+ GITFLOW STATUS
77
+ ──────────────────────────────────
239
78
  BRANCHE: {branch} ({type}) | {clean|dirty}
240
79
  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
- └──────────────────────────────────────────────────────────────────────────────┘
283
-
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
- └──────────────────────────────────────────────────────────────────────────────┘
324
-
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
- └──────────────────────────────────────────────────────────────────────────────┘
342
-
343
- PLANS: {n} active | OPERATIONS: {none|rebase|merge} | RISKS: {liste}
344
-
345
- ══════════════════════════════════════════════════════════════════════════════
346
- ACTIONS A FAIRE
347
- ══════════════════════════════════════════════════════════════════════════════
80
+ REMOTE: {UP-TO-DATE|AHEAD N|BEHIND N|DIVERGED}
348
81
 
349
- {Generer cette section dynamiquement selon l'etat detecte}
350
- {Chaque action = 1 ligne description + 1 bloc code copiable}
82
+ BRANCHES: {n} locales | {n} remote | {n} worktrees
83
+ TAGS: {n} total | main: {tag} | develop: {tag}
351
84
 
352
- EXEMPLES DE FORMAT:
85
+ DEVELOP vs MAIN
86
+ develop: {N} commits à publier
87
+ main: {N} commits à récupérer
88
+ STATUS: {SYNCHRONIZED|RELEASE_NEEDED|DIVERGED ⚠️}
353
89
 
354
- ⚠️ Recuperer 3 commits de main dans develop
355
- git merge main
90
+ {Si DIVERGED:}
91
+ ⚠️ Commits sur main non présents sur develop:
92
+ {hash} {message}
93
+ → ACTION: git checkout develop && git merge origin/main
356
94
 
357
- ℹ️ Creer une release (10 commits prets pour production)
358
- /gitflow:start release v1.6.0
359
-
360
- ✓ Merger feature/add-users dans develop (prete, 0 conflit)
361
- /gitflow:finish feature/add-users
362
-
363
- ↻ Mettre a jour feature/add-orders (15 commits a recuperer de develop)
364
- /gitflow:rebase feature/add-orders
365
-
366
- 🗑️ Nettoyer release/v1.5.1 (terminee, supprimable)
367
- /gitflow:cleanup release/v1.5.1
368
-
369
- 🗑️ Nettoyer release/v1.4.2 (terminee, supprimable)
370
- /gitflow:cleanup release/v1.4.2
371
-
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
377
-
378
- ══════════════════════════════════════════════════════════════════════════════
95
+ FEATURES: {n} actives
96
+ RELEASES: {n} en cours
97
+ EF CORE: {N} migrations | {N} pending | Conflits: {OUI/NON}
98
+ ──────────────────────────────────
379
99
  ```
380
100
 
381
101
  ---
382
102
 
383
- ## Alertes Specifiques
384
-
385
- ### Alerte: main divergent de develop
103
+ ## Actions suggérées
386
104
 
387
- ```
388
- ╔══════════════════════════════════════════════════════════════════════════════╗
389
- ║ ⚠️ DIVERGENCE DETECTEE: main contient des commits absents de develop ║
390
- ╠══════════════════════════════════════════════════════════════════════════════╣
391
- ║ ║
392
- ║ Commits sur main non presents sur develop ({N}): ║
393
- ║ {hash1} {message1} ║
394
- ║ {hash2} {message2} ║
395
- ║ ... ║
396
- ║ ║
397
- ╠══════════════════════════════════════════════════════════════════════════════╣
398
- ║ RESOLUTIONS: ║
399
- ║ ║
400
- ║ Option 1 - Merger main dans develop (recommande): ║
401
- ║ git checkout develop && git merge origin/main ║
402
- ║ ║
403
- ║ Option 2 - Via la prochaine release: ║
404
- ║ /gitflow:10-start release ║
405
- ║ (La release peut reset main si necessaire) ║
406
- ║ ║
407
- ║ Option 3 - Cherry-pick selectif: ║
408
- ║ git cherry-pick {hash} ║
409
- ║ ║
410
- ╚══════════════════════════════════════════════════════════════════════════════╝
411
- ```
412
-
413
- ### Alerte: Release recommandee
414
-
415
- ```
416
- ┌──────────────────────────────────────────────────────────────────────────────┐
417
- │ ℹ️ RELEASE RECOMMANDEE │
418
- ├──────────────────────────────────────────────────────────────────────────────┤
419
- │ develop a {N} commits en avance de main. │
420
- │ → /gitflow:10-start release │
421
- └──────────────────────────────────────────────────────────────────────────────┘
422
- ```
105
+ | État | Commande |
106
+ |------|----------|
107
+ | AHEAD (push needed) | `/gitflow:13-sync` |
108
+ | BEHIND (pull needed) | `/gitflow:13-sync` |
109
+ | main ahead of develop | `git merge origin/main` |
110
+ | develop ahead of main | `/gitflow:10-start release` |
111
+ | Pending migrations | `/efcore:db-deploy` |
112
+ | Dirty workdir | `/gitflow:3-commit` |
423
113
 
424
114
  ---
425
115
 
@@ -428,30 +118,5 @@ git merge main
428
118
  | Mode | Output |
429
119
  |------|--------|
430
120
  | Normal | Affichage complet |
431
- | `--short` | `[branch] status \| vX.Y.Z \| dev→main:+X \| main→dev:+Y` |
432
- | `--json` | JSON structure |
433
-
434
- ## Codes sortie
435
-
436
- | Code | Signification |
437
- |------|---------------|
438
- | 0 | OK (synchronise ou release needed) |
439
- | 1 | Warnings (pending, release recommandee) |
440
- | 2 | Problemes (divergence main/develop, conflits, operation en cours) |
441
- | 3 | Erreur (pas repo, no config) |
442
-
443
- ## Actions suggerees
444
-
445
- | Etat | Commande Claude Code |
446
- |------|----------------------|
447
- | AHEAD N (push needed) | `/gitflow:13-sync` |
448
- | BEHIND N (pull needed) | `/gitflow:13-sync` |
449
- | DIVERGED local/remote | `/gitflow:13-sync` |
450
- | NO REMOTE (not pushed yet) | `/gitflow:13-sync` |
451
- | **main ahead of develop** | `git merge origin/main` ou `/gitflow:10-start release` |
452
- | develop ahead of main | `/gitflow:10-start release` |
453
- | Divergence > 5 vs develop | `/gitflow:14-rebase` |
454
- | Pending migrations | `/efcore:db-deploy` |
455
- | Dirty workdir | `/gitflow:3-commit` |
456
- | Operation en cours | `/gitflow:6-abort` |
457
- | No config | `/gitflow:1-init` |
121
+ | `--short` | `[branch] status \| vX.Y.Z \| dev→main:+X` |
122
+ | `--json` | JSON structuré |