@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.
- package/.documentation/agents.html +912 -0
- package/.documentation/apex.html +1014 -0
- package/.documentation/business-analyse.html +1074 -0
- package/.documentation/commands.html +676 -0
- package/.documentation/css/styles.css +2030 -0
- package/.documentation/efcore.html +2501 -0
- package/.documentation/gitflow.html +2053 -0
- package/.documentation/hooks.html +409 -0
- package/.documentation/index.html +319 -0
- package/.documentation/installation.html +458 -0
- package/.documentation/js/app.js +794 -0
- package/.documentation/test-web.html +509 -0
- package/README.md +90 -0
- package/config/default-config.json +86 -0
- package/config/settings.json +53 -0
- package/config/settings.local.example.json +16 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +38198 -0
- package/dist/index.js.map +1 -0
- package/package.json +86 -0
- package/templates/agents/action.md +36 -0
- package/templates/agents/efcore/conflicts.md +57 -0
- package/templates/agents/efcore/db-deploy.md +51 -0
- package/templates/agents/efcore/db-reset.md +59 -0
- package/templates/agents/efcore/db-seed.md +56 -0
- package/templates/agents/efcore/db-status.md +43 -0
- package/templates/agents/efcore/migration.md +85 -0
- package/templates/agents/efcore/rebase-snapshot.md +62 -0
- package/templates/agents/efcore/scan.md +60 -0
- package/templates/agents/efcore/squash.md +67 -0
- package/templates/agents/explore-codebase.md +65 -0
- package/templates/agents/explore-docs.md +97 -0
- package/templates/agents/fix-grammar.md +49 -0
- package/templates/agents/gitflow/abort.md +45 -0
- package/templates/agents/gitflow/cleanup.md +85 -0
- package/templates/agents/gitflow/commit.md +40 -0
- package/templates/agents/gitflow/exec.md +48 -0
- package/templates/agents/gitflow/finish.md +92 -0
- package/templates/agents/gitflow/init.md +139 -0
- package/templates/agents/gitflow/merge.md +62 -0
- package/templates/agents/gitflow/plan.md +42 -0
- package/templates/agents/gitflow/pr.md +78 -0
- package/templates/agents/gitflow/review.md +49 -0
- package/templates/agents/gitflow/start.md +61 -0
- package/templates/agents/gitflow/status.md +32 -0
- package/templates/agents/snipper.md +36 -0
- package/templates/agents/websearch.md +46 -0
- package/templates/commands/_resources/formatting-guide.md +124 -0
- package/templates/commands/ai-prompt.md +315 -0
- package/templates/commands/apex/1-analyze.md +100 -0
- package/templates/commands/apex/2-plan.md +145 -0
- package/templates/commands/apex/3-execute.md +171 -0
- package/templates/commands/apex/4-examine.md +116 -0
- package/templates/commands/apex/5-tasks.md +209 -0
- package/templates/commands/apex.md +76 -0
- package/templates/commands/application/create.md +362 -0
- package/templates/commands/application/templates-backend.md +463 -0
- package/templates/commands/application/templates-frontend.md +517 -0
- package/templates/commands/application/templates-i18n.md +478 -0
- package/templates/commands/application/templates-seed.md +362 -0
- package/templates/commands/application.md +303 -0
- package/templates/commands/business-analyse/1-init.md +269 -0
- package/templates/commands/business-analyse/2-discover.md +520 -0
- package/templates/commands/business-analyse/3-analyse.md +408 -0
- package/templates/commands/business-analyse/4-specify.md +598 -0
- package/templates/commands/business-analyse/5-validate.md +326 -0
- package/templates/commands/business-analyse/6-handoff.md +746 -0
- package/templates/commands/business-analyse/7-doc-html.md +602 -0
- package/templates/commands/business-analyse/bug.md +325 -0
- package/templates/commands/business-analyse/change-request.md +368 -0
- package/templates/commands/business-analyse/hotfix.md +200 -0
- package/templates/commands/business-analyse.md +559 -0
- package/templates/commands/controller/create.md +216 -0
- package/templates/commands/controller/postman-templates.md +528 -0
- package/templates/commands/controller/templates.md +600 -0
- package/templates/commands/controller.md +278 -0
- package/templates/commands/debug.md +95 -0
- package/templates/commands/documentation/module.md +202 -0
- package/templates/commands/documentation/templates.md +432 -0
- package/templates/commands/documentation.md +190 -0
- package/templates/commands/efcore/_env-check.md +153 -0
- package/templates/commands/efcore/conflicts.md +269 -0
- package/templates/commands/efcore/db-deploy.md +193 -0
- package/templates/commands/efcore/db-reset.md +426 -0
- package/templates/commands/efcore/db-seed.md +326 -0
- package/templates/commands/efcore/db-status.md +214 -0
- package/templates/commands/efcore/migration.md +388 -0
- package/templates/commands/efcore/rebase-snapshot.md +264 -0
- package/templates/commands/efcore/scan.md +202 -0
- package/templates/commands/efcore/squash.md +298 -0
- package/templates/commands/efcore.md +176 -0
- package/templates/commands/epct.md +69 -0
- package/templates/commands/explain.md +186 -0
- package/templates/commands/explore.md +45 -0
- package/templates/commands/feature-full.md +267 -0
- package/templates/commands/gitflow/1-init.md +1038 -0
- package/templates/commands/gitflow/10-start.md +768 -0
- package/templates/commands/gitflow/11-finish.md +323 -0
- package/templates/commands/gitflow/12-cleanup.md +276 -0
- package/templates/commands/gitflow/13-sync.md +216 -0
- package/templates/commands/gitflow/14-rebase.md +251 -0
- package/templates/commands/gitflow/2-status.md +167 -0
- package/templates/commands/gitflow/3-commit.md +194 -0
- package/templates/commands/gitflow/4-plan.md +145 -0
- package/templates/commands/gitflow/5-exec.md +147 -0
- package/templates/commands/gitflow/6-abort.md +344 -0
- package/templates/commands/gitflow/7-pull-request.md +226 -0
- package/templates/commands/gitflow/8-review.md +176 -0
- package/templates/commands/gitflow/9-merge.md +224 -0
- package/templates/commands/gitflow.md +128 -0
- package/templates/commands/implement.md +663 -0
- package/templates/commands/notification.md +129 -0
- package/templates/commands/oneshot.md +57 -0
- package/templates/commands/quick-search.md +72 -0
- package/templates/commands/review.md +106 -0
- package/templates/commands/utils/test-web-config.md +160 -0
- package/templates/commands/utils/test-web.md +151 -0
- package/templates/commands/workflow.md +193 -0
- package/templates/gitflow/config.json +138 -0
- package/templates/hooks/ef-migration-check.md +139 -0
- package/templates/hooks/hooks.json +15 -0
- package/templates/skills/ai-prompt/SKILL.md +778 -0
- package/templates/skills/application/SKILL.md +563 -0
- package/templates/skills/application/templates-backend.md +450 -0
- package/templates/skills/application/templates-frontend.md +531 -0
- package/templates/skills/application/templates-i18n.md +520 -0
- package/templates/skills/application/templates-seed.md +647 -0
- package/templates/skills/business-analyse/SKILL.md +191 -0
- package/templates/skills/business-analyse/questionnaire.md +283 -0
- package/templates/skills/business-analyse/templates-frd.md +477 -0
- package/templates/skills/business-analyse/templates-react.md +580 -0
- package/templates/skills/controller/SKILL.md +240 -0
- package/templates/skills/controller/postman-templates.md +614 -0
- package/templates/skills/controller/templates.md +1468 -0
- package/templates/skills/documentation/SKILL.md +133 -0
- package/templates/skills/documentation/templates.md +476 -0
- package/templates/skills/feature-full/SKILL.md +838 -0
- package/templates/skills/notification/SKILL.md +555 -0
- package/templates/skills/ui-components/SKILL.md +870 -0
- package/templates/skills/workflow/SKILL.md +582 -0
- package/templates/test-web/api-health.json +38 -0
- package/templates/test-web/minimal.json +19 -0
- package/templates/test-web/npm-package.json +46 -0
- package/templates/test-web/seo-check.json +54 -0
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Phase 6 - Abort operations, rollback, and branch abandonment
|
|
3
|
+
agent: gitflow-abort
|
|
4
|
+
model: sonnet
|
|
5
|
+
args: [option]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Phase 6: ABORT - Rollback & Recovery
|
|
9
|
+
|
|
10
|
+
Tu es expert GitFlow et EF Core. Annule proprement et restaure l'etat precedent.
|
|
11
|
+
|
|
12
|
+
**Argument:** `$ARGUMENTS` = option (--git, --checkpoint, --full, --migrations, --database, --branch)
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Workflow
|
|
17
|
+
|
|
18
|
+
### 1. Analyser etat
|
|
19
|
+
|
|
20
|
+
**Operations Git en cours:**
|
|
21
|
+
- Rebase en cours? (`.git/rebase-merge/`)
|
|
22
|
+
- Merge en cours? (`.git/MERGE_HEAD`)
|
|
23
|
+
- Cherry-pick en cours? (`.git/CHERRY_PICK_HEAD`)
|
|
24
|
+
- Conflits? (`git ls-files -u`)
|
|
25
|
+
|
|
26
|
+
**Type de branche (pour --branch):**
|
|
27
|
+
- `feature/*` → abandon feature
|
|
28
|
+
- `release/*` → abandon release
|
|
29
|
+
- `hotfix/*` → abandon hotfix
|
|
30
|
+
- autre → erreur
|
|
31
|
+
|
|
32
|
+
**Ressources disponibles:**
|
|
33
|
+
- Plans actifs dans `.claude/gitflow/plans/`
|
|
34
|
+
- Checkpoints dans `.claude/gitflow/logs/checkpoint_*.json`
|
|
35
|
+
- Backups migrations dans `.claude/gitflow/logs/migrations_backup_*/`
|
|
36
|
+
|
|
37
|
+
### 2. Proposer options (si aucun argument)
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
OPTIONS DE ROLLBACK
|
|
41
|
+
═══════════════════════════════════════════════════════════════
|
|
42
|
+
[1] --git Annuler operation Git (rebase/merge --abort)
|
|
43
|
+
[2] --checkpoint Rollback au checkpoint (reset + restore)
|
|
44
|
+
[3] --full Rollback complet plan (reset hard au debut)
|
|
45
|
+
[4] --migrations Rollback migrations seules (restore fichiers)
|
|
46
|
+
[5] --database Rollback database (ef database update)
|
|
47
|
+
[6] --branch Abandonner branche courante (feature/release/hotfix)
|
|
48
|
+
[0] Annuler
|
|
49
|
+
═══════════════════════════════════════════════════════════════
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Option: --git
|
|
55
|
+
|
|
56
|
+
Annuler operation Git en cours:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
git rebase --abort # si rebase
|
|
60
|
+
git merge --abort # si merge
|
|
61
|
+
git cherry-pick --abort # si cherry-pick
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Option: --checkpoint
|
|
67
|
+
|
|
68
|
+
Rollback au dernier checkpoint:
|
|
69
|
+
|
|
70
|
+
1. Lire commit du checkpoint
|
|
71
|
+
2. Abort operations en cours
|
|
72
|
+
3. Reset hard au commit
|
|
73
|
+
4. Restore migrations si backup existe
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Option: --full
|
|
78
|
+
|
|
79
|
+
Rollback complet au debut du plan:
|
|
80
|
+
|
|
81
|
+
1. Lire commit initial du plan
|
|
82
|
+
2. Reset hard
|
|
83
|
+
3. Marquer plan comme ABORTED
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Option: --migrations
|
|
88
|
+
|
|
89
|
+
Restaurer fichiers migration depuis backup:
|
|
90
|
+
|
|
91
|
+
1. Copier depuis `.claude/gitflow/logs/migrations_backup_*/`
|
|
92
|
+
2. Rebuild pour verifier
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Option: --database {migration}
|
|
97
|
+
|
|
98
|
+
Rollback database:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
dotnet ef database update {migration}
|
|
102
|
+
# ou reset complet:
|
|
103
|
+
dotnet ef database update 0
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Option: --branch (ABANDON)
|
|
109
|
+
|
|
110
|
+
Abandonner la branche courante sans merger. Detection automatique du type.
|
|
111
|
+
|
|
112
|
+
### Workflow abandon
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
1. Detecter type de branche (feature/release/hotfix)
|
|
116
|
+
2. Demander confirmation avec resume
|
|
117
|
+
3. Salvage si applicable (release → corrections vers develop)
|
|
118
|
+
4. Logger l'abandon
|
|
119
|
+
5. Supprimer la branche
|
|
120
|
+
6. Nettoyer worktree si applicable
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Feature → Abandon
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
⚠ ABANDON FEATURE
|
|
127
|
+
|
|
128
|
+
Branche: feature/{name}
|
|
129
|
+
Commits: {n} depuis develop
|
|
130
|
+
|
|
131
|
+
Actions:
|
|
132
|
+
✗ NE PAS merger sur develop
|
|
133
|
+
✓ Archiver (optionnel avec --archive)
|
|
134
|
+
✓ Supprimer la branche
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Options specifiques:**
|
|
138
|
+
- `--archive` : Creer tag `archive/feature/{name}` avant suppression
|
|
139
|
+
- `--keep-local` : Garder branche locale
|
|
140
|
+
|
|
141
|
+
### Release → Abandon
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
⚠ ABANDON RELEASE
|
|
145
|
+
|
|
146
|
+
Branche: release/{version}
|
|
147
|
+
Commits: {n} depuis develop
|
|
148
|
+
- {n} corrections (bug fixes)
|
|
149
|
+
- {n} autres commits
|
|
150
|
+
|
|
151
|
+
Actions:
|
|
152
|
+
✗ NE PAS merger sur main
|
|
153
|
+
✗ NE PAS creer de tag
|
|
154
|
+
✓ Salvage corrections vers develop (sauf si --no-salvage)
|
|
155
|
+
✓ Supprimer la branche
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**Options specifiques:**
|
|
159
|
+
- `--salvage` (defaut) : Merge corrections vers develop
|
|
160
|
+
- `--no-salvage` : Ne pas recuperer les corrections
|
|
161
|
+
- `--keep-local` : Garder branche locale
|
|
162
|
+
|
|
163
|
+
**Salvage workflow:**
|
|
164
|
+
```bash
|
|
165
|
+
git checkout develop
|
|
166
|
+
git merge --no-ff release/{version} -m "chore: salvage fixes from abandoned release/{version}"
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Hotfix → Abandon
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
⚠ ABANDON HOTFIX
|
|
173
|
+
|
|
174
|
+
Branche: hotfix/{name}
|
|
175
|
+
Commits: {n} depuis main
|
|
176
|
+
|
|
177
|
+
Actions:
|
|
178
|
+
✗ NE PAS merger sur main
|
|
179
|
+
✗ NE PAS merger sur develop
|
|
180
|
+
✓ Supprimer la branche
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**Options specifiques:**
|
|
184
|
+
- `--salvage-to-develop` : Merger vers develop (rare)
|
|
185
|
+
- `--keep-local` : Garder branche locale
|
|
186
|
+
|
|
187
|
+
### Log abandon
|
|
188
|
+
|
|
189
|
+
Creer `.claude/gitflow/logs/abort_{timestamp}.json`:
|
|
190
|
+
|
|
191
|
+
```json
|
|
192
|
+
{
|
|
193
|
+
"timestamp": "{ISO_DATE}",
|
|
194
|
+
"type": "branch-abort",
|
|
195
|
+
"branch_type": "feature|release|hotfix",
|
|
196
|
+
"branch_name": "{full_name}",
|
|
197
|
+
"reason": "{raison si fournie}",
|
|
198
|
+
"commits_count": {n},
|
|
199
|
+
"salvaged": true|false,
|
|
200
|
+
"salvage_commit": "{hash}"|null,
|
|
201
|
+
"archived": true|false,
|
|
202
|
+
"archive_tag": "{tag}"|null
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Nettoyage worktree (cleanup automatique)
|
|
207
|
+
|
|
208
|
+
Si la branche utilise un worktree, un cleanup cible est effectue automatiquement:
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
# Fonction de cleanup cible (appelee automatiquement)
|
|
212
|
+
cleanup_worktree_for_branch() {
|
|
213
|
+
BRANCH=$1
|
|
214
|
+
WORKTREE_BASE="../worktrees"
|
|
215
|
+
|
|
216
|
+
# Determiner le chemin selon le type
|
|
217
|
+
if [[ $BRANCH == feature/* ]]; then
|
|
218
|
+
NAME=${BRANCH#feature/}
|
|
219
|
+
WORKTREE_PATH="$WORKTREE_BASE/features/$NAME"
|
|
220
|
+
elif [[ $BRANCH == release/* ]]; then
|
|
221
|
+
VERSION=${BRANCH#release/}
|
|
222
|
+
WORKTREE_PATH="$WORKTREE_BASE/releases/$VERSION"
|
|
223
|
+
elif [[ $BRANCH == hotfix/* ]]; then
|
|
224
|
+
NAME=${BRANCH#hotfix/}
|
|
225
|
+
WORKTREE_PATH="$WORKTREE_BASE/hotfixes/$NAME"
|
|
226
|
+
fi
|
|
227
|
+
|
|
228
|
+
# Supprimer si existe
|
|
229
|
+
if [ -d "$WORKTREE_PATH" ]; then
|
|
230
|
+
git worktree remove "$WORKTREE_PATH" --force 2>/dev/null || true
|
|
231
|
+
rm -rf "$WORKTREE_PATH" 2>/dev/null || true
|
|
232
|
+
git worktree prune
|
|
233
|
+
echo "✓ Worktree nettoye: $WORKTREE_PATH"
|
|
234
|
+
fi
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
# Appel automatique apres abandon
|
|
238
|
+
cleanup_worktree_for_branch "$BRANCH"
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
**Note:** Pour un audit complet de tous les worktrees, utilisez:
|
|
242
|
+
|
|
243
|
+
```
|
|
244
|
+
/gitflow:12-cleanup
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Modes complets
|
|
250
|
+
|
|
251
|
+
| Commande | Action |
|
|
252
|
+
|----------|--------|
|
|
253
|
+
| `/gitflow:6-abort` | Analyse + propose options |
|
|
254
|
+
| `/gitflow:6-abort --git` | Annule operation Git |
|
|
255
|
+
| `/gitflow:6-abort --checkpoint` | Rollback dernier checkpoint |
|
|
256
|
+
| `/gitflow:6-abort --full` | Rollback complet |
|
|
257
|
+
| `/gitflow:6-abort --migrations` | Restore migrations |
|
|
258
|
+
| `/gitflow:6-abort --database {mig}` | Rollback DB |
|
|
259
|
+
| `/gitflow:6-abort --branch` | Abandonner branche courante |
|
|
260
|
+
| `/gitflow:6-abort --branch --archive` | Abandon + archive (feature) |
|
|
261
|
+
| `/gitflow:6-abort --branch --no-salvage` | Abandon sans salvage (release) |
|
|
262
|
+
| `/gitflow:6-abort --branch --reason "..."` | Abandon avec raison |
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## Scenarios courants
|
|
267
|
+
|
|
268
|
+
**Conflit rebase:**
|
|
269
|
+
```
|
|
270
|
+
/gitflow:6-abort --git
|
|
271
|
+
git fetch origin develop
|
|
272
|
+
/gitflow:4-plan
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
**Migration corrompue:**
|
|
276
|
+
```
|
|
277
|
+
/gitflow:6-abort --checkpoint
|
|
278
|
+
/gitflow:3-commit
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**Abandonner feature en cours:**
|
|
282
|
+
```
|
|
283
|
+
/gitflow:6-abort --branch
|
|
284
|
+
# ou avec archive
|
|
285
|
+
/gitflow:6-abort --branch --archive
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
**Abandonner release echouee:**
|
|
289
|
+
```
|
|
290
|
+
/gitflow:6-abort --branch
|
|
291
|
+
# Corrections seront salvagees vers develop
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
**Abandonner hotfix invalide:**
|
|
295
|
+
```
|
|
296
|
+
/gitflow:6-abort --branch
|
|
297
|
+
# Rien n'est merge, branche supprimee
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## Resume post-abandon
|
|
303
|
+
|
|
304
|
+
```
|
|
305
|
+
═══════════════════════════════════════════════════════════════
|
|
306
|
+
BRANCHE ABANDONNEE
|
|
307
|
+
═══════════════════════════════════════════════════════════════
|
|
308
|
+
|
|
309
|
+
Type: {feature|release|hotfix}
|
|
310
|
+
Branche: {nom complet}
|
|
311
|
+
Commits: {n} (perdus|salvages|archives)
|
|
312
|
+
Raison: {raison ou "non specifiee"}
|
|
313
|
+
|
|
314
|
+
Actions effectuees:
|
|
315
|
+
{✓|✗} Salvage vers develop
|
|
316
|
+
{✓|✗} Archive creee
|
|
317
|
+
✓ Branche supprimee
|
|
318
|
+
✓ Worktree nettoye (cleanup automatique)
|
|
319
|
+
|
|
320
|
+
═══════════════════════════════════════════════════════════════
|
|
321
|
+
|
|
322
|
+
Prochaines etapes:
|
|
323
|
+
- Documenter la raison si besoin
|
|
324
|
+
- Creer issue pour suivi si applicable
|
|
325
|
+
- Demarrer nouvelle branche: /gitflow:10-start {type} {nom}
|
|
326
|
+
- Audit complet worktrees: /gitflow:12-cleanup (optionnel)
|
|
327
|
+
|
|
328
|
+
═══════════════════════════════════════════════════════════════
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## Recuperation si erreur
|
|
334
|
+
|
|
335
|
+
**Feature archivee:**
|
|
336
|
+
```bash
|
|
337
|
+
git checkout -b feature/{name} archive/feature/{name}
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
**Branche non archivee (reflog):**
|
|
341
|
+
```bash
|
|
342
|
+
git reflog
|
|
343
|
+
git checkout -b {branch} {commit-hash}
|
|
344
|
+
```
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Phase 7 - Create Pull Request with auto-generated description and checks
|
|
3
|
+
agent: gitflow-pr
|
|
4
|
+
model: haiku
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Phase 7: PULL-REQUEST - Creation PR avec checks
|
|
8
|
+
|
|
9
|
+
Tu es expert GitFlow. Cree une Pull Request avec validation complete.
|
|
10
|
+
|
|
11
|
+
**Argument:** `$ARGUMENTS` = branche cible (optionnel, auto-detecte selon type de branche)
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Pre-checks obligatoires
|
|
16
|
+
|
|
17
|
+
### 1. Validation branche et detection cible
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Branche courante
|
|
21
|
+
CURRENT=$(git rev-parse --abbrev-ref HEAD)
|
|
22
|
+
|
|
23
|
+
# Verifier que ce n'est pas main/develop
|
|
24
|
+
if [[ "$CURRENT" == "main" || "$CURRENT" == "develop" ]]; then
|
|
25
|
+
echo "ERREUR: Impossible de creer PR depuis $CURRENT"
|
|
26
|
+
exit 1
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
# ============================================
|
|
30
|
+
# DETECTION AUTOMATIQUE DE LA CIBLE
|
|
31
|
+
# ============================================
|
|
32
|
+
# GitFlow standard:
|
|
33
|
+
# - feature/* → develop
|
|
34
|
+
# - release/* → main (puis merge back to develop apres)
|
|
35
|
+
# - hotfix/* → main (puis merge back to develop apres)
|
|
36
|
+
# ============================================
|
|
37
|
+
|
|
38
|
+
if [[ -n "$ARGUMENTS" && "$ARGUMENTS" != "--"* ]]; then
|
|
39
|
+
# Cible explicite fournie par l'utilisateur
|
|
40
|
+
TARGET="$ARGUMENTS"
|
|
41
|
+
else
|
|
42
|
+
# Detection automatique selon le type de branche
|
|
43
|
+
if [[ "$CURRENT" == hotfix/* ]]; then
|
|
44
|
+
TARGET="main"
|
|
45
|
+
echo "Hotfix detecte → PR vers main (GitFlow standard)"
|
|
46
|
+
elif [[ "$CURRENT" == release/* ]]; then
|
|
47
|
+
TARGET="main"
|
|
48
|
+
echo "Release detectee → PR vers main (GitFlow standard)"
|
|
49
|
+
else
|
|
50
|
+
TARGET="develop"
|
|
51
|
+
echo "Feature/autre → PR vers develop"
|
|
52
|
+
fi
|
|
53
|
+
fi
|
|
54
|
+
|
|
55
|
+
echo "Cible: $TARGET"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Cibles par defaut (GitFlow standard):**
|
|
59
|
+
|
|
60
|
+
| Type branche | Cible PR | Raison |
|
|
61
|
+
|--------------|----------|--------|
|
|
62
|
+
| `feature/*` | `develop` | Features integrees sur develop |
|
|
63
|
+
| `release/*` | `main` | Releases deployees sur main |
|
|
64
|
+
| `hotfix/*` | `main` | Hotfixes appliques sur main d'abord |
|
|
65
|
+
|
|
66
|
+
### 2. Synchronisation
|
|
67
|
+
|
|
68
|
+
| Check | Commande | Action si echec |
|
|
69
|
+
|-------|----------|-----------------|
|
|
70
|
+
| Fetch | `git fetch origin` | - |
|
|
71
|
+
| A jour vs target | `git rev-list --count HEAD..origin/{target}` | `git rebase origin/{target}` |
|
|
72
|
+
| Pas de conflits | `git merge-tree` | Resoudre conflits d'abord |
|
|
73
|
+
|
|
74
|
+
### 3. Qualite code
|
|
75
|
+
|
|
76
|
+
| Check | Commande | Bloquant |
|
|
77
|
+
|-------|----------|----------|
|
|
78
|
+
| Build | `dotnet build` | OUI |
|
|
79
|
+
| Tests | `dotnet test` | OUI |
|
|
80
|
+
| Format | `dotnet format --verify-no-changes` | NON (warning) |
|
|
81
|
+
|
|
82
|
+
### 4. EF Core (si applicable)
|
|
83
|
+
|
|
84
|
+
| Check | Validation |
|
|
85
|
+
|-------|------------|
|
|
86
|
+
| Migrations completes | 3 fichiers (Migration + Designer + ModelSnapshot) |
|
|
87
|
+
| Build avec migrations | `dotnet ef migrations script --idempotent` |
|
|
88
|
+
| Pas de pending | Toutes migrations commitees |
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Generation PR
|
|
93
|
+
|
|
94
|
+
### Titre automatique
|
|
95
|
+
|
|
96
|
+
| Type branche | Format titre |
|
|
97
|
+
|--------------|--------------|
|
|
98
|
+
| `feature/*` | `feat: {description from branch name}` |
|
|
99
|
+
| `hotfix/*` | `fix: {description from branch name}` |
|
|
100
|
+
| `release/*` | `release: v{version}` |
|
|
101
|
+
| Autre | `{branch name}` |
|
|
102
|
+
|
|
103
|
+
**Extraction description:**
|
|
104
|
+
```
|
|
105
|
+
feature/add-user-authentication → "add user authentication"
|
|
106
|
+
hotfix/fix-login-bug → "fix login bug"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Description automatique
|
|
110
|
+
|
|
111
|
+
```markdown
|
|
112
|
+
## Summary
|
|
113
|
+
|
|
114
|
+
{Liste des commits depuis divergence avec develop}
|
|
115
|
+
|
|
116
|
+
## Changes
|
|
117
|
+
|
|
118
|
+
- {Fichiers modifies groupes par type}
|
|
119
|
+
|
|
120
|
+
## Checklist
|
|
121
|
+
|
|
122
|
+
- [ ] Tests ajoutés/mis à jour
|
|
123
|
+
- [ ] Documentation mise à jour
|
|
124
|
+
- [ ] Breaking changes documentés
|
|
125
|
+
- [ ] Migration EF Core testée (si applicable)
|
|
126
|
+
|
|
127
|
+
## EF Core Migrations
|
|
128
|
+
|
|
129
|
+
{Liste des migrations incluses, ou "Aucune migration"}
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
🤖 Generated with GitFlow
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Labels automatiques
|
|
136
|
+
|
|
137
|
+
| Condition | Label |
|
|
138
|
+
|-----------|-------|
|
|
139
|
+
| `feature/*` | `enhancement` |
|
|
140
|
+
| `hotfix/*` | `bug` |
|
|
141
|
+
| `release/*` | `release` |
|
|
142
|
+
| Contient migrations | `database` |
|
|
143
|
+
| Tests modifies | `tests` |
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Execution
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
gh pr create \
|
|
151
|
+
--base {target} \
|
|
152
|
+
--title "{titre}" \
|
|
153
|
+
--body "{description}" \
|
|
154
|
+
--label "{labels}" \
|
|
155
|
+
--assignee "@me"
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Options supplementaires
|
|
159
|
+
|
|
160
|
+
| Option | Condition | Action |
|
|
161
|
+
|--------|-----------|--------|
|
|
162
|
+
| `--draft` | Si WIP dans titre | Creer comme draft |
|
|
163
|
+
| `--reviewer` | Si configure dans config.json | Ajouter reviewers |
|
|
164
|
+
| `--milestone` | Si release | Associer milestone |
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Post-creation
|
|
169
|
+
|
|
170
|
+
1. Afficher URL de la PR
|
|
171
|
+
2. Afficher checklist restante
|
|
172
|
+
3. Suggerer `/gitflow:8-review` pour auto-review
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Resume
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
PULL REQUEST CREEE
|
|
180
|
+
────────────────────────────────
|
|
181
|
+
PR: #{number}
|
|
182
|
+
Titre: {titre}
|
|
183
|
+
Base: {target} ← {current}
|
|
184
|
+
URL: {url}
|
|
185
|
+
|
|
186
|
+
Checks:
|
|
187
|
+
Build: ✓/✗
|
|
188
|
+
Tests: ✓/✗
|
|
189
|
+
EF Core: ✓/✗/N/A
|
|
190
|
+
Conflicts: ✓/✗
|
|
191
|
+
|
|
192
|
+
Labels: {labels}
|
|
193
|
+
────────────────────────────────
|
|
194
|
+
Prochain: /gitflow:8-review #{number}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Erreurs courantes
|
|
200
|
+
|
|
201
|
+
| Erreur | Solution |
|
|
202
|
+
|--------|----------|
|
|
203
|
+
| "No commits between" | Verifier que branche a des commits |
|
|
204
|
+
| "Merge conflict" | `git rebase origin/{target}` + resoudre |
|
|
205
|
+
| "Build failed" | Corriger erreurs avant PR |
|
|
206
|
+
| "PR already exists" | Afficher URL existante |
|
|
207
|
+
|
|
208
|
+
## Modes
|
|
209
|
+
|
|
210
|
+
| Commande | Action |
|
|
211
|
+
|----------|--------|
|
|
212
|
+
| `/gitflow:7-pull-request` | PR vers cible auto-detectee (feature→develop, hotfix/release→main) |
|
|
213
|
+
| `/gitflow:7-pull-request develop` | PR vers develop (override) |
|
|
214
|
+
| `/gitflow:7-pull-request main` | PR vers main (override) |
|
|
215
|
+
| `/gitflow:7-pull-request --draft` | PR en draft |
|
|
216
|
+
| `/gitflow:7-pull-request --dry-run` | Simulation |
|
|
217
|
+
|
|
218
|
+
**Detection automatique de la cible:**
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
feature/* → develop (integration continue)
|
|
222
|
+
release/* → main (deploiement production)
|
|
223
|
+
hotfix/* → main (correction urgente production)
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
> **Note:** Le merge back vers develop est gere par `/gitflow:11-finish` apres le merge de la PR.
|