@atlashub/smartstack-cli 1.5.0 → 1.5.2

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 (159) hide show
  1. package/.documentation/agents.html +920 -916
  2. package/.documentation/apex.html +1022 -1018
  3. package/.documentation/business-analyse.html +1505 -1501
  4. package/.documentation/commands.html +684 -680
  5. package/.documentation/css/styles.css +2168 -2168
  6. package/.documentation/efcore.html +2509 -2505
  7. package/.documentation/gitflow.html +2622 -2618
  8. package/.documentation/hooks.html +417 -413
  9. package/.documentation/index.html +327 -323
  10. package/.documentation/init.html +565 -0
  11. package/.documentation/installation.html +548 -462
  12. package/.documentation/js/app.js +794 -794
  13. package/.documentation/ralph-loop.html +534 -530
  14. package/.documentation/test-web.html +517 -513
  15. package/config/default-config.json +86 -86
  16. package/config/settings.json +53 -53
  17. package/config/settings.local.example.json +16 -16
  18. package/dist/index.js +18 -8
  19. package/dist/index.js.map +1 -1
  20. package/package.json +88 -88
  21. package/templates/agents/action.md +36 -36
  22. package/templates/agents/efcore/conflicts.md +84 -84
  23. package/templates/agents/efcore/db-deploy.md +51 -51
  24. package/templates/agents/efcore/db-reset.md +59 -59
  25. package/templates/agents/efcore/db-seed.md +56 -56
  26. package/templates/agents/efcore/db-status.md +64 -64
  27. package/templates/agents/efcore/migration.md +85 -85
  28. package/templates/agents/efcore/rebase-snapshot.md +62 -62
  29. package/templates/agents/efcore/scan.md +90 -90
  30. package/templates/agents/efcore/squash.md +67 -67
  31. package/templates/agents/explore-codebase.md +65 -65
  32. package/templates/agents/explore-docs.md +97 -97
  33. package/templates/agents/fix-grammar.md +49 -49
  34. package/templates/agents/gitflow/abort.md +45 -45
  35. package/templates/agents/gitflow/cleanup.md +85 -85
  36. package/templates/agents/gitflow/commit.md +40 -40
  37. package/templates/agents/gitflow/exec.md +48 -48
  38. package/templates/agents/gitflow/finish.md +92 -92
  39. package/templates/agents/gitflow/init.md +139 -139
  40. package/templates/agents/gitflow/merge.md +62 -62
  41. package/templates/agents/gitflow/plan.md +42 -42
  42. package/templates/agents/gitflow/pr.md +78 -78
  43. package/templates/agents/gitflow/review.md +49 -49
  44. package/templates/agents/gitflow/start.md +61 -61
  45. package/templates/agents/gitflow/status.md +32 -32
  46. package/templates/agents/snipper.md +36 -36
  47. package/templates/agents/websearch.md +46 -46
  48. package/templates/commands/_resources/formatting-guide.md +124 -124
  49. package/templates/commands/ai-prompt.md +315 -315
  50. package/templates/commands/apex/1-analyze.md +100 -100
  51. package/templates/commands/apex/2-plan.md +145 -145
  52. package/templates/commands/apex/3-execute.md +171 -171
  53. package/templates/commands/apex/4-examine.md +116 -116
  54. package/templates/commands/apex/5-tasks.md +209 -209
  55. package/templates/commands/apex.md +76 -76
  56. package/templates/commands/application/create.md +362 -362
  57. package/templates/commands/application/templates-backend.md +463 -463
  58. package/templates/commands/application/templates-frontend.md +517 -517
  59. package/templates/commands/application/templates-i18n.md +478 -478
  60. package/templates/commands/application/templates-seed.md +362 -362
  61. package/templates/commands/application.md +303 -303
  62. package/templates/commands/business-analyse/0-orchestrate.md +640 -640
  63. package/templates/commands/business-analyse/1-init.md +269 -269
  64. package/templates/commands/business-analyse/2-discover.md +520 -520
  65. package/templates/commands/business-analyse/3-analyse.md +408 -408
  66. package/templates/commands/business-analyse/4-specify.md +598 -598
  67. package/templates/commands/business-analyse/5-validate.md +326 -326
  68. package/templates/commands/business-analyse/6-handoff.md +746 -746
  69. package/templates/commands/business-analyse/7-doc-html.md +602 -602
  70. package/templates/commands/business-analyse/bug.md +325 -325
  71. package/templates/commands/business-analyse/change-request.md +368 -368
  72. package/templates/commands/business-analyse/hotfix.md +200 -200
  73. package/templates/commands/business-analyse.md +640 -640
  74. package/templates/commands/controller/create.md +216 -216
  75. package/templates/commands/controller/postman-templates.md +528 -528
  76. package/templates/commands/controller/templates.md +600 -600
  77. package/templates/commands/controller.md +337 -337
  78. package/templates/commands/create/agent.md +138 -138
  79. package/templates/commands/create/command.md +166 -166
  80. package/templates/commands/create/hook.md +234 -234
  81. package/templates/commands/create/plugin.md +329 -329
  82. package/templates/commands/create/project.md +507 -507
  83. package/templates/commands/create/skill.md +199 -199
  84. package/templates/commands/create.md +220 -220
  85. package/templates/commands/debug.md +95 -95
  86. package/templates/commands/documentation/module.md +202 -202
  87. package/templates/commands/documentation/templates.md +432 -432
  88. package/templates/commands/documentation.md +190 -190
  89. package/templates/commands/efcore/_env-check.md +153 -153
  90. package/templates/commands/efcore/conflicts.md +186 -186
  91. package/templates/commands/efcore/db-deploy.md +193 -193
  92. package/templates/commands/efcore/db-reset.md +426 -426
  93. package/templates/commands/efcore/db-seed.md +326 -326
  94. package/templates/commands/efcore/db-status.md +226 -226
  95. package/templates/commands/efcore/migration.md +400 -400
  96. package/templates/commands/efcore/rebase-snapshot.md +264 -264
  97. package/templates/commands/efcore/scan.md +198 -198
  98. package/templates/commands/efcore/squash.md +298 -298
  99. package/templates/commands/efcore.md +224 -224
  100. package/templates/commands/epct.md +69 -69
  101. package/templates/commands/explain.md +186 -186
  102. package/templates/commands/explore.md +45 -45
  103. package/templates/commands/feature-full.md +267 -267
  104. package/templates/commands/gitflow/1-init.md +1038 -1038
  105. package/templates/commands/gitflow/10-start.md +768 -768
  106. package/templates/commands/gitflow/11-finish.md +457 -457
  107. package/templates/commands/gitflow/12-cleanup.md +276 -276
  108. package/templates/commands/gitflow/13-sync.md +216 -216
  109. package/templates/commands/gitflow/14-rebase.md +251 -251
  110. package/templates/commands/gitflow/2-status.md +277 -277
  111. package/templates/commands/gitflow/3-commit.md +344 -344
  112. package/templates/commands/gitflow/4-plan.md +145 -145
  113. package/templates/commands/gitflow/5-exec.md +147 -147
  114. package/templates/commands/gitflow/6-abort.md +344 -344
  115. package/templates/commands/gitflow/7-pull-request.md +453 -355
  116. package/templates/commands/gitflow/8-review.md +240 -176
  117. package/templates/commands/gitflow/9-merge.md +451 -365
  118. package/templates/commands/gitflow.md +128 -128
  119. package/templates/commands/implement.md +663 -663
  120. package/templates/commands/init.md +567 -562
  121. package/templates/commands/mcp-integration.md +330 -330
  122. package/templates/commands/notification.md +129 -129
  123. package/templates/commands/oneshot.md +57 -57
  124. package/templates/commands/quick-search.md +72 -72
  125. package/templates/commands/ralph-loop/cancel-ralph.md +18 -18
  126. package/templates/commands/ralph-loop/help.md +126 -126
  127. package/templates/commands/ralph-loop/ralph-loop.md +18 -18
  128. package/templates/commands/review.md +106 -106
  129. package/templates/commands/utils/test-web-config.md +160 -160
  130. package/templates/commands/utils/test-web.md +151 -151
  131. package/templates/commands/validate.md +233 -233
  132. package/templates/commands/workflow.md +193 -193
  133. package/templates/gitflow/config.json +138 -138
  134. package/templates/hooks/ef-migration-check.md +139 -139
  135. package/templates/hooks/hooks.json +25 -25
  136. package/templates/hooks/stop-hook.sh +177 -177
  137. package/templates/skills/ai-prompt/SKILL.md +778 -778
  138. package/templates/skills/application/SKILL.md +563 -563
  139. package/templates/skills/application/templates-backend.md +450 -450
  140. package/templates/skills/application/templates-frontend.md +531 -531
  141. package/templates/skills/application/templates-i18n.md +520 -520
  142. package/templates/skills/application/templates-seed.md +647 -647
  143. package/templates/skills/business-analyse/SKILL.md +191 -191
  144. package/templates/skills/business-analyse/questionnaire.md +283 -283
  145. package/templates/skills/business-analyse/templates-frd.md +477 -477
  146. package/templates/skills/business-analyse/templates-react.md +580 -580
  147. package/templates/skills/controller/SKILL.md +240 -240
  148. package/templates/skills/controller/postman-templates.md +614 -614
  149. package/templates/skills/controller/templates.md +1468 -1468
  150. package/templates/skills/documentation/SKILL.md +133 -133
  151. package/templates/skills/documentation/templates.md +476 -476
  152. package/templates/skills/feature-full/SKILL.md +838 -838
  153. package/templates/skills/notification/SKILL.md +555 -555
  154. package/templates/skills/ui-components/SKILL.md +870 -870
  155. package/templates/skills/workflow/SKILL.md +582 -582
  156. package/templates/test-web/api-health.json +38 -38
  157. package/templates/test-web/minimal.json +19 -19
  158. package/templates/test-web/npm-package.json +46 -46
  159. package/templates/test-web/seo-check.json +54 -54
@@ -1,277 +1,277 @@
1
- ---
2
- description: Phase 2 - Display GitFlow state with versioning and EF Core details
3
- agent: gitflow-status
4
- model: haiku
5
- ---
6
-
7
- # Phase 2: STATUS - Overview
8
-
9
- Tu es expert GitFlow et EF Core. Affiche l'etat complet du projet.
10
-
11
- ---
12
-
13
- ## Informations a collecter
14
-
15
- ### Git
16
- - Branche courante et type (feature/release/hotfix/develop/main)
17
- - Etat working directory (clean/dirty)
18
- - Synchronisation locale vs remote (push/pull needed)
19
- - Synchronisation vs develop et main (commits ahead/behind)
20
- - Dernier tag
21
-
22
- ### Sync Local vs Remote
23
- ```bash
24
- # Fetch pour avoir les infos a jour (sans modifier le working directory)
25
- git fetch --quiet 2>/dev/null
26
-
27
- # Verifier si la branche a un remote tracking
28
- UPSTREAM=$(git rev-parse --abbrev-ref @{upstream} 2>/dev/null)
29
-
30
- if [ -n "$UPSTREAM" ]; then
31
- # Comparer local vs remote
32
- LOCAL=$(git rev-parse @)
33
- REMOTE=$(git rev-parse @{upstream})
34
- BASE=$(git merge-base @ @{upstream})
35
-
36
- if [ "$LOCAL" = "$REMOTE" ]; then
37
- SYNC_STATUS="UP-TO-DATE"
38
- elif [ "$LOCAL" = "$BASE" ]; then
39
- BEHIND=$(git rev-list --count @..@{upstream})
40
- SYNC_STATUS="BEHIND $BEHIND (pull needed)"
41
- elif [ "$REMOTE" = "$BASE" ]; then
42
- AHEAD=$(git rev-list --count @{upstream}..@)
43
- SYNC_STATUS="AHEAD $AHEAD (push needed)"
44
- else
45
- AHEAD=$(git rev-list --count @{upstream}..@)
46
- BEHIND=$(git rev-list --count @..@{upstream})
47
- SYNC_STATUS="DIVERGED +$AHEAD/-$BEHIND (pull --rebase needed)"
48
- fi
49
- else
50
- SYNC_STATUS="NO REMOTE (not pushed yet)"
51
- fi
52
- ```
53
-
54
- ### Sync develop vs main (CRITIQUE)
55
-
56
- ```bash
57
- # 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")
59
-
60
- # 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")
62
-
63
- # Determiner l'etat de synchronisation
64
- if [ "$DEVELOP_AHEAD" -eq 0 ] && [ "$MAIN_AHEAD" -eq 0 ]; then
65
- BASE_SYNC="SYNCHRONIZED"
66
- elif [ "$MAIN_AHEAD" -gt 0 ]; then
67
- BASE_SYNC="DIVERGED" # PROBLEME!
68
- elif [ "$DEVELOP_AHEAD" -gt 0 ]; then
69
- BASE_SYNC="RELEASE_NEEDED" # Normal
70
- fi
71
- ```
72
-
73
- **Si MAIN_AHEAD > 0 (main a des commits absents de develop):**
74
- ```bash
75
- # Lister les commits divergents
76
- git log origin/develop..origin/main --oneline
77
- ```
78
-
79
- ### Version
80
- Read from configured source in [.claude/gitflow/config.json](.claude/gitflow/config.json):
81
- - `versioning.source` → type (csproj, Directory.Build.props, AssemblyInfo, VERSION, git-tag, package.json)
82
- - `versioning.sourceFile` → file path
83
- - Read current version from THAT file (not from config.json)
84
-
85
- Fallback si pas de config:
86
- ```bash
87
- # package.json
88
- VERSION=$(grep '"version"' package.json 2>/dev/null | head -1 | sed 's/.*: "\(.*\)".*/\1/')
89
- # .csproj
90
- [ -z "$VERSION" ] && VERSION=$(grep -oP '(?<=<Version>).*(?=</Version>)' *.csproj 2>/dev/null | head -1)
91
- # VERSION file
92
- [ -z "$VERSION" ] && VERSION=$(cat VERSION 2>/dev/null)
93
- # Git tag
94
- [ -z "$VERSION" ] && VERSION=$(git describe --tags --abbrev=0 2>/dev/null)
95
- ```
96
-
97
- ### EF Core
98
- - Lister les migrations (total et pending)
99
- - Lister les DbContext detectes
100
-
101
- ### EF Core - Vue globale (toutes branches)
102
- Si `--all-branches` ou si plusieurs branches GitFlow actives:
103
- ```bash
104
- # Scanner les branches actives
105
- FEATURES=$(git branch -r | grep 'feature/' | wc -l)
106
- RELEASES=$(git branch -r | grep 'release/' | wc -l)
107
- HOTFIXES=$(git branch -r | grep 'hotfix/' | wc -l)
108
-
109
- # Pour chaque branche, detecter migrations ajoutees
110
- for BRANCH in $(git branch -r | grep -E 'feature/|release/|hotfix/'); do
111
- MIGRATIONS=$(git diff origin/develop..$BRANCH --name-only | grep -E "Migrations/.*\.cs$" | grep -v Designer | grep -v ModelSnapshot)
112
- CONFLICT=$(git diff origin/develop..$BRANCH --name-only | grep "ModelSnapshot" | wc -l)
113
- done
114
- ```
115
-
116
- ### Plans GitFlow
117
- - Plans actifs (non termines)
118
- - Plans termines recemment (7 jours)
119
-
120
- ### Operations en cours
121
- - Rebase, merge, cherry-pick en cours?
122
- - Conflits detectes?
123
-
124
- ### Risques
125
- - **Divergence main/develop** (main a des commits absents de develop)
126
- - Divergence > 5 commits vs develop
127
- - Migrations non commitees
128
- - ModelSnapshot modifie non commite
129
-
130
- ---
131
-
132
- ## Affichage
133
-
134
- ```
135
- ================================================================================
136
- GITFLOW STATUS
137
- ================================================================================
138
-
139
- BRANCHE: {branch} ({type}) | {clean|dirty}
140
- VERSION: {version} ({source})
141
-
142
- REMOTE SYNC
143
- vs origin/{branch}: {UP-TO-DATE|AHEAD N|BEHIND N|DIVERGED|NO REMOTE}
144
-
145
- --------------------------------------------------------------------------------
146
- SYNC DEVELOP <-> MAIN
147
- --------------------------------------------------------------------------------
148
- develop → main: +{DEVELOP_AHEAD} commits {message}
149
- main → develop: +{MAIN_AHEAD} commits {message}
150
-
151
- {Si DEVELOP_AHEAD > 0 et MAIN_AHEAD == 0:}
152
- ✓ Normal: develop a {N} commits prets a releaser
153
- → Action: /gitflow:10-start release
154
-
155
- {Si MAIN_AHEAD > 0:}
156
- ⚠️ ATTENTION: main contient {N} commits absents de develop!
157
-
158
- Commits sur main non merges dans develop:
159
- {git log origin/develop..origin/main --oneline}
160
-
161
- Causes possibles:
162
- - Hotfix non merge back dans develop
163
- - Commit direct sur main (non recommande)
164
- - Release mal finalisee
165
-
166
- → Actions:
167
- 1. Merger main dans develop: git merge origin/main
168
- 2. Ou via release: /gitflow:10-start release (reset main)
169
-
170
- {Si DEVELOP_AHEAD == 0 et MAIN_AHEAD == 0:}
171
- ✓ Synchronise: develop et main sont identiques
172
- --------------------------------------------------------------------------------
173
-
174
- DERNIER TAG: {tag}
175
-
176
- EF CORE (branche courante)
177
- Migrations: {total} total, {pending} pending
178
- [Pending] {liste}
179
-
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
187
-
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
- --------------------------------------------------------------------------------
193
-
194
- PLANS: {n} active | OPERATIONS: {none|rebase|merge} | RISKS: {liste}
195
-
196
- ================================================================================
197
- Actions: /gitflow:13-sync | /gitflow:14-rebase | /gitflow:3-commit | /gitflow:4-plan
198
- ================================================================================
199
- ```
200
-
201
- ---
202
-
203
- ## Alertes Specifiques
204
-
205
- ### Alerte: main divergent de develop
206
-
207
- ```
208
- ╔══════════════════════════════════════════════════════════════════════════════╗
209
- ║ ⚠️ DIVERGENCE DETECTEE: main contient des commits absents de develop ║
210
- ╠══════════════════════════════════════════════════════════════════════════════╣
211
- ║ ║
212
- ║ Commits sur main non presents sur develop ({N}): ║
213
- ║ {hash1} {message1} ║
214
- ║ {hash2} {message2} ║
215
- ║ ... ║
216
- ║ ║
217
- ╠══════════════════════════════════════════════════════════════════════════════╣
218
- ║ RESOLUTIONS: ║
219
- ║ ║
220
- ║ Option 1 - Merger main dans develop (recommande): ║
221
- ║ git checkout develop && git merge origin/main ║
222
- ║ ║
223
- ║ Option 2 - Via la prochaine release: ║
224
- ║ /gitflow:10-start release ║
225
- ║ (La release peut reset main si necessaire) ║
226
- ║ ║
227
- ║ Option 3 - Cherry-pick selectif: ║
228
- ║ git cherry-pick {hash} ║
229
- ║ ║
230
- ╚══════════════════════════════════════════════════════════════════════════════╝
231
- ```
232
-
233
- ### Alerte: Release recommandee
234
-
235
- ```
236
- ┌──────────────────────────────────────────────────────────────────────────────┐
237
- │ ℹ️ RELEASE RECOMMANDEE │
238
- ├──────────────────────────────────────────────────────────────────────────────┤
239
- │ develop a {N} commits en avance de main. │
240
- │ → /gitflow:10-start release │
241
- └──────────────────────────────────────────────────────────────────────────────┘
242
- ```
243
-
244
- ---
245
-
246
- ## Modes
247
-
248
- | Mode | Output |
249
- |------|--------|
250
- | Normal | Affichage complet |
251
- | `--short` | `[branch] status \| vX.Y.Z \| dev→main:+X \| main→dev:+Y` |
252
- | `--json` | JSON structure |
253
-
254
- ## Codes sortie
255
-
256
- | Code | Signification |
257
- |------|---------------|
258
- | 0 | OK (synchronise ou release needed) |
259
- | 1 | Warnings (pending, release recommandee) |
260
- | 2 | Problemes (divergence main/develop, conflits, operation en cours) |
261
- | 3 | Erreur (pas repo, no config) |
262
-
263
- ## Actions suggerees
264
-
265
- | Etat | Commande Claude Code |
266
- |------|----------------------|
267
- | AHEAD N (push needed) | `/gitflow:13-sync` |
268
- | BEHIND N (pull needed) | `/gitflow:13-sync` |
269
- | DIVERGED local/remote | `/gitflow:13-sync` |
270
- | NO REMOTE (not pushed yet) | `/gitflow:13-sync` |
271
- | **main ahead of develop** | `git merge origin/main` ou `/gitflow:10-start release` |
272
- | develop ahead of main | `/gitflow:10-start release` |
273
- | Divergence > 5 vs develop | `/gitflow:14-rebase` |
274
- | Pending migrations | `/efcore:db-deploy` |
275
- | Dirty workdir | `/gitflow:3-commit` |
276
- | Operation en cours | `/gitflow:6-abort` |
277
- | No config | `/gitflow:1-init` |
1
+ ---
2
+ description: Phase 2 - Display GitFlow state with versioning and EF Core details
3
+ agent: gitflow-status
4
+ model: haiku
5
+ ---
6
+
7
+ # Phase 2: STATUS - Overview
8
+
9
+ Tu es expert GitFlow et EF Core. Affiche l'etat complet du projet.
10
+
11
+ ---
12
+
13
+ ## Informations a collecter
14
+
15
+ ### Git
16
+ - Branche courante et type (feature/release/hotfix/develop/main)
17
+ - Etat working directory (clean/dirty)
18
+ - Synchronisation locale vs remote (push/pull needed)
19
+ - Synchronisation vs develop et main (commits ahead/behind)
20
+ - Dernier tag
21
+
22
+ ### Sync Local vs Remote
23
+ ```bash
24
+ # Fetch pour avoir les infos a jour (sans modifier le working directory)
25
+ git fetch --quiet 2>/dev/null
26
+
27
+ # Verifier si la branche a un remote tracking
28
+ UPSTREAM=$(git rev-parse --abbrev-ref @{upstream} 2>/dev/null)
29
+
30
+ if [ -n "$UPSTREAM" ]; then
31
+ # Comparer local vs remote
32
+ LOCAL=$(git rev-parse @)
33
+ REMOTE=$(git rev-parse @{upstream})
34
+ BASE=$(git merge-base @ @{upstream})
35
+
36
+ if [ "$LOCAL" = "$REMOTE" ]; then
37
+ SYNC_STATUS="UP-TO-DATE"
38
+ elif [ "$LOCAL" = "$BASE" ]; then
39
+ BEHIND=$(git rev-list --count @..@{upstream})
40
+ SYNC_STATUS="BEHIND $BEHIND (pull needed)"
41
+ elif [ "$REMOTE" = "$BASE" ]; then
42
+ AHEAD=$(git rev-list --count @{upstream}..@)
43
+ SYNC_STATUS="AHEAD $AHEAD (push needed)"
44
+ else
45
+ AHEAD=$(git rev-list --count @{upstream}..@)
46
+ BEHIND=$(git rev-list --count @..@{upstream})
47
+ SYNC_STATUS="DIVERGED +$AHEAD/-$BEHIND (pull --rebase needed)"
48
+ fi
49
+ else
50
+ SYNC_STATUS="NO REMOTE (not pushed yet)"
51
+ fi
52
+ ```
53
+
54
+ ### Sync develop vs main (CRITIQUE)
55
+
56
+ ```bash
57
+ # 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")
59
+
60
+ # 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")
62
+
63
+ # Determiner l'etat de synchronisation
64
+ if [ "$DEVELOP_AHEAD" -eq 0 ] && [ "$MAIN_AHEAD" -eq 0 ]; then
65
+ BASE_SYNC="SYNCHRONIZED"
66
+ elif [ "$MAIN_AHEAD" -gt 0 ]; then
67
+ BASE_SYNC="DIVERGED" # PROBLEME!
68
+ elif [ "$DEVELOP_AHEAD" -gt 0 ]; then
69
+ BASE_SYNC="RELEASE_NEEDED" # Normal
70
+ fi
71
+ ```
72
+
73
+ **Si MAIN_AHEAD > 0 (main a des commits absents de develop):**
74
+ ```bash
75
+ # Lister les commits divergents
76
+ git log origin/develop..origin/main --oneline
77
+ ```
78
+
79
+ ### Version
80
+ Read from configured source in [.claude/gitflow/config.json](.claude/gitflow/config.json):
81
+ - `versioning.source` → type (csproj, Directory.Build.props, AssemblyInfo, VERSION, git-tag, package.json)
82
+ - `versioning.sourceFile` → file path
83
+ - Read current version from THAT file (not from config.json)
84
+
85
+ Fallback si pas de config:
86
+ ```bash
87
+ # package.json
88
+ VERSION=$(grep '"version"' package.json 2>/dev/null | head -1 | sed 's/.*: "\(.*\)".*/\1/')
89
+ # .csproj
90
+ [ -z "$VERSION" ] && VERSION=$(grep -oP '(?<=<Version>).*(?=</Version>)' *.csproj 2>/dev/null | head -1)
91
+ # VERSION file
92
+ [ -z "$VERSION" ] && VERSION=$(cat VERSION 2>/dev/null)
93
+ # Git tag
94
+ [ -z "$VERSION" ] && VERSION=$(git describe --tags --abbrev=0 2>/dev/null)
95
+ ```
96
+
97
+ ### EF Core
98
+ - Lister les migrations (total et pending)
99
+ - Lister les DbContext detectes
100
+
101
+ ### EF Core - Vue globale (toutes branches)
102
+ Si `--all-branches` ou si plusieurs branches GitFlow actives:
103
+ ```bash
104
+ # Scanner les branches actives
105
+ FEATURES=$(git branch -r | grep 'feature/' | wc -l)
106
+ RELEASES=$(git branch -r | grep 'release/' | wc -l)
107
+ HOTFIXES=$(git branch -r | grep 'hotfix/' | wc -l)
108
+
109
+ # Pour chaque branche, detecter migrations ajoutees
110
+ for BRANCH in $(git branch -r | grep -E 'feature/|release/|hotfix/'); do
111
+ MIGRATIONS=$(git diff origin/develop..$BRANCH --name-only | grep -E "Migrations/.*\.cs$" | grep -v Designer | grep -v ModelSnapshot)
112
+ CONFLICT=$(git diff origin/develop..$BRANCH --name-only | grep "ModelSnapshot" | wc -l)
113
+ done
114
+ ```
115
+
116
+ ### Plans GitFlow
117
+ - Plans actifs (non termines)
118
+ - Plans termines recemment (7 jours)
119
+
120
+ ### Operations en cours
121
+ - Rebase, merge, cherry-pick en cours?
122
+ - Conflits detectes?
123
+
124
+ ### Risques
125
+ - **Divergence main/develop** (main a des commits absents de develop)
126
+ - Divergence > 5 commits vs develop
127
+ - Migrations non commitees
128
+ - ModelSnapshot modifie non commite
129
+
130
+ ---
131
+
132
+ ## Affichage
133
+
134
+ ```
135
+ ================================================================================
136
+ GITFLOW STATUS
137
+ ================================================================================
138
+
139
+ BRANCHE: {branch} ({type}) | {clean|dirty}
140
+ VERSION: {version} ({source})
141
+
142
+ REMOTE SYNC
143
+ vs origin/{branch}: {UP-TO-DATE|AHEAD N|BEHIND N|DIVERGED|NO REMOTE}
144
+
145
+ --------------------------------------------------------------------------------
146
+ SYNC DEVELOP <-> MAIN
147
+ --------------------------------------------------------------------------------
148
+ develop → main: +{DEVELOP_AHEAD} commits {message}
149
+ main → develop: +{MAIN_AHEAD} commits {message}
150
+
151
+ {Si DEVELOP_AHEAD > 0 et MAIN_AHEAD == 0:}
152
+ ✓ Normal: develop a {N} commits prets a releaser
153
+ → Action: /gitflow:10-start release
154
+
155
+ {Si MAIN_AHEAD > 0:}
156
+ ⚠️ ATTENTION: main contient {N} commits absents de develop!
157
+
158
+ Commits sur main non merges dans develop:
159
+ {git log origin/develop..origin/main --oneline}
160
+
161
+ Causes possibles:
162
+ - Hotfix non merge back dans develop
163
+ - Commit direct sur main (non recommande)
164
+ - Release mal finalisee
165
+
166
+ → Actions:
167
+ 1. Merger main dans develop: git merge origin/main
168
+ 2. Ou via release: /gitflow:10-start release (reset main)
169
+
170
+ {Si DEVELOP_AHEAD == 0 et MAIN_AHEAD == 0:}
171
+ ✓ Synchronise: develop et main sont identiques
172
+ --------------------------------------------------------------------------------
173
+
174
+ DERNIER TAG: {tag}
175
+
176
+ EF CORE (branche courante)
177
+ Migrations: {total} total, {pending} pending
178
+ [Pending] {liste}
179
+
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
187
+
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
+ --------------------------------------------------------------------------------
193
+
194
+ PLANS: {n} active | OPERATIONS: {none|rebase|merge} | RISKS: {liste}
195
+
196
+ ================================================================================
197
+ Actions: /gitflow:13-sync | /gitflow:14-rebase | /gitflow:3-commit | /gitflow:4-plan
198
+ ================================================================================
199
+ ```
200
+
201
+ ---
202
+
203
+ ## Alertes Specifiques
204
+
205
+ ### Alerte: main divergent de develop
206
+
207
+ ```
208
+ ╔══════════════════════════════════════════════════════════════════════════════╗
209
+ ║ ⚠️ DIVERGENCE DETECTEE: main contient des commits absents de develop ║
210
+ ╠══════════════════════════════════════════════════════════════════════════════╣
211
+ ║ ║
212
+ ║ Commits sur main non presents sur develop ({N}): ║
213
+ ║ {hash1} {message1} ║
214
+ ║ {hash2} {message2} ║
215
+ ║ ... ║
216
+ ║ ║
217
+ ╠══════════════════════════════════════════════════════════════════════════════╣
218
+ ║ RESOLUTIONS: ║
219
+ ║ ║
220
+ ║ Option 1 - Merger main dans develop (recommande): ║
221
+ ║ git checkout develop && git merge origin/main ║
222
+ ║ ║
223
+ ║ Option 2 - Via la prochaine release: ║
224
+ ║ /gitflow:10-start release ║
225
+ ║ (La release peut reset main si necessaire) ║
226
+ ║ ║
227
+ ║ Option 3 - Cherry-pick selectif: ║
228
+ ║ git cherry-pick {hash} ║
229
+ ║ ║
230
+ ╚══════════════════════════════════════════════════════════════════════════════╝
231
+ ```
232
+
233
+ ### Alerte: Release recommandee
234
+
235
+ ```
236
+ ┌──────────────────────────────────────────────────────────────────────────────┐
237
+ │ ℹ️ RELEASE RECOMMANDEE │
238
+ ├──────────────────────────────────────────────────────────────────────────────┤
239
+ │ develop a {N} commits en avance de main. │
240
+ │ → /gitflow:10-start release │
241
+ └──────────────────────────────────────────────────────────────────────────────┘
242
+ ```
243
+
244
+ ---
245
+
246
+ ## Modes
247
+
248
+ | Mode | Output |
249
+ |------|--------|
250
+ | Normal | Affichage complet |
251
+ | `--short` | `[branch] status \| vX.Y.Z \| dev→main:+X \| main→dev:+Y` |
252
+ | `--json` | JSON structure |
253
+
254
+ ## Codes sortie
255
+
256
+ | Code | Signification |
257
+ |------|---------------|
258
+ | 0 | OK (synchronise ou release needed) |
259
+ | 1 | Warnings (pending, release recommandee) |
260
+ | 2 | Problemes (divergence main/develop, conflits, operation en cours) |
261
+ | 3 | Erreur (pas repo, no config) |
262
+
263
+ ## Actions suggerees
264
+
265
+ | Etat | Commande Claude Code |
266
+ |------|----------------------|
267
+ | AHEAD N (push needed) | `/gitflow:13-sync` |
268
+ | BEHIND N (pull needed) | `/gitflow:13-sync` |
269
+ | DIVERGED local/remote | `/gitflow:13-sync` |
270
+ | NO REMOTE (not pushed yet) | `/gitflow:13-sync` |
271
+ | **main ahead of develop** | `git merge origin/main` ou `/gitflow:10-start release` |
272
+ | develop ahead of main | `/gitflow:10-start release` |
273
+ | Divergence > 5 vs develop | `/gitflow:14-rebase` |
274
+ | Pending migrations | `/efcore:db-deploy` |
275
+ | Dirty workdir | `/gitflow:3-commit` |
276
+ | Operation en cours | `/gitflow:6-abort` |
277
+ | No config | `/gitflow:1-init` |