@atlashub/smartstack-cli 1.1.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.
Files changed (144) hide show
  1. package/.documentation/agents.html +912 -0
  2. package/.documentation/apex.html +1014 -0
  3. package/.documentation/business-analyse.html +1074 -0
  4. package/.documentation/commands.html +676 -0
  5. package/.documentation/css/styles.css +2030 -0
  6. package/.documentation/efcore.html +2501 -0
  7. package/.documentation/gitflow.html +2053 -0
  8. package/.documentation/hooks.html +409 -0
  9. package/.documentation/index.html +319 -0
  10. package/.documentation/installation.html +458 -0
  11. package/.documentation/js/app.js +794 -0
  12. package/.documentation/test-web.html +509 -0
  13. package/README.md +90 -0
  14. package/config/default-config.json +86 -0
  15. package/config/settings.json +53 -0
  16. package/config/settings.local.example.json +16 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.js +38198 -0
  19. package/dist/index.js.map +1 -0
  20. package/package.json +86 -0
  21. package/templates/agents/action.md +36 -0
  22. package/templates/agents/efcore/conflicts.md +57 -0
  23. package/templates/agents/efcore/db-deploy.md +51 -0
  24. package/templates/agents/efcore/db-reset.md +59 -0
  25. package/templates/agents/efcore/db-seed.md +56 -0
  26. package/templates/agents/efcore/db-status.md +43 -0
  27. package/templates/agents/efcore/migration.md +85 -0
  28. package/templates/agents/efcore/rebase-snapshot.md +62 -0
  29. package/templates/agents/efcore/scan.md +60 -0
  30. package/templates/agents/efcore/squash.md +67 -0
  31. package/templates/agents/explore-codebase.md +65 -0
  32. package/templates/agents/explore-docs.md +97 -0
  33. package/templates/agents/fix-grammar.md +49 -0
  34. package/templates/agents/gitflow/abort.md +45 -0
  35. package/templates/agents/gitflow/cleanup.md +85 -0
  36. package/templates/agents/gitflow/commit.md +40 -0
  37. package/templates/agents/gitflow/exec.md +48 -0
  38. package/templates/agents/gitflow/finish.md +92 -0
  39. package/templates/agents/gitflow/init.md +139 -0
  40. package/templates/agents/gitflow/merge.md +62 -0
  41. package/templates/agents/gitflow/plan.md +42 -0
  42. package/templates/agents/gitflow/pr.md +78 -0
  43. package/templates/agents/gitflow/review.md +49 -0
  44. package/templates/agents/gitflow/start.md +61 -0
  45. package/templates/agents/gitflow/status.md +32 -0
  46. package/templates/agents/snipper.md +36 -0
  47. package/templates/agents/websearch.md +46 -0
  48. package/templates/commands/_resources/formatting-guide.md +124 -0
  49. package/templates/commands/ai-prompt.md +315 -0
  50. package/templates/commands/apex/1-analyze.md +100 -0
  51. package/templates/commands/apex/2-plan.md +145 -0
  52. package/templates/commands/apex/3-execute.md +171 -0
  53. package/templates/commands/apex/4-examine.md +116 -0
  54. package/templates/commands/apex/5-tasks.md +209 -0
  55. package/templates/commands/apex.md +76 -0
  56. package/templates/commands/application/create.md +362 -0
  57. package/templates/commands/application/templates-backend.md +463 -0
  58. package/templates/commands/application/templates-frontend.md +517 -0
  59. package/templates/commands/application/templates-i18n.md +478 -0
  60. package/templates/commands/application/templates-seed.md +362 -0
  61. package/templates/commands/application.md +303 -0
  62. package/templates/commands/business-analyse/1-init.md +269 -0
  63. package/templates/commands/business-analyse/2-discover.md +520 -0
  64. package/templates/commands/business-analyse/3-analyse.md +408 -0
  65. package/templates/commands/business-analyse/4-specify.md +598 -0
  66. package/templates/commands/business-analyse/5-validate.md +326 -0
  67. package/templates/commands/business-analyse/6-handoff.md +746 -0
  68. package/templates/commands/business-analyse/7-doc-html.md +602 -0
  69. package/templates/commands/business-analyse/bug.md +325 -0
  70. package/templates/commands/business-analyse/change-request.md +368 -0
  71. package/templates/commands/business-analyse/hotfix.md +200 -0
  72. package/templates/commands/business-analyse.md +559 -0
  73. package/templates/commands/controller/create.md +216 -0
  74. package/templates/commands/controller/postman-templates.md +528 -0
  75. package/templates/commands/controller/templates.md +600 -0
  76. package/templates/commands/controller.md +278 -0
  77. package/templates/commands/debug.md +95 -0
  78. package/templates/commands/documentation/module.md +202 -0
  79. package/templates/commands/documentation/templates.md +432 -0
  80. package/templates/commands/documentation.md +190 -0
  81. package/templates/commands/efcore/_env-check.md +153 -0
  82. package/templates/commands/efcore/conflicts.md +269 -0
  83. package/templates/commands/efcore/db-deploy.md +193 -0
  84. package/templates/commands/efcore/db-reset.md +426 -0
  85. package/templates/commands/efcore/db-seed.md +326 -0
  86. package/templates/commands/efcore/db-status.md +214 -0
  87. package/templates/commands/efcore/migration.md +388 -0
  88. package/templates/commands/efcore/rebase-snapshot.md +264 -0
  89. package/templates/commands/efcore/scan.md +202 -0
  90. package/templates/commands/efcore/squash.md +298 -0
  91. package/templates/commands/efcore.md +176 -0
  92. package/templates/commands/epct.md +69 -0
  93. package/templates/commands/explain.md +186 -0
  94. package/templates/commands/explore.md +45 -0
  95. package/templates/commands/feature-full.md +267 -0
  96. package/templates/commands/gitflow/1-init.md +1038 -0
  97. package/templates/commands/gitflow/10-start.md +768 -0
  98. package/templates/commands/gitflow/11-finish.md +323 -0
  99. package/templates/commands/gitflow/12-cleanup.md +276 -0
  100. package/templates/commands/gitflow/13-sync.md +216 -0
  101. package/templates/commands/gitflow/14-rebase.md +251 -0
  102. package/templates/commands/gitflow/2-status.md +167 -0
  103. package/templates/commands/gitflow/3-commit.md +194 -0
  104. package/templates/commands/gitflow/4-plan.md +145 -0
  105. package/templates/commands/gitflow/5-exec.md +147 -0
  106. package/templates/commands/gitflow/6-abort.md +344 -0
  107. package/templates/commands/gitflow/7-pull-request.md +226 -0
  108. package/templates/commands/gitflow/8-review.md +176 -0
  109. package/templates/commands/gitflow/9-merge.md +224 -0
  110. package/templates/commands/gitflow.md +128 -0
  111. package/templates/commands/implement.md +663 -0
  112. package/templates/commands/notification.md +129 -0
  113. package/templates/commands/oneshot.md +57 -0
  114. package/templates/commands/quick-search.md +72 -0
  115. package/templates/commands/review.md +106 -0
  116. package/templates/commands/utils/test-web-config.md +160 -0
  117. package/templates/commands/utils/test-web.md +151 -0
  118. package/templates/commands/workflow.md +193 -0
  119. package/templates/gitflow/config.json +138 -0
  120. package/templates/hooks/ef-migration-check.md +139 -0
  121. package/templates/hooks/hooks.json +15 -0
  122. package/templates/skills/ai-prompt/SKILL.md +778 -0
  123. package/templates/skills/application/SKILL.md +563 -0
  124. package/templates/skills/application/templates-backend.md +450 -0
  125. package/templates/skills/application/templates-frontend.md +531 -0
  126. package/templates/skills/application/templates-i18n.md +520 -0
  127. package/templates/skills/application/templates-seed.md +647 -0
  128. package/templates/skills/business-analyse/SKILL.md +191 -0
  129. package/templates/skills/business-analyse/questionnaire.md +283 -0
  130. package/templates/skills/business-analyse/templates-frd.md +477 -0
  131. package/templates/skills/business-analyse/templates-react.md +580 -0
  132. package/templates/skills/controller/SKILL.md +240 -0
  133. package/templates/skills/controller/postman-templates.md +614 -0
  134. package/templates/skills/controller/templates.md +1468 -0
  135. package/templates/skills/documentation/SKILL.md +133 -0
  136. package/templates/skills/documentation/templates.md +476 -0
  137. package/templates/skills/feature-full/SKILL.md +838 -0
  138. package/templates/skills/notification/SKILL.md +555 -0
  139. package/templates/skills/ui-components/SKILL.md +870 -0
  140. package/templates/skills/workflow/SKILL.md +582 -0
  141. package/templates/test-web/api-health.json +38 -0
  142. package/templates/test-web/minimal.json +19 -0
  143. package/templates/test-web/npm-package.json +46 -0
  144. package/templates/test-web/seo-check.json +54 -0
@@ -0,0 +1,216 @@
1
+ ---
2
+ description: Phase 13 - Sync local branch with remote (push/pull)
3
+ agent: gitflow-status
4
+ model: haiku
5
+ ---
6
+
7
+ # Phase 13: SYNC - Synchronize with Remote
8
+
9
+ Synchronise la branche locale avec sa branche remote tracking.
10
+
11
+ ---
12
+
13
+ ## STEP 1: Fetch et analyse
14
+
15
+ ```bash
16
+ # Fetch pour avoir les infos a jour
17
+ git fetch --quiet 2>/dev/null
18
+
19
+ BRANCH=$(git branch --show-current)
20
+ UPSTREAM=$(git rev-parse --abbrev-ref @{upstream} 2>/dev/null)
21
+
22
+ echo "Branche locale: $BRANCH"
23
+ echo "Remote tracking: $UPSTREAM"
24
+ ```
25
+
26
+ ---
27
+
28
+ ## STEP 2: Determiner l'action necessaire
29
+
30
+ ```bash
31
+ if [ -z "$UPSTREAM" ]; then
32
+ # Pas de remote tracking - proposer push initial
33
+ ACTION="PUSH_NEW"
34
+ echo "Status: NO REMOTE - branche non pushee"
35
+ else
36
+ LOCAL=$(git rev-parse @)
37
+ REMOTE=$(git rev-parse @{upstream})
38
+ BASE=$(git merge-base @ @{upstream})
39
+
40
+ if [ "$LOCAL" = "$REMOTE" ]; then
41
+ ACTION="UP_TO_DATE"
42
+ echo "Status: UP-TO-DATE - rien a faire"
43
+ elif [ "$LOCAL" = "$BASE" ]; then
44
+ BEHIND=$(git rev-list --count @..@{upstream})
45
+ ACTION="PULL"
46
+ echo "Status: BEHIND $BEHIND commits - pull needed"
47
+ elif [ "$REMOTE" = "$BASE" ]; then
48
+ AHEAD=$(git rev-list --count @{upstream}..@)
49
+ ACTION="PUSH"
50
+ echo "Status: AHEAD $AHEAD commits - push needed"
51
+ else
52
+ AHEAD=$(git rev-list --count @{upstream}..@)
53
+ BEHIND=$(git rev-list --count @..@{upstream})
54
+ ACTION="DIVERGED"
55
+ echo "Status: DIVERGED +$AHEAD/-$BEHIND - pull --rebase needed"
56
+ fi
57
+ fi
58
+ ```
59
+
60
+ ---
61
+
62
+ ## STEP 3: Executer l'action
63
+
64
+ ### Si UP_TO_DATE
65
+
66
+ ```
67
+ ================================================================================
68
+ ALREADY SYNCHRONIZED
69
+ ================================================================================
70
+
71
+ Branche: {branch}
72
+ Remote: {upstream}
73
+ Status: UP-TO-DATE
74
+
75
+ Rien a faire.
76
+
77
+ ================================================================================
78
+ ```
79
+
80
+ ### Si PUSH_NEW (pas de remote)
81
+
82
+ ```javascript
83
+ AskUserQuestion({
84
+ questions: [{
85
+ question: "Push this branch to remote for the first time?",
86
+ header: "Push new",
87
+ options: [
88
+ { label: "Yes, push", description: "git push -u origin {branch}" },
89
+ { label: "No, cancel", description: "Keep local only" }
90
+ ],
91
+ multiSelect: false
92
+ }]
93
+ })
94
+ ```
95
+
96
+ **Si Yes:**
97
+ ```bash
98
+ git push -u origin "$BRANCH"
99
+ echo "Branche pushee et tracking configure"
100
+ ```
101
+
102
+ ### Si PULL
103
+
104
+ ```bash
105
+ echo "Pulling $BEHIND commits from remote..."
106
+ git pull --ff-only
107
+
108
+ if [ $? -ne 0 ]; then
109
+ echo "WARNING: Fast-forward not possible, trying rebase..."
110
+ git pull --rebase
111
+ fi
112
+ ```
113
+
114
+ ### Si PUSH
115
+
116
+ ```bash
117
+ echo "Pushing $AHEAD commits to remote..."
118
+ git push
119
+ ```
120
+
121
+ ### Si DIVERGED
122
+
123
+ ```javascript
124
+ AskUserQuestion({
125
+ questions: [{
126
+ question: "Branch has diverged from remote. How to resolve?",
127
+ header: "Diverged",
128
+ options: [
129
+ { label: "Pull --rebase (recommended)", description: "Rebase local commits on top of remote" },
130
+ { label: "Force push", description: "Overwrite remote with local (DANGEROUS)" },
131
+ { label: "Cancel", description: "Review manually first" }
132
+ ],
133
+ multiSelect: false
134
+ }]
135
+ })
136
+ ```
137
+
138
+ **Si Pull --rebase:**
139
+ ```bash
140
+ git pull --rebase
141
+ if [ $? -ne 0 ]; then
142
+ echo "CONFLITS DETECTES - resolvez puis: git rebase --continue"
143
+ exit 1
144
+ fi
145
+ git push
146
+ ```
147
+
148
+ **Si Force push:**
149
+ ```bash
150
+ # Double confirmation pour force push
151
+ echo "WARNING: Force push va ecraser les commits distants!"
152
+ ```
153
+
154
+ ```javascript
155
+ AskUserQuestion({
156
+ questions: [{
157
+ question: "CONFIRM: Force push will overwrite remote commits. Are you sure?",
158
+ header: "Force push",
159
+ options: [
160
+ { label: "Yes, force push", description: "I understand the risk" },
161
+ { label: "No, cancel", description: "Abort operation" }
162
+ ],
163
+ multiSelect: false
164
+ }]
165
+ })
166
+ ```
167
+
168
+ ```bash
169
+ git push --force-with-lease
170
+ ```
171
+
172
+ ---
173
+
174
+ ## STEP 4: Verification
175
+
176
+ ```bash
177
+ echo ""
178
+ echo "Verification post-sync..."
179
+
180
+ LOCAL=$(git rev-parse @)
181
+ REMOTE=$(git rev-parse @{upstream} 2>/dev/null)
182
+
183
+ if [ "$LOCAL" = "$REMOTE" ]; then
184
+ echo "SYNCHRONIZED"
185
+ else
186
+ echo "WARNING: Still not synchronized"
187
+ git status
188
+ fi
189
+ ```
190
+
191
+ ---
192
+
193
+ ## Summary
194
+
195
+ ```
196
+ ================================================================================
197
+ SYNC COMPLETE
198
+ ================================================================================
199
+
200
+ Branche: {branch}
201
+ Remote: origin/{branch}
202
+ Action: {PULL|PUSH|PUSH_NEW|REBASE}
203
+ Status: SYNCHRONIZED
204
+
205
+ ================================================================================
206
+ ```
207
+
208
+ ---
209
+
210
+ ## Codes sortie
211
+
212
+ | Code | Signification |
213
+ |------|---------------|
214
+ | 0 | Sync reussie |
215
+ | 1 | Conflits (rebase en cours) |
216
+ | 2 | Erreur reseau ou permission |
@@ -0,0 +1,251 @@
1
+ ---
2
+ description: Phase 14 - Rebase current branch on develop (or specified base)
3
+ agent: gitflow-status
4
+ model: haiku
5
+ argument-hint: "[base-branch]"
6
+ ---
7
+
8
+ # Phase 14: REBASE - Rebase on Base Branch
9
+
10
+ Rebase la branche courante sur develop (ou une autre branche specifiee).
11
+
12
+ **Usage:**
13
+ - `/gitflow:14-rebase` - Rebase sur develop (default)
14
+ - `/gitflow:14-rebase main` - Rebase sur main
15
+ - `/gitflow:14-rebase feature/other` - Rebase sur une autre feature
16
+
17
+ ---
18
+
19
+ ## STEP 1: Verification pre-rebase
20
+
21
+ ```bash
22
+ BRANCH=$(git branch --show-current)
23
+ BASE_BRANCH="${1:-develop}"
24
+
25
+ echo "Branche courante: $BRANCH"
26
+ echo "Branche cible: $BASE_BRANCH"
27
+
28
+ # Verifier working directory clean
29
+ if [ -n "$(git status --porcelain)" ]; then
30
+ echo "ERROR: Working directory not clean"
31
+ git status --short
32
+ exit 1
33
+ fi
34
+
35
+ # Verifier que la branche cible existe
36
+ if ! git rev-parse --verify "$BASE_BRANCH" >/dev/null 2>&1; then
37
+ echo "ERROR: Branch '$BASE_BRANCH' does not exist"
38
+ exit 1
39
+ fi
40
+ ```
41
+
42
+ ---
43
+
44
+ ## STEP 2: Fetch et analyse divergence
45
+
46
+ ```bash
47
+ git fetch --quiet 2>/dev/null
48
+
49
+ # Calculer divergence
50
+ AHEAD=$(git rev-list --count "$BASE_BRANCH".."$BRANCH")
51
+ BEHIND=$(git rev-list --count "$BRANCH".."$BASE_BRANCH")
52
+
53
+ echo ""
54
+ echo "Divergence vs $BASE_BRANCH:"
55
+ echo " Commits ahead: $AHEAD"
56
+ echo " Commits behind: $BEHIND"
57
+
58
+ if [ "$BEHIND" -eq 0 ]; then
59
+ echo ""
60
+ echo "Already up-to-date with $BASE_BRANCH"
61
+ fi
62
+ ```
63
+
64
+ ---
65
+
66
+ ## STEP 3: Confirmation
67
+
68
+ ```javascript
69
+ AskUserQuestion({
70
+ questions: [{
71
+ question: "Rebase {branch} on {base_branch}? ({ahead} commits will be replayed)",
72
+ header: "Rebase",
73
+ options: [
74
+ { label: "Yes, rebase", description: "Replay commits on top of {base_branch}" },
75
+ { label: "No, cancel", description: "Keep current state" }
76
+ ],
77
+ multiSelect: false
78
+ }]
79
+ })
80
+ ```
81
+
82
+ **Si No -> Stop**
83
+
84
+ ---
85
+
86
+ ## STEP 4: Check EF Core migrations (si applicable)
87
+
88
+ ```bash
89
+ # Detecter si des migrations sont impliquees
90
+ MIGRATIONS_IN_BRANCH=$(git diff "$BASE_BRANCH"..."$BRANCH" --name-only | grep -E "Migrations/.*\.cs$" | grep -v Designer | wc -l)
91
+ SNAPSHOT_MODIFIED=$(git diff "$BASE_BRANCH"..."$BRANCH" --name-only | grep "ModelSnapshot.cs" | wc -l)
92
+
93
+ if [ "$MIGRATIONS_IN_BRANCH" -gt 0 ] || [ "$SNAPSHOT_MODIFIED" -gt 0 ]; then
94
+ echo ""
95
+ echo "WARNING: EF Core migrations detected in this branch!"
96
+ echo " Migrations: $MIGRATIONS_IN_BRANCH"
97
+ echo " ModelSnapshot modified: $SNAPSHOT_MODIFIED"
98
+ fi
99
+ ```
100
+
101
+ Si migrations detectees:
102
+
103
+ ```javascript
104
+ AskUserQuestion({
105
+ questions: [{
106
+ question: "EF Core migrations detected. Rebase may cause ModelSnapshot conflicts. Continue?",
107
+ header: "EF Core",
108
+ options: [
109
+ { label: "Continue rebase", description: "I'll handle migration conflicts manually" },
110
+ { label: "Use /efcore:rebase-snapshot", description: "Specialized command for EF Core rebase" },
111
+ { label: "Cancel", description: "Review migrations first" }
112
+ ],
113
+ multiSelect: false
114
+ }]
115
+ })
116
+ ```
117
+
118
+ **Si "Use /efcore:rebase-snapshot" -> Redirect:**
119
+ ```
120
+ Utilisez la commande specialisee:
121
+
122
+ /efcore:rebase-snapshot
123
+
124
+ Cette commande gere automatiquement:
125
+ - Regeneration du ModelSnapshot
126
+ - Resolution des conflits de migration
127
+ - Validation post-rebase
128
+ ```
129
+
130
+ ---
131
+
132
+ ## STEP 5: Execute rebase
133
+
134
+ ```bash
135
+ echo "Starting rebase..."
136
+
137
+ git rebase "$BASE_BRANCH"
138
+
139
+ if [ $? -ne 0 ]; then
140
+ echo ""
141
+ echo "================================================================================
142
+ REBASE CONFLICTS DETECTED
143
+ ================================================================================"
144
+ echo ""
145
+ echo "Des conflits ont ete detectes. Pour les resoudre:"
146
+ echo ""
147
+ echo " 1. Editez les fichiers en conflit"
148
+ echo " 2. git add <fichiers resolus>"
149
+ echo " 3. git rebase --continue"
150
+ echo ""
151
+ echo "Pour annuler le rebase:"
152
+ echo " git rebase --abort"
153
+ echo " ou /gitflow:6-abort"
154
+ echo ""
155
+ exit 1
156
+ fi
157
+ ```
158
+
159
+ ---
160
+
161
+ ## STEP 6: Push avec force-with-lease
162
+
163
+ ```bash
164
+ UPSTREAM=$(git rev-parse --abbrev-ref @{upstream} 2>/dev/null)
165
+
166
+ if [ -n "$UPSTREAM" ]; then
167
+ echo ""
168
+ echo "La branche a ete rebasee. Un force push est necessaire."
169
+ fi
170
+ ```
171
+
172
+ ```javascript
173
+ AskUserQuestion({
174
+ questions: [{
175
+ question: "Push rebased branch to remote? (requires force push)",
176
+ header: "Push",
177
+ options: [
178
+ { label: "Yes, force push", description: "git push --force-with-lease (safe)" },
179
+ { label: "No, later", description: "Push manually when ready" }
180
+ ],
181
+ multiSelect: false
182
+ }]
183
+ })
184
+ ```
185
+
186
+ **Si Yes:**
187
+ ```bash
188
+ git push --force-with-lease
189
+
190
+ if [ $? -eq 0 ]; then
191
+ echo "Force push successful"
192
+ else
193
+ echo "ERROR: Force push failed (remote may have new commits)"
194
+ echo "Retry with: git push --force-with-lease"
195
+ fi
196
+ ```
197
+
198
+ ---
199
+
200
+ ## STEP 7: Summary
201
+
202
+ ```
203
+ ================================================================================
204
+ REBASE COMPLETE
205
+ ================================================================================
206
+
207
+ Branche: {branch}
208
+ Rebase sur: {base_branch}
209
+ Commits: {ahead} replayed
210
+ Push: {done|pending}
211
+
212
+ DIVERGENCE APRES REBASE:
213
+ vs {base_branch}: +{ahead}/-0
214
+
215
+ {Si EF Core:}
216
+ NEXT: Verifiez les migrations avec /efcore:db-status
217
+
218
+ ================================================================================
219
+ Actions: /gitflow:2-status | /gitflow:13-sync | /gitflow:3-commit
220
+ ================================================================================
221
+ ```
222
+
223
+ ---
224
+
225
+ ## Codes sortie
226
+
227
+ | Code | Signification |
228
+ |------|---------------|
229
+ | 0 | Rebase reussi |
230
+ | 1 | Conflits (rebase en cours) |
231
+ | 2 | Working directory dirty |
232
+ | 3 | Branche cible inexistante |
233
+
234
+ ---
235
+
236
+ ## Recovery si conflits
237
+
238
+ Si le rebase echoue avec des conflits:
239
+
240
+ ```bash
241
+ # Option 1: Resoudre manuellement
242
+ # Editez les fichiers, puis:
243
+ git add .
244
+ git rebase --continue
245
+
246
+ # Option 2: Annuler completement
247
+ git rebase --abort
248
+
249
+ # Option 3: Via Claude Code
250
+ /gitflow:6-abort
251
+ ```
@@ -0,0 +1,167 @@
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 .NET.
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
+ ### Version
55
+ Read from configured source in [.claude/gitflow/config.json](.claude/gitflow/config.json):
56
+ - `versioning.source` → type (csproj, Directory.Build.props, AssemblyInfo, VERSION, git-tag)
57
+ - `versioning.sourceFile` → file path
58
+ - Read current version from THAT file (not from config.json)
59
+
60
+ ### EF Core
61
+ - Lister les migrations (total et pending)
62
+ - Lister les DbContext detectes
63
+
64
+ ### EF Core - Vue globale (toutes branches)
65
+ Si `--all-branches` ou si plusieurs branches GitFlow actives:
66
+ ```bash
67
+ # Scanner les branches actives
68
+ FEATURES=$(git branch -r | grep 'feature/' | wc -l)
69
+ RELEASES=$(git branch -r | grep 'release/' | wc -l)
70
+ HOTFIXES=$(git branch -r | grep 'hotfix/' | wc -l)
71
+
72
+ # Pour chaque branche, detecter migrations ajoutees
73
+ for BRANCH in $(git branch -r | grep -E 'feature/|release/|hotfix/'); do
74
+ MIGRATIONS=$(git diff origin/develop..$BRANCH --name-only | grep -E "Migrations/.*\.cs$" | grep -v Designer | grep -v ModelSnapshot)
75
+ CONFLICT=$(git diff origin/develop..$BRANCH --name-only | grep "ModelSnapshot" | wc -l)
76
+ done
77
+ ```
78
+
79
+ ### Plans GitFlow
80
+ - Plans actifs (non termines)
81
+ - Plans termines recemment (7 jours)
82
+
83
+ ### Operations en cours
84
+ - Rebase, merge, cherry-pick en cours?
85
+ - Conflits detectes?
86
+
87
+ ### Risques
88
+ - Divergence > 5 commits vs develop
89
+ - Migrations non commitees
90
+ - ModelSnapshot modifie non commite
91
+
92
+ ---
93
+
94
+ ## Affichage
95
+
96
+ ```
97
+ ================================================================================
98
+ GITFLOW STATUS
99
+ ================================================================================
100
+
101
+ BRANCHE: {branch} ({type}) | {clean|dirty}
102
+ VERSION: {version} ({source})
103
+
104
+ REMOTE SYNC
105
+ vs origin/{branch}: {UP-TO-DATE|AHEAD N|BEHIND N|DIVERGED|NO REMOTE}
106
+ {Action: /gitflow:13-sync}
107
+
108
+ SYNC vs BASE BRANCHES
109
+ vs develop: +{ahead}/-{behind} | vs main: +{ahead}/-{behind} | Tag: {tag}
110
+
111
+ EF CORE (branche courante)
112
+ Migrations: {total} total, {pending} pending
113
+ [Pending] {liste}
114
+
115
+ --------------------------------------------------------------------------------
116
+ BRANCHES ACTIVES ({features} features, {releases} releases, {hotfixes} hotfixes)
117
+ --------------------------------------------------------------------------------
118
+ {Si branches actives avec migrations:}
119
+ feature/add-users +1 migration (AddUsersTable) Conflit: NON
120
+ feature/add-orders +1 migration (AddOrdersTable) Conflit: NON
121
+ feature/add-products +2 migrations (AddProducts, AddFK) Conflit: OUI
122
+
123
+ ORDRE DE MERGE RECOMMANDE:
124
+ 1. feature/add-users (independant)
125
+ 2. feature/add-orders (independant)
126
+ 3. feature/add-products (conflit ModelSnapshot - rebase requis)
127
+ --------------------------------------------------------------------------------
128
+
129
+ PLANS: {n} active | OPERATIONS: {none|rebase|merge} | RISKS: {liste}
130
+
131
+ ================================================================================
132
+ Actions: /gitflow:13-sync | /gitflow:14-rebase | /gitflow:3-commit | /gitflow:4-plan
133
+ ================================================================================
134
+ ```
135
+
136
+ ---
137
+
138
+ ## Modes
139
+
140
+ | Mode | Output |
141
+ |------|--------|
142
+ | Normal | Affichage complet |
143
+ | `--short` | `[branch] status \| vX.Y.Z \| +X/-Y \| N pending` |
144
+ | `--json` | JSON structure |
145
+
146
+ ## Codes sortie
147
+
148
+ | Code | Signification |
149
+ |------|---------------|
150
+ | 0 | OK |
151
+ | 1 | Warnings (pending, divergence) |
152
+ | 2 | Problemes (conflits, operation en cours) |
153
+ | 3 | Erreur (pas repo, no config) |
154
+
155
+ ## Actions suggerees
156
+
157
+ | Etat | Commande Claude Code |
158
+ |------|----------------------|
159
+ | AHEAD N (push needed) | `/gitflow:13-sync` |
160
+ | BEHIND N (pull needed) | `/gitflow:13-sync` |
161
+ | DIVERGED (pull --rebase needed) | `/gitflow:13-sync` |
162
+ | NO REMOTE (not pushed yet) | `/gitflow:13-sync` |
163
+ | Divergence > 5 vs develop | `/gitflow:14-rebase` |
164
+ | Pending migrations | `/efcore:db-deploy` |
165
+ | Dirty workdir | `/gitflow:3-commit` |
166
+ | Operation en cours | `/gitflow:6-abort` |
167
+ | No config | `/gitflow:1-init` |