@atlashub/smartstack-cli 1.5.1 → 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 (147) hide show
  1. package/.documentation/css/styles.css +2168 -2168
  2. package/.documentation/js/app.js +794 -794
  3. package/config/default-config.json +86 -86
  4. package/config/settings.json +53 -53
  5. package/config/settings.local.example.json +16 -16
  6. package/dist/index.js +0 -0
  7. package/dist/index.js.map +1 -1
  8. package/package.json +88 -88
  9. package/templates/agents/action.md +36 -36
  10. package/templates/agents/efcore/conflicts.md +84 -84
  11. package/templates/agents/efcore/db-deploy.md +51 -51
  12. package/templates/agents/efcore/db-reset.md +59 -59
  13. package/templates/agents/efcore/db-seed.md +56 -56
  14. package/templates/agents/efcore/db-status.md +64 -64
  15. package/templates/agents/efcore/migration.md +85 -85
  16. package/templates/agents/efcore/rebase-snapshot.md +62 -62
  17. package/templates/agents/efcore/scan.md +90 -90
  18. package/templates/agents/efcore/squash.md +67 -67
  19. package/templates/agents/explore-codebase.md +65 -65
  20. package/templates/agents/explore-docs.md +97 -97
  21. package/templates/agents/fix-grammar.md +49 -49
  22. package/templates/agents/gitflow/abort.md +45 -45
  23. package/templates/agents/gitflow/cleanup.md +85 -85
  24. package/templates/agents/gitflow/commit.md +40 -40
  25. package/templates/agents/gitflow/exec.md +48 -48
  26. package/templates/agents/gitflow/finish.md +92 -92
  27. package/templates/agents/gitflow/init.md +139 -139
  28. package/templates/agents/gitflow/merge.md +62 -62
  29. package/templates/agents/gitflow/plan.md +42 -42
  30. package/templates/agents/gitflow/pr.md +78 -78
  31. package/templates/agents/gitflow/review.md +49 -49
  32. package/templates/agents/gitflow/start.md +61 -61
  33. package/templates/agents/gitflow/status.md +32 -32
  34. package/templates/agents/snipper.md +36 -36
  35. package/templates/agents/websearch.md +46 -46
  36. package/templates/commands/_resources/formatting-guide.md +124 -124
  37. package/templates/commands/ai-prompt.md +315 -315
  38. package/templates/commands/apex/1-analyze.md +100 -100
  39. package/templates/commands/apex/2-plan.md +145 -145
  40. package/templates/commands/apex/3-execute.md +171 -171
  41. package/templates/commands/apex/4-examine.md +116 -116
  42. package/templates/commands/apex/5-tasks.md +209 -209
  43. package/templates/commands/apex.md +76 -76
  44. package/templates/commands/application/create.md +362 -362
  45. package/templates/commands/application/templates-backend.md +463 -463
  46. package/templates/commands/application/templates-frontend.md +517 -517
  47. package/templates/commands/application/templates-i18n.md +478 -478
  48. package/templates/commands/application/templates-seed.md +362 -362
  49. package/templates/commands/application.md +303 -303
  50. package/templates/commands/business-analyse/0-orchestrate.md +640 -640
  51. package/templates/commands/business-analyse/1-init.md +269 -269
  52. package/templates/commands/business-analyse/2-discover.md +520 -520
  53. package/templates/commands/business-analyse/3-analyse.md +408 -408
  54. package/templates/commands/business-analyse/4-specify.md +598 -598
  55. package/templates/commands/business-analyse/5-validate.md +326 -326
  56. package/templates/commands/business-analyse/6-handoff.md +746 -746
  57. package/templates/commands/business-analyse/7-doc-html.md +602 -602
  58. package/templates/commands/business-analyse/bug.md +325 -325
  59. package/templates/commands/business-analyse/change-request.md +368 -368
  60. package/templates/commands/business-analyse/hotfix.md +200 -200
  61. package/templates/commands/business-analyse.md +640 -640
  62. package/templates/commands/controller/create.md +216 -216
  63. package/templates/commands/controller/postman-templates.md +528 -528
  64. package/templates/commands/controller/templates.md +600 -600
  65. package/templates/commands/controller.md +337 -337
  66. package/templates/commands/create/agent.md +138 -138
  67. package/templates/commands/create/command.md +166 -166
  68. package/templates/commands/create/hook.md +234 -234
  69. package/templates/commands/create/plugin.md +329 -329
  70. package/templates/commands/create/project.md +507 -507
  71. package/templates/commands/create/skill.md +199 -199
  72. package/templates/commands/create.md +220 -220
  73. package/templates/commands/debug.md +95 -95
  74. package/templates/commands/documentation/module.md +202 -202
  75. package/templates/commands/documentation/templates.md +432 -432
  76. package/templates/commands/documentation.md +190 -190
  77. package/templates/commands/efcore/_env-check.md +153 -153
  78. package/templates/commands/efcore/conflicts.md +186 -186
  79. package/templates/commands/efcore/db-deploy.md +193 -193
  80. package/templates/commands/efcore/db-reset.md +426 -426
  81. package/templates/commands/efcore/db-seed.md +326 -326
  82. package/templates/commands/efcore/db-status.md +226 -226
  83. package/templates/commands/efcore/migration.md +400 -400
  84. package/templates/commands/efcore/rebase-snapshot.md +264 -264
  85. package/templates/commands/efcore/scan.md +198 -198
  86. package/templates/commands/efcore/squash.md +298 -298
  87. package/templates/commands/efcore.md +224 -224
  88. package/templates/commands/epct.md +69 -69
  89. package/templates/commands/explain.md +186 -186
  90. package/templates/commands/explore.md +45 -45
  91. package/templates/commands/feature-full.md +267 -267
  92. package/templates/commands/gitflow/1-init.md +1038 -1038
  93. package/templates/commands/gitflow/10-start.md +768 -768
  94. package/templates/commands/gitflow/11-finish.md +457 -457
  95. package/templates/commands/gitflow/12-cleanup.md +276 -276
  96. package/templates/commands/gitflow/13-sync.md +216 -216
  97. package/templates/commands/gitflow/14-rebase.md +251 -251
  98. package/templates/commands/gitflow/2-status.md +277 -277
  99. package/templates/commands/gitflow/3-commit.md +344 -344
  100. package/templates/commands/gitflow/4-plan.md +145 -145
  101. package/templates/commands/gitflow/5-exec.md +147 -147
  102. package/templates/commands/gitflow/6-abort.md +344 -344
  103. package/templates/commands/gitflow/7-pull-request.md +453 -355
  104. package/templates/commands/gitflow/8-review.md +240 -176
  105. package/templates/commands/gitflow/9-merge.md +451 -365
  106. package/templates/commands/gitflow.md +128 -128
  107. package/templates/commands/implement.md +663 -663
  108. package/templates/commands/init.md +567 -567
  109. package/templates/commands/mcp-integration.md +330 -330
  110. package/templates/commands/notification.md +129 -129
  111. package/templates/commands/oneshot.md +57 -57
  112. package/templates/commands/quick-search.md +72 -72
  113. package/templates/commands/ralph-loop/cancel-ralph.md +18 -18
  114. package/templates/commands/ralph-loop/help.md +126 -126
  115. package/templates/commands/ralph-loop/ralph-loop.md +18 -18
  116. package/templates/commands/review.md +106 -106
  117. package/templates/commands/utils/test-web-config.md +160 -160
  118. package/templates/commands/utils/test-web.md +151 -151
  119. package/templates/commands/validate.md +233 -233
  120. package/templates/commands/workflow.md +193 -193
  121. package/templates/gitflow/config.json +138 -138
  122. package/templates/hooks/ef-migration-check.md +139 -139
  123. package/templates/hooks/hooks.json +25 -25
  124. package/templates/hooks/stop-hook.sh +177 -177
  125. package/templates/skills/ai-prompt/SKILL.md +778 -778
  126. package/templates/skills/application/SKILL.md +563 -563
  127. package/templates/skills/application/templates-backend.md +450 -450
  128. package/templates/skills/application/templates-frontend.md +531 -531
  129. package/templates/skills/application/templates-i18n.md +520 -520
  130. package/templates/skills/application/templates-seed.md +647 -647
  131. package/templates/skills/business-analyse/SKILL.md +191 -191
  132. package/templates/skills/business-analyse/questionnaire.md +283 -283
  133. package/templates/skills/business-analyse/templates-frd.md +477 -477
  134. package/templates/skills/business-analyse/templates-react.md +580 -580
  135. package/templates/skills/controller/SKILL.md +240 -240
  136. package/templates/skills/controller/postman-templates.md +614 -614
  137. package/templates/skills/controller/templates.md +1468 -1468
  138. package/templates/skills/documentation/SKILL.md +133 -133
  139. package/templates/skills/documentation/templates.md +476 -476
  140. package/templates/skills/feature-full/SKILL.md +838 -838
  141. package/templates/skills/notification/SKILL.md +555 -555
  142. package/templates/skills/ui-components/SKILL.md +870 -870
  143. package/templates/skills/workflow/SKILL.md +582 -582
  144. package/templates/test-web/api-health.json +38 -38
  145. package/templates/test-web/minimal.json +19 -19
  146. package/templates/test-web/npm-package.json +46 -46
  147. 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` |