@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,2053 @@
1
+ <!DOCTYPE html>
2
+ <html lang="fr">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>GitFlow Workflow - Claude Tools</title>
7
+ <link rel="stylesheet" href="css/styles.css">
8
+ </head>
9
+ <body class="lang-fr">
10
+ <div class="app-container">
11
+ <!-- Global Header (single unified element) -->
12
+ <header class="global-header">
13
+ <div class="logo">CT</div>
14
+ <span class="site-title">Claude Tools</span>
15
+ <span class="version-badge">v1.8.7</span>
16
+ <div class="header-divider"></div>
17
+ <span class="page-title">GitFlow Workflow</span>
18
+ <nav class="breadcrumb">
19
+ <a href="index.html">
20
+ <span data-lang="fr">Accueil</span>
21
+ <span data-lang="en">Home</span>
22
+ </a>
23
+ <span class="breadcrumb-separator">&#8250;</span>
24
+ <span data-lang="fr">Workflows</span>
25
+ <span data-lang="en">Workflows</span>
26
+ <span class="breadcrumb-separator">&#8250;</span>
27
+ <span class="breadcrumb-current">GitFlow</span>
28
+ </nav>
29
+ <!-- Language Select -->
30
+ <select class="lang-select" id="lang-select" onchange="setLanguage(this.value); localStorage.setItem('doc-language', this.value);">
31
+ <option value="fr">🇫🇷 FR</option>
32
+ <option value="en">🇬🇧 EN</option>
33
+ </select>
34
+ <!-- Search -->
35
+ <div class="header-search">
36
+ <div class="search-input-wrapper">
37
+ <span class="search-icon">&#128269;</span>
38
+ <input type="text" id="search-input" class="search-input" placeholder="Rechercher..." data-placeholder-fr="Rechercher..." data-placeholder-en="Search..." autocomplete="off">
39
+ <span class="search-shortcut">Ctrl+K</span>
40
+ </div>
41
+ <div id="search-results" class="search-results"></div>
42
+ </div>
43
+ </header>
44
+
45
+ <!-- App Body -->
46
+ <div class="app-body">
47
+ <!-- Sidebar -->
48
+ <aside class="sidebar">
49
+ <button class="sidebar-toggle" title="Toggle sidebar">
50
+ <span class="toggle-icon-collapse">&#171;</span>
51
+ <span class="toggle-icon-expand">&#187;</span>
52
+ </button>
53
+
54
+ <nav class="sidebar-nav">
55
+ <div class="nav-section">
56
+ <div class="nav-section-title">
57
+ <span data-lang="fr">Demarrage</span>
58
+ <span data-lang="en">Getting Started</span>
59
+ </div>
60
+ <a href="index.html" class="nav-item">
61
+ <span class="icon">&#127968;</span>
62
+ <span class="nav-text" data-lang="fr">Accueil</span>
63
+ <span class="nav-text" data-lang="en">Home</span>
64
+ </a>
65
+ <a href="installation.html" class="nav-item">
66
+ <span class="icon">&#128230;</span>
67
+ <span class="nav-text">Installation</span>
68
+ </a>
69
+ </div>
70
+
71
+ <div class="nav-section">
72
+ <div class="nav-section-title">Workflows</div>
73
+ <div class="nav-item-with-toc">
74
+ <a href="gitflow.html" class="active">
75
+ <span class="icon">&#128256;</span>
76
+ <span class="nav-text">GitFlow</span>
77
+ <button class="toc-toggle">&#9654;</button>
78
+ </a>
79
+ <nav class="sidebar-toc">
80
+ <a href="#introduction" class="sidebar-toc-link">Introduction</a>
81
+ <a href="#concepts" class="sidebar-toc-link">
82
+ <span data-lang="fr">Concepts cles</span>
83
+ <span data-lang="en">Key Concepts</span>
84
+ </a>
85
+ <a href="#branches" class="sidebar-toc-link">
86
+ <span data-lang="fr">Types de branches</span>
87
+ <span data-lang="en">Branch Types</span>
88
+ </a>
89
+ <a href="#architecture" class="sidebar-toc-link">
90
+ <span data-lang="fr">Architecture</span>
91
+ <span data-lang="en">Architecture</span>
92
+ </a>
93
+ <a href="#best-practices" class="sidebar-toc-link">
94
+ <span data-lang="fr">Bonnes pratiques</span>
95
+ <span data-lang="en">Best Practices</span>
96
+ </a>
97
+ <a href="#commands" class="sidebar-toc-link">
98
+ <span data-lang="fr">Commandes</span>
99
+ <span data-lang="en">Commands</span>
100
+ </a>
101
+ <a href="#workflow-example" class="sidebar-toc-link">
102
+ <span data-lang="fr">Exemple complet</span>
103
+ <span data-lang="en">Complete Example</span>
104
+ </a>
105
+ </nav>
106
+ </div>
107
+ <a href="efcore.html" class="nav-item">
108
+ <span class="icon">&#128452;</span>
109
+ <span class="nav-text">EF Core</span>
110
+ </a>
111
+ <a href="apex.html" class="nav-item">
112
+ <span class="icon">&#127919;</span>
113
+ <span class="nav-text">APEX</span>
114
+ </a>
115
+ <a href="business-analyse.html" class="nav-item">
116
+ <span class="icon">&#128202;</span>
117
+ <span class="nav-text">Business Analyse</span>
118
+ </a>
119
+ </div>
120
+
121
+ <div class="nav-section">
122
+ <div class="nav-section-title">
123
+ <span data-lang="fr">Outils</span>
124
+ <span data-lang="en">Tools</span>
125
+ </div>
126
+ <a href="agents.html" class="nav-item">
127
+ <span class="icon">&#129302;</span>
128
+ <span class="nav-text">Agents</span>
129
+ </a>
130
+ <a href="commands.html" class="nav-item">
131
+ <span class="icon">&#9889;</span>
132
+ <span class="nav-text" data-lang="fr">Commandes</span>
133
+ <span class="nav-text" data-lang="en">Commands</span>
134
+ </a>
135
+ <a href="hooks.html" class="nav-item">
136
+ <span class="icon">&#128279;</span>
137
+ <span class="nav-text">Hooks</span>
138
+ </a>
139
+ <a href="test-web.html" class="nav-item">
140
+ <span class="icon">&#127760;</span>
141
+ <span class="nav-text">Test Web</span>
142
+ </a>
143
+ </div>
144
+ </nav>
145
+
146
+ </aside>
147
+
148
+ <!-- Main Content -->
149
+ <main class="main-content">
150
+ <div class="content-full">
151
+ <!-- Introduction -->
152
+ <section id="introduction">
153
+ <h2>Introduction</h2>
154
+ <p data-lang="fr">
155
+ GitFlow est un modele de branchement Git qui definit une structure stricte pour gerer le developpement, les releases et les corrections de bugs. Claude Tools automatise entierement ce workflow avec des commandes intelligentes qui gerent le versioning, les migrations EF Core et les conflits.
156
+ </p>
157
+ <p data-lang="en">
158
+ GitFlow is a Git branching model that defines a strict structure for managing development, releases and bug fixes. Claude Tools fully automates this workflow with intelligent commands that handle versioning, EF Core migrations and conflicts.
159
+ </p>
160
+
161
+ <div class="alert alert-info">
162
+ <span class="alert-icon">&#128161;</span>
163
+ <div class="alert-content">
164
+ <h5 data-lang="fr">Pourquoi GitFlow ?</h5>
165
+ <h5 data-lang="en">Why GitFlow?</h5>
166
+ <p data-lang="fr">
167
+ GitFlow est ideal pour les projets avec des cycles de release planifies, une equipe de plusieurs developpeurs, et un besoin de maintenir plusieurs versions en production.
168
+ </p>
169
+ <p data-lang="en">
170
+ GitFlow is ideal for projects with planned release cycles, a team of multiple developers, and a need to maintain multiple versions in production.
171
+ </p>
172
+ </div>
173
+ </div>
174
+ </section>
175
+
176
+ <!-- Key Concepts -->
177
+ <section id="concepts">
178
+ <h2>
179
+ <span data-lang="fr">Concepts cles</span>
180
+ <span data-lang="en">Key Concepts</span>
181
+ </h2>
182
+
183
+ <h3>SemVer (Semantic Versioning)</h3>
184
+ <p data-lang="fr">
185
+ Le versioning semantique utilise le format <code>MAJOR.MINOR.PATCH</code> :
186
+ </p>
187
+ <p data-lang="en">
188
+ Semantic versioning uses the format <code>MAJOR.MINOR.PATCH</code>:
189
+ </p>
190
+
191
+ <div class="table-container">
192
+ <table>
193
+ <thead>
194
+ <tr>
195
+ <th>Type</th>
196
+ <th>
197
+ <span data-lang="fr">Quand incrementer</span>
198
+ <span data-lang="en">When to increment</span>
199
+ </th>
200
+ <th>
201
+ <span data-lang="fr">Exemple</span>
202
+ <span data-lang="en">Example</span>
203
+ </th>
204
+ </tr>
205
+ </thead>
206
+ <tbody>
207
+ <tr>
208
+ <td><strong>MAJOR</strong></td>
209
+ <td>
210
+ <span data-lang="fr">Breaking changes, API incompatible</span>
211
+ <span data-lang="en">Breaking changes, incompatible API</span>
212
+ </td>
213
+ <td>1.0.0 &#8594; 2.0.0</td>
214
+ </tr>
215
+ <tr>
216
+ <td><strong>MINOR</strong></td>
217
+ <td>
218
+ <span data-lang="fr">Nouvelles fonctionnalites retrocompatibles</span>
219
+ <span data-lang="en">New backwards-compatible features</span>
220
+ </td>
221
+ <td>1.0.0 &#8594; 1.1.0</td>
222
+ </tr>
223
+ <tr>
224
+ <td><strong>PATCH</strong></td>
225
+ <td>
226
+ <span data-lang="fr">Corrections de bugs retrocompatibles</span>
227
+ <span data-lang="en">Backwards-compatible bug fixes</span>
228
+ </td>
229
+ <td>1.0.0 &#8594; 1.0.1</td>
230
+ </tr>
231
+ </tbody>
232
+ </table>
233
+ </div>
234
+
235
+ <h3 data-lang="fr">Strategie de merge</h3>
236
+ <h3 data-lang="en">Merge Strategy</h3>
237
+ <p data-lang="fr">
238
+ Claude Tools utilise <code>--no-ff</code> (no fast-forward) par defaut pour preserver l'historique des branches :
239
+ </p>
240
+ <p data-lang="en">
241
+ Claude Tools uses <code>--no-ff</code> (no fast-forward) by default to preserve branch history:
242
+ </p>
243
+
244
+ <div class="code-block">
245
+ <button class="copy-btn">Copy</button>
246
+ <pre><code># Avec --no-ff : cree un commit de merge
247
+ * Merge branch 'feature/login' into develop
248
+ |\
249
+ | * Add login form
250
+ | * Add authentication logic
251
+ |/
252
+ * Previous commit
253
+
254
+ # Sans --no-ff : historique lineaire (perd le contexte)
255
+ * Add authentication logic
256
+ * Add login form
257
+ * Previous commit</code></pre>
258
+ </div>
259
+ </section>
260
+
261
+ <!-- Branch Types -->
262
+ <section id="branches">
263
+ <h2>
264
+ <span data-lang="fr">Types de branches</span>
265
+ <span data-lang="en">Branch Types</span>
266
+ </h2>
267
+
268
+ <div class="card-grid">
269
+ <div class="card">
270
+ <div class="card-header">
271
+ <div class="card-icon" style="background: var(--primary);">M</div>
272
+ <div>
273
+ <div class="card-title">main / master</div>
274
+ <div class="card-subtitle">Production</div>
275
+ </div>
276
+ </div>
277
+ <div class="card-body">
278
+ <p data-lang="fr">
279
+ Branche de production. Chaque commit represente une version deployee. Protegee contre les push directs.
280
+ </p>
281
+ <p data-lang="en">
282
+ Production branch. Each commit represents a deployed version. Protected from direct pushes.
283
+ </p>
284
+ <span class="tag tag-workflow">Protected</span>
285
+ </div>
286
+ </div>
287
+
288
+ <div class="card">
289
+ <div class="card-header">
290
+ <div class="card-icon" style="background: var(--secondary);">D</div>
291
+ <div>
292
+ <div class="card-title">develop</div>
293
+ <div class="card-subtitle">Integration</div>
294
+ </div>
295
+ </div>
296
+ <div class="card-body">
297
+ <p data-lang="fr">
298
+ Branche d'integration. Recoit les features terminees. Base pour les nouvelles features et releases.
299
+ </p>
300
+ <p data-lang="en">
301
+ Integration branch. Receives completed features. Base for new features and releases.
302
+ </p>
303
+ <span class="tag tag-workflow">Protected</span>
304
+ </div>
305
+ </div>
306
+
307
+ <div class="card">
308
+ <div class="card-header">
309
+ <div class="card-icon" style="background: var(--success);">F</div>
310
+ <div>
311
+ <div class="card-title">feature/*</div>
312
+ <div class="card-subtitle" data-lang="fr">Nouvelles fonctionnalites</div>
313
+ <div class="card-subtitle" data-lang="en">New features</div>
314
+ </div>
315
+ </div>
316
+ <div class="card-body">
317
+ <p data-lang="fr">
318
+ Branches de developpement. Creees depuis develop, mergees dans develop. Increment MINOR automatique.
319
+ </p>
320
+ <p data-lang="en">
321
+ Development branches. Created from develop, merged into develop. Automatic MINOR increment.
322
+ </p>
323
+ <span class="tag tag-command">+minor</span>
324
+ </div>
325
+ </div>
326
+
327
+ <div class="card">
328
+ <div class="card-header">
329
+ <div class="card-icon" style="background: var(--warning);">R</div>
330
+ <div>
331
+ <div class="card-title">release/*</div>
332
+ <div class="card-subtitle" data-lang="fr">Preparation de release</div>
333
+ <div class="card-subtitle" data-lang="en">Release preparation</div>
334
+ </div>
335
+ </div>
336
+ <div class="card-body">
337
+ <p data-lang="fr">
338
+ Preparation d'une nouvelle version. Creee depuis develop, mergee dans main ET develop. Tag cree automatiquement.
339
+ </p>
340
+ <p data-lang="en">
341
+ Preparation of a new version. Created from develop, merged into main AND develop. Tag created automatically.
342
+ </p>
343
+ <span class="tag tag-workflow">+tag</span>
344
+ </div>
345
+ </div>
346
+
347
+ <div class="card">
348
+ <div class="card-header">
349
+ <div class="card-icon" style="background: var(--danger);">H</div>
350
+ <div>
351
+ <div class="card-title">hotfix/*</div>
352
+ <div class="card-subtitle" data-lang="fr">Corrections urgentes</div>
353
+ <div class="card-subtitle" data-lang="en">Urgent fixes</div>
354
+ </div>
355
+ </div>
356
+ <div class="card-body">
357
+ <p data-lang="fr">
358
+ Corrections critiques en production. Creee depuis main, mergee dans main ET develop. Increment PATCH automatique.
359
+ </p>
360
+ <p data-lang="en">
361
+ Critical production fixes. Created from main, merged into main AND develop. Automatic PATCH increment.
362
+ </p>
363
+ <span class="tag tag-command">+patch</span>
364
+ </div>
365
+ </div>
366
+ </div>
367
+
368
+ <!-- GitFlow Diagram -->
369
+ <h3 data-lang="fr">Schema du workflow</h3>
370
+ <h3 data-lang="en">Workflow Diagram</h3>
371
+
372
+ <div class="svg-diagram" id="gitflow-diagram">
373
+ <!-- Tooltip for interactive elements -->
374
+ <div class="diagram-tooltip" id="diagram-tooltip">
375
+ <div class="tooltip-title"></div>
376
+ <div class="tooltip-desc"></div>
377
+ <div class="tooltip-cmd"></div>
378
+ </div>
379
+
380
+ <svg viewBox="0 0 900 320" xmlns="http://www.w3.org/2000/svg" style="font-family: 'Inter', system-ui, sans-serif;">
381
+ <!-- Definitions -->
382
+ <defs>
383
+ <marker id="arrow" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto" markerUnits="strokeWidth">
384
+ <path d="M0,0 L0,6 L9,3 z" fill="#94a3b8"/>
385
+ </marker>
386
+ <filter id="glow">
387
+ <feGaussianBlur stdDeviation="2" result="coloredBlur"/>
388
+ <feMerge>
389
+ <feMergeNode in="coloredBlur"/>
390
+ <feMergeNode in="SourceGraphic"/>
391
+ </feMerge>
392
+ </filter>
393
+ <!-- Highlight filter for hover/click -->
394
+ <filter id="highlight">
395
+ <feGaussianBlur stdDeviation="3" result="blur"/>
396
+ <feMerge>
397
+ <feMergeNode in="blur"/>
398
+ <feMergeNode in="SourceGraphic"/>
399
+ </feMerge>
400
+ </filter>
401
+ </defs>
402
+
403
+ <!-- INTERACTIVE: Main branch -->
404
+ <g class="clickable-element" data-element="branch-main"
405
+ data-title-fr="Branche main (production)"
406
+ data-title-en="Main branch (production)"
407
+ data-desc-fr="Branche protegee contenant le code en production. Chaque commit represente une version deployee. Jamais de push direct - uniquement via release ou hotfix."
408
+ data-desc-en="Protected branch containing production code. Each commit represents a deployed version. Never push directly - only via release or hotfix."
409
+ data-cmd="/gitflow:2-status">
410
+ <text x="30" y="55" fill="#ef4444" font-weight="600" font-size="14">main</text>
411
+ <line x1="100" y1="50" x2="850" y2="50" stroke="#ef4444" stroke-width="3" stroke-linecap="round"/>
412
+ <!-- Invisible hit area -->
413
+ <rect x="25" y="35" width="830" height="30" fill="transparent" class="hit-area"/>
414
+ </g>
415
+
416
+ <!-- INTERACTIVE: Develop branch -->
417
+ <g class="clickable-element" data-element="branch-develop"
418
+ data-title-fr="Branche develop (integration)"
419
+ data-title-en="Develop branch (integration)"
420
+ data-desc-fr="Branche d'integration recevant toutes les features terminees. Base pour les nouvelles features et releases. Doit toujours etre stable."
421
+ data-desc-en="Integration branch receiving all completed features. Base for new features and releases. Must always be stable."
422
+ data-cmd="/gitflow:2-status">
423
+ <text x="30" y="175" fill="#f97316" font-weight="600" font-size="14">develop</text>
424
+ <line x1="100" y1="170" x2="850" y2="170" stroke="#f97316" stroke-width="3" stroke-linecap="round"/>
425
+ <rect x="25" y="155" width="830" height="30" fill="transparent" class="hit-area"/>
426
+ </g>
427
+
428
+ <!-- INTERACTIVE: Release branch label -->
429
+ <g class="clickable-element" data-element="branch-release-label"
430
+ data-title-fr="Ligne release"
431
+ data-title-en="Release line"
432
+ data-desc-fr="Zone de preparation des releases avant deploiement. Permet de finaliser une version sans bloquer le developpement."
433
+ data-desc-en="Release preparation zone before deployment. Allows finalizing a version without blocking development."
434
+ data-cmd="/gitflow:10-start release">
435
+ <text x="30" y="115" fill="#eab308" font-weight="600" font-size="14">release</text>
436
+ <rect x="25" y="100" width="60" height="25" fill="transparent" class="hit-area"/>
437
+ </g>
438
+
439
+ <!-- INTERACTIVE: Feature branch label -->
440
+ <g class="clickable-element" data-element="branch-feature-label"
441
+ data-title-fr="Ligne feature"
442
+ data-title-en="Feature line"
443
+ data-desc-fr="Zone de developpement des nouvelles fonctionnalites. Chaque feature a sa branche creee depuis develop."
444
+ data-desc-en="Development zone for new features. Each feature has its branch created from develop."
445
+ data-cmd="/gitflow:10-start feature {nom}">
446
+ <text x="30" y="235" fill="#22c55e" font-weight="600" font-size="14">feature</text>
447
+ <rect x="25" y="220" width="60" height="25" fill="transparent" class="hit-area"/>
448
+ </g>
449
+
450
+ <!-- INTERACTIVE: Hotfix branch label -->
451
+ <g class="clickable-element" data-element="branch-hotfix-label"
452
+ data-title-fr="Ligne hotfix"
453
+ data-title-en="Hotfix line"
454
+ data-desc-fr="Zone pour les corrections urgentes en production. Creee depuis main, mergee dans main ET develop."
455
+ data-desc-en="Zone for urgent production fixes. Created from main, merged into main AND develop."
456
+ data-cmd="/gitflow:10-start hotfix {nom}">
457
+ <text x="30" y="295" fill="#ec4899" font-weight="600" font-size="14">hotfix</text>
458
+ <rect x="25" y="280" width="60" height="25" fill="transparent" class="hit-area"/>
459
+ </g>
460
+
461
+ <!-- INTERACTIVE: Feature A branch -->
462
+ <g class="clickable-element" data-element="feature-a"
463
+ data-title-fr="Feature A"
464
+ data-title-en="Feature A"
465
+ data-desc-fr="Branche de developpement d'une fonctionnalite. Contient plusieurs commits de travail avant d'etre mergee dans develop."
466
+ data-desc-en="Feature development branch. Contains multiple work commits before being merged into develop."
467
+ data-cmd="/gitflow:10-start feature {nom}">
468
+ <path d="M 200 170 Q 200 210 230 230 L 330 230 Q 360 210 360 170" stroke="#22c55e" stroke-width="3" fill="none" stroke-linecap="round"/>
469
+ <text x="260" y="260" fill="#94a3b8" font-size="11">feature/a</text>
470
+ <circle cx="260" cy="230" r="6" fill="#22c55e"/>
471
+ <circle cx="300" cy="230" r="6" fill="#22c55e"/>
472
+ <rect x="195" y="165" width="175" height="100" fill="transparent" class="hit-area"/>
473
+ </g>
474
+
475
+ <!-- INTERACTIVE: Feature B branch -->
476
+ <g class="clickable-element" data-element="feature-b"
477
+ data-title-fr="Feature B"
478
+ data-title-en="Feature B"
479
+ data-desc-fr="Deuxieme feature en parallele. Les features peuvent etre developpees simultanement par differents developpeurs sans conflit."
480
+ data-desc-en="Second feature in parallel. Features can be developed simultaneously by different developers without conflict."
481
+ data-cmd="/gitflow:10-start feature {nom}">
482
+ <path d="M 420 170 Q 420 210 450 230 L 550 230 Q 580 210 580 170" stroke="#22c55e" stroke-width="3" fill="none" stroke-linecap="round"/>
483
+ <text x="480" y="260" fill="#94a3b8" font-size="11">feature/b</text>
484
+ <circle cx="480" cy="230" r="6" fill="#22c55e"/>
485
+ <circle cx="520" cy="230" r="6" fill="#22c55e"/>
486
+ <rect x="415" y="165" width="175" height="100" fill="transparent" class="hit-area"/>
487
+ </g>
488
+
489
+ <!-- INTERACTIVE: Release branch -->
490
+ <g class="clickable-element" data-element="release-branch"
491
+ data-title-fr="Branche release/v1.0"
492
+ data-title-en="Release branch v1.0"
493
+ data-desc-fr="Preparation de la version 1.0. Permet les derniers ajustements (bugfix, doc) avant deploiement en production."
494
+ data-desc-en="Preparation of version 1.0. Allows final adjustments (bugfix, docs) before production deployment."
495
+ data-cmd="/gitflow:10-start release">
496
+ <path d="M 400 170 Q 400 140 430 110 L 550 110 Q 570 80 600 50" stroke="#eab308" stroke-width="3" fill="none" stroke-linecap="round"/>
497
+ <text x="470" y="95" fill="#94a3b8" font-size="11">release/v1.0</text>
498
+ <circle cx="500" cy="110" r="6" fill="#eab308"/>
499
+ <rect x="395" y="45" width="215" height="135" fill="transparent" class="hit-area"/>
500
+ </g>
501
+
502
+ <!-- INTERACTIVE: Release merge back (dashed line) -->
503
+ <g class="clickable-element" data-element="release-mergeback"
504
+ data-title-fr="Merge back release → develop"
505
+ data-title-en="Merge back release → develop"
506
+ data-desc-fr="Synchronisation de la release vers develop. Apres merge dans main, les changements doivent aussi aller dans develop."
507
+ data-desc-en="Sync release to develop. After merging into main, changes must also go into develop."
508
+ data-cmd="/gitflow:11-finish">
509
+ <path d="M 600 50 L 600 170" stroke="#eab308" stroke-width="2" stroke-dasharray="5,5" fill="none"/>
510
+ <rect x="590" y="45" width="20" height="130" fill="transparent" class="hit-area"/>
511
+ </g>
512
+
513
+ <!-- INTERACTIVE: Hotfix branch -->
514
+ <g class="clickable-element" data-element="hotfix-branch"
515
+ data-title-fr="Branche hotfix/bug"
516
+ data-title-en="Hotfix branch bug"
517
+ data-desc-fr="Correction urgente d'un bug en production. Increment automatique du PATCH (1.0.0 → 1.0.1)."
518
+ data-desc-en="Urgent fix for a production bug. Automatic PATCH increment (1.0.0 → 1.0.1)."
519
+ data-cmd="/gitflow:10-start hotfix {nom}">
520
+ <path d="M 700 50 Q 700 170 720 290 L 780 290 Q 800 170 800 50" stroke="#ec4899" stroke-width="3" fill="none" stroke-linecap="round"/>
521
+ <text x="720" y="310" fill="#94a3b8" font-size="11">hotfix/bug</text>
522
+ <circle cx="750" cy="290" r="6" fill="#ec4899"/>
523
+ <rect x="695" y="45" width="115" height="275" fill="transparent" class="hit-area"/>
524
+ </g>
525
+
526
+ <!-- INTERACTIVE: Hotfix merge back (dashed line) -->
527
+ <g class="clickable-element" data-element="hotfix-mergeback"
528
+ data-title-fr="Merge back hotfix → develop"
529
+ data-title-en="Merge back hotfix → develop"
530
+ data-desc-fr="Synchronisation du hotfix vers develop. CRITIQUE pour eviter de regresser dans les futures versions."
531
+ data-desc-en="Sync hotfix to develop. CRITICAL to avoid regression in future versions."
532
+ data-cmd="/gitflow:11-finish">
533
+ <path d="M 780 290 L 820 170" stroke="#ec4899" stroke-width="2" stroke-dasharray="4,3"/>
534
+ <rect x="775" y="165" width="55" height="135" fill="transparent" class="hit-area"/>
535
+ </g>
536
+
537
+ <!-- INTERACTIVE: Commit on main -->
538
+ <g class="clickable-element" data-element="commit-main"
539
+ data-title-fr="Commit sur main"
540
+ data-title-en="Commit on main"
541
+ data-desc-fr="Commit sur main. Les commits viennent uniquement des merges de release ou hotfix, jamais de push direct."
542
+ data-desc-en="Commit on main. Commits only come from release or hotfix merges, never from direct push."
543
+ data-cmd="/gitflow:3-commit">
544
+ <circle cx="150" cy="50" r="8" fill="#ef4444" filter="url(#glow)"/>
545
+ <rect x="140" y="38" width="20" height="24" fill="transparent" class="hit-area"/>
546
+ </g>
547
+
548
+ <!-- INTERACTIVE: Release merge commit on main -->
549
+ <g class="clickable-element" data-element="merge-release-main"
550
+ data-title-fr="Merge release → main"
551
+ data-title-en="Merge release → main"
552
+ data-desc-fr="Commit de merge de la release dans main. La bordure jaune = source release. Tag v1.0 cree automatiquement."
553
+ data-desc-en="Release merge commit into main. Yellow border = release source. Tag v1.0 automatically created."
554
+ data-cmd="/gitflow:11-finish">
555
+ <circle cx="600" cy="50" r="10" fill="#ef4444" stroke="#eab308" stroke-width="3" filter="url(#glow)"/>
556
+ <rect x="588" y="38" width="24" height="24" fill="transparent" class="hit-area"/>
557
+ </g>
558
+
559
+ <!-- INTERACTIVE: Hotfix merge commit on main -->
560
+ <g class="clickable-element" data-element="merge-hotfix-main"
561
+ data-title-fr="Merge hotfix → main"
562
+ data-title-en="Merge hotfix → main"
563
+ data-desc-fr="Commit de merge du hotfix dans main. La bordure rose = source hotfix. Tag v1.0.1 (patch) cree automatiquement."
564
+ data-desc-en="Hotfix merge commit into main. Pink border = hotfix source. Tag v1.0.1 (patch) automatically created."
565
+ data-cmd="/gitflow:11-finish">
566
+ <circle cx="800" cy="50" r="10" fill="#ef4444" stroke="#ec4899" stroke-width="3" filter="url(#glow)"/>
567
+ <rect x="788" y="38" width="24" height="24" fill="transparent" class="hit-area"/>
568
+ </g>
569
+
570
+ <!-- INTERACTIVE: Tag v1.0 -->
571
+ <g class="clickable-element" data-element="tag-v1"
572
+ data-title-fr="Tag v1.0"
573
+ data-title-en="Tag v1.0"
574
+ data-desc-fr="Tag Git marquant cette version en production. Cree automatiquement lors du finish. Format: v{MAJOR}.{MINOR}.{PATCH}"
575
+ data-desc-en="Git tag marking this version in production. Automatically created on finish. Format: v{MAJOR}.{MINOR}.{PATCH}"
576
+ data-cmd="/gitflow:11-finish">
577
+ <g transform="translate(600, 20)">
578
+ <rect x="-20" y="-12" width="40" height="18" rx="4" fill="#eab308"/>
579
+ <text x="0" y="2" fill="#0f172a" font-size="10" font-weight="600" text-anchor="middle">v1.0</text>
580
+ </g>
581
+ <rect x="578" y="5" width="44" height="22" fill="transparent" class="hit-area"/>
582
+ </g>
583
+
584
+ <!-- INTERACTIVE: Tag v1.0.1 -->
585
+ <g class="clickable-element" data-element="tag-v101"
586
+ data-title-fr="Tag v1.0.1 (patch)"
587
+ data-title-en="Tag v1.0.1 (patch)"
588
+ data-desc-fr="Tag de version patch cree par le hotfix. Increment automatique: 1.0.0 → 1.0.1. Correction sans nouvelles features."
589
+ data-desc-en="Patch version tag created by hotfix. Automatic increment: 1.0.0 → 1.0.1. Fix without new features."
590
+ data-cmd="/gitflow:11-finish">
591
+ <g transform="translate(800, 20)">
592
+ <rect x="-24" y="-12" width="48" height="18" rx="4" fill="#ec4899"/>
593
+ <text x="0" y="2" fill="#0f172a" font-size="10" font-weight="600" text-anchor="middle">v1.0.1</text>
594
+ </g>
595
+ <rect x="774" y="5" width="52" height="22" fill="transparent" class="hit-area"/>
596
+ </g>
597
+
598
+ <!-- INTERACTIVE: Merge commit feature A on develop -->
599
+ <g class="clickable-element" data-element="merge-feature-a"
600
+ data-title-fr="Merge feature/a → develop"
601
+ data-title-en="Merge feature/a → develop"
602
+ data-desc-fr="Commit de merge de la feature A dans develop. La bordure verte = merge de feature."
603
+ data-desc-en="Feature A merge commit into develop. Green border = feature merge."
604
+ data-cmd="/gitflow:5-exec">
605
+ <circle cx="360" cy="170" r="8" fill="#f97316" stroke="#22c55e" stroke-width="2"/>
606
+ <rect x="350" y="160" width="20" height="20" fill="transparent" class="hit-area"/>
607
+ </g>
608
+
609
+ <!-- INTERACTIVE: Merge commit feature B on develop -->
610
+ <g class="clickable-element" data-element="merge-feature-b"
611
+ data-title-fr="Merge feature/b → develop"
612
+ data-title-en="Merge feature/b → develop"
613
+ data-desc-fr="Commit de merge de la feature B dans develop. Plusieurs features peuvent etre mergees independamment."
614
+ data-desc-en="Feature B merge commit into develop. Multiple features can be merged independently."
615
+ data-cmd="/gitflow:5-exec">
616
+ <circle cx="580" cy="170" r="8" fill="#f97316" stroke="#22c55e" stroke-width="2"/>
617
+ <rect x="570" y="160" width="20" height="20" fill="transparent" class="hit-area"/>
618
+ </g>
619
+
620
+ <!-- INTERACTIVE: Release merge back on develop -->
621
+ <g class="clickable-element" data-element="merge-release-develop"
622
+ data-title-fr="Merge back release → develop"
623
+ data-title-en="Merge back release → develop"
624
+ data-desc-fr="Commit de synchronisation de la release vers develop. Les bugfix sont integres dans develop."
625
+ data-desc-en="Release sync commit to develop. Bugfixes are integrated into develop."
626
+ data-cmd="/gitflow:11-finish">
627
+ <circle cx="600" cy="170" r="8" fill="#f97316" stroke="#eab308" stroke-width="2"/>
628
+ <rect x="590" y="160" width="20" height="20" fill="transparent" class="hit-area"/>
629
+ </g>
630
+
631
+ <!-- INTERACTIVE: Hotfix merge back on develop -->
632
+ <g class="clickable-element" data-element="merge-hotfix-develop"
633
+ data-title-fr="Merge back hotfix → develop"
634
+ data-title-en="Merge back hotfix → develop"
635
+ data-desc-fr="Commit de synchronisation du hotfix vers develop. ESSENTIEL pour eviter regression."
636
+ data-desc-en="Hotfix sync commit to develop. ESSENTIAL to avoid regression."
637
+ data-cmd="/gitflow:11-finish">
638
+ <circle cx="820" cy="170" r="8" fill="#f97316" stroke="#ec4899" stroke-width="2"/>
639
+ <rect x="810" y="160" width="20" height="20" fill="transparent" class="hit-area"/>
640
+ </g>
641
+
642
+ <!-- Regular commits on develop (non-interactive) -->
643
+ <circle cx="150" cy="170" r="8" fill="#f97316"/>
644
+ <circle cx="200" cy="170" r="6" fill="#f97316"/>
645
+ <circle cx="400" cy="170" r="6" fill="#f97316"/>
646
+
647
+ <!-- INTERACTIVE: Merge arrows -->
648
+ <g class="clickable-element" data-element="merge-arrow"
649
+ data-title-fr="Fleche de merge"
650
+ data-title-en="Merge arrow"
651
+ data-desc-fr="Direction du merge: de la feature vers develop. Utilise --no-ff pour preserver l'historique."
652
+ data-desc-en="Merge direction: from feature to develop. Uses --no-ff to preserve history."
653
+ data-cmd="/gitflow:5-exec">
654
+ <path d="M 360 230 L 360 178" stroke="#22c55e" stroke-width="2" marker-end="url(#arrow)"/>
655
+ <path d="M 580 230 L 580 178" stroke="#22c55e" stroke-width="2" marker-end="url(#arrow)"/>
656
+ <rect x="355" y="175" width="10" height="60" fill="transparent" class="hit-area"/>
657
+ <rect x="575" y="175" width="10" height="60" fill="transparent" class="hit-area"/>
658
+ </g>
659
+ </svg>
660
+ <p class="diagram-hint">
661
+ <span data-lang="fr">💡 Cliquez sur n'importe quel element du schema pour voir sa definition et la commande associee.</span>
662
+ <span data-lang="en">💡 Click on any element in the diagram to see its definition and associated command.</span>
663
+ </p>
664
+ </div>
665
+
666
+ <!-- Legend: Branch Colors -->
667
+ <h4 data-lang="fr">Legende - Branches</h4>
668
+ <h4 data-lang="en">Legend - Branches</h4>
669
+ <div class="diagram-legend">
670
+ <div class="legend-item">
671
+ <span class="legend-color main"></span>
672
+ <span>main (production)</span>
673
+ </div>
674
+ <div class="legend-item">
675
+ <span class="legend-color develop"></span>
676
+ <span>develop (integration)</span>
677
+ </div>
678
+ <div class="legend-item">
679
+ <span class="legend-color feature"></span>
680
+ <span>feature/*</span>
681
+ </div>
682
+ <div class="legend-item">
683
+ <span class="legend-color release"></span>
684
+ <span>release/*</span>
685
+ </div>
686
+ <div class="legend-item">
687
+ <span class="legend-color hotfix"></span>
688
+ <span>hotfix/*</span>
689
+ </div>
690
+ </div>
691
+
692
+ <!-- Legend: Visual Elements -->
693
+ <h4 data-lang="fr">Legende - Elements visuels</h4>
694
+ <h4 data-lang="en">Legend - Visual Elements</h4>
695
+ <div class="table-container">
696
+ <table class="legend-table">
697
+ <thead>
698
+ <tr>
699
+ <th style="width:60px;">
700
+ <span data-lang="fr">Visuel</span>
701
+ <span data-lang="en">Visual</span>
702
+ </th>
703
+ <th>
704
+ <span data-lang="fr">Nom</span>
705
+ <span data-lang="en">Name</span>
706
+ </th>
707
+ <th>
708
+ <span data-lang="fr">Signification</span>
709
+ <span data-lang="en">Meaning</span>
710
+ </th>
711
+ </tr>
712
+ </thead>
713
+ <tbody>
714
+ <tr>
715
+ <td style="text-align:center;"><span style="display:inline-block;width:40px;height:3px;background:#22c55e;vertical-align:middle;"></span></td>
716
+ <td>
717
+ <span data-lang="fr">Ligne pleine</span>
718
+ <span data-lang="en">Solid line</span>
719
+ </td>
720
+ <td>
721
+ <span data-lang="fr">Branche active - flux principal de developpement</span>
722
+ <span data-lang="en">Active branch - main development flow</span>
723
+ </td>
724
+ </tr>
725
+ <tr>
726
+ <td style="text-align:center;"><span style="display:inline-block;width:40px;height:2px;background:repeating-linear-gradient(90deg,#ec4899 0,#ec4899 4px,transparent 4px,transparent 7px);vertical-align:middle;"></span></td>
727
+ <td>
728
+ <span data-lang="fr">Ligne pointillee</span>
729
+ <span data-lang="en">Dashed line</span>
730
+ </td>
731
+ <td>
732
+ <span data-lang="fr"><strong>Merge back</strong> - synchronisation vers develop apres merge dans main</span>
733
+ <span data-lang="en"><strong>Merge back</strong> - sync to develop after merging into main</span>
734
+ </td>
735
+ </tr>
736
+ <tr>
737
+ <td style="text-align:center;"><span style="display:inline-block;width:12px;height:12px;border-radius:50%;background:#f97316;vertical-align:middle;"></span></td>
738
+ <td>
739
+ <span data-lang="fr">Cercle plein</span>
740
+ <span data-lang="en">Solid circle</span>
741
+ </td>
742
+ <td>
743
+ <span data-lang="fr">Commit standard sur la branche</span>
744
+ <span data-lang="en">Standard commit on the branch</span>
745
+ </td>
746
+ </tr>
747
+ <tr>
748
+ <td style="text-align:center;"><span style="display:inline-block;width:14px;height:14px;border-radius:50%;background:#f97316;border:2px solid #22c55e;vertical-align:middle;"></span></td>
749
+ <td>
750
+ <span data-lang="fr">Cercle avec bordure</span>
751
+ <span data-lang="en">Circle with border</span>
752
+ </td>
753
+ <td>
754
+ <span data-lang="fr"><strong>Commit de merge</strong> - integration d'une branche (couleur bordure = source)</span>
755
+ <span data-lang="en"><strong>Merge commit</strong> - branch integration (border color = source)</span>
756
+ </td>
757
+ </tr>
758
+ <tr>
759
+ <td style="text-align:center;"><span style="display:inline-block;padding:2px 6px;background:#eab308;border-radius:4px;font-size:10px;color:#0f172a;font-weight:600;">v1.0</span></td>
760
+ <td>
761
+ <span data-lang="fr">Tag de version</span>
762
+ <span data-lang="en">Version tag</span>
763
+ </td>
764
+ <td>
765
+ <span data-lang="fr">Version deployee en production (cree lors du finish)</span>
766
+ <span data-lang="en">Version deployed to production (created on finish)</span>
767
+ </td>
768
+ </tr>
769
+ <tr>
770
+ <td style="text-align:center;">
771
+ <svg width="16" height="24" viewBox="0 0 16 24" style="vertical-align:middle;">
772
+ <line x1="8" y1="20" x2="8" y2="8" stroke="#22c55e" stroke-width="2"/>
773
+ <polygon points="8,0 2,8 14,8" fill="#22c55e"/>
774
+ </svg>
775
+ </td>
776
+ <td>
777
+ <span data-lang="fr">Fleche de merge</span>
778
+ <span data-lang="en">Merge arrow</span>
779
+ </td>
780
+ <td>
781
+ <span data-lang="fr">Direction du merge (feature → develop)</span>
782
+ <span data-lang="en">Merge direction (feature → develop)</span>
783
+ </td>
784
+ </tr>
785
+ </tbody>
786
+ </table>
787
+ </div>
788
+
789
+ <!-- When to use which command -->
790
+ <h3 id="when-to-use">
791
+ <span data-lang="fr">Quand utiliser quelle commande ?</span>
792
+ <span data-lang="en">When to use which command?</span>
793
+ </h3>
794
+
795
+ <!-- Decision Flowchart SVG -->
796
+ <div class="decision-diagram" style="margin: 2rem 0; overflow-x: auto;">
797
+ <svg viewBox="0 0 900 570" style="width: 100%; max-width: 900px; height: auto; display: block; margin: 0 auto;">
798
+ <!-- Background -->
799
+ <rect width="900" height="570" fill="#0f172a" rx="8"/>
800
+
801
+ <!-- Title -->
802
+ <text x="450" y="35" text-anchor="middle" fill="#f8fafc" font-size="18" font-weight="600">
803
+ <tspan data-lang="fr">Quel est votre objectif ?</tspan>
804
+ <tspan data-lang="en">What is your goal?</tspan>
805
+ </text>
806
+
807
+ <!-- Central decision diamond -->
808
+ <polygon points="450,60 550,110 450,160 350,110" fill="#1e293b" stroke="#6366f1" stroke-width="2"/>
809
+ <text x="450" y="115" text-anchor="middle" fill="#f8fafc" font-size="11" font-weight="500">
810
+ <tspan data-lang="fr">Objectif</tspan>
811
+ <tspan data-lang="en">Goal</tspan>
812
+ </text>
813
+
814
+ <!-- FEATURE PATH (Left) -->
815
+ <line x1="350" y1="110" x2="160" y2="110" stroke="#22c55e" stroke-width="2"/>
816
+ <polygon points="160,110 170,105 170,115" fill="#22c55e"/>
817
+
818
+ <rect x="30" y="85" width="130" height="50" rx="6" fill="#22c55e" fill-opacity="0.15" stroke="#22c55e" stroke-width="2"/>
819
+ <text x="95" y="105" text-anchor="middle" fill="#22c55e" font-size="11" font-weight="600">
820
+ <tspan data-lang="fr">Nouvelle</tspan>
821
+ <tspan data-lang="en">New</tspan>
822
+ </text>
823
+ <text x="95" y="120" text-anchor="middle" fill="#22c55e" font-size="11" font-weight="600">
824
+ <tspan data-lang="fr">fonctionnalite</tspan>
825
+ <tspan data-lang="en">feature</tspan>
826
+ </text>
827
+
828
+ <!-- Feature flow down -->
829
+ <line x1="90" y1="135" x2="90" y2="175" stroke="#22c55e" stroke-width="2"/>
830
+ <polygon points="90,175 85,165 95,165" fill="#22c55e"/>
831
+
832
+ <g class="cmd-copyable" data-cmd="/gitflow:10-start feature {nom}" style="cursor:pointer;">
833
+ <rect x="20" y="180" width="140" height="35" rx="4" fill="#0f172a" stroke="#22c55e" stroke-width="1.5"/>
834
+ <text x="90" y="202" text-anchor="middle" fill="#22c55e" font-size="10" font-family="monospace">/gitflow:10-start</text>
835
+ <text x="90" y="210" text-anchor="middle" fill="#94a3b8" font-size="8">feature {nom}</text>
836
+ </g>
837
+
838
+ <line x1="90" y1="215" x2="90" y2="245" stroke="#22c55e" stroke-width="2" stroke-dasharray="4,2"/>
839
+ <text x="90" y="265" text-anchor="middle" fill="#64748b" font-size="10" font-style="italic">
840
+ <tspan data-lang="fr">coder...</tspan>
841
+ <tspan data-lang="en">code...</tspan>
842
+ </text>
843
+
844
+ <!-- Decision: Fini? (Done?) -->
845
+ <line x1="90" y1="275" x2="90" y2="290" stroke="#22c55e" stroke-width="2"/>
846
+ <polygon points="90,330 120,310 90,290 60,310" fill="#1e293b" stroke="#22c55e" stroke-width="1.5"/>
847
+ <text x="90" y="313" text-anchor="middle" fill="#f8fafc" font-size="9" font-weight="500">
848
+ <tspan data-lang="fr">Fini?</tspan>
849
+ <tspan data-lang="en">Done?</tspan>
850
+ </text>
851
+
852
+ <!-- NON path - go right to commit -->
853
+ <line x1="120" y1="310" x2="145" y2="310" stroke="#64748b" stroke-width="2"/>
854
+ <polygon points="145,310 135,305 135,315" fill="#64748b"/>
855
+ <text x="132" y="303" text-anchor="middle" fill="#64748b" font-size="7" font-weight="600">
856
+ <tspan data-lang="fr">NON</tspan>
857
+ <tspan data-lang="en">NO</tspan>
858
+ </text>
859
+
860
+ <g class="cmd-copyable" data-cmd="/gitflow:3-commit" style="cursor:pointer;">
861
+ <rect x="148" y="295" width="85" height="30" rx="4" fill="#0f172a" stroke="#8b5cf6" stroke-width="1.5"/>
862
+ <text x="190" y="314" text-anchor="middle" fill="#8b5cf6" font-size="9" font-family="monospace">/gitflow:3-commit</text>
863
+ </g>
864
+
865
+ <!-- Loop back from commit to coder -->
866
+ <path d="M 190 295 L 190 260 L 120 260" stroke="#64748b" stroke-width="2" fill="none" stroke-dasharray="4,2"/>
867
+ <polygon points="120,260 130,255 130,265" fill="#64748b"/>
868
+
869
+ <!-- OUI path - continue to plan -->
870
+ <line x1="90" y1="330" x2="90" y2="355" stroke="#22c55e" stroke-width="2"/>
871
+ <polygon points="90,355 85,345 95,345" fill="#22c55e"/>
872
+ <text x="75" y="345" text-anchor="end" fill="#22c55e" font-size="7" font-weight="600">
873
+ <tspan data-lang="fr">OUI</tspan>
874
+ <tspan data-lang="en">YES</tspan>
875
+ </text>
876
+
877
+ <!-- Plan step -->
878
+ <g class="cmd-copyable" data-cmd="/gitflow:4-plan" style="cursor:pointer;">
879
+ <rect x="20" y="358" width="140" height="30" rx="4" fill="#0f172a" stroke="#f97316" stroke-width="1.5"/>
880
+ <text x="90" y="378" text-anchor="middle" fill="#f97316" font-size="10" font-family="monospace">/gitflow:4-plan</text>
881
+ </g>
882
+
883
+ <!-- Decision diamond - Plan OK? -->
884
+ <line x1="90" y1="388" x2="90" y2="400" stroke="#f97316" stroke-width="2"/>
885
+ <polygon points="90,445 125,422 90,400 55,422" fill="#1e293b" stroke="#f97316" stroke-width="1.5"/>
886
+ <text x="90" y="426" text-anchor="middle" fill="#f8fafc" font-size="9" font-weight="500">
887
+ <tspan data-lang="fr">Plan OK?</tspan>
888
+ <tspan data-lang="en">Plan OK?</tspan>
889
+ </text>
890
+
891
+ <!-- YES path - continue to exec -->
892
+ <line x1="90" y1="445" x2="90" y2="465" stroke="#22c55e" stroke-width="2"/>
893
+ <polygon points="90,465 85,455 95,455" fill="#22c55e"/>
894
+ <text x="75" y="458" text-anchor="end" fill="#22c55e" font-size="7" font-weight="600">
895
+ <tspan data-lang="fr">OUI</tspan>
896
+ <tspan data-lang="en">YES</tspan>
897
+ </text>
898
+
899
+ <g class="cmd-copyable" data-cmd="/gitflow:5-exec" style="cursor:pointer;">
900
+ <rect x="20" y="468" width="140" height="30" rx="4" fill="#0f172a" stroke="#f97316" stroke-width="1.5"/>
901
+ <text x="90" y="488" text-anchor="middle" fill="#f97316" font-size="10" font-family="monospace">/gitflow:5-exec</text>
902
+ </g>
903
+
904
+ <!-- NO path - arrow back up to revise code -->
905
+ <path d="M 55 422 L 15 422 L 15 260 L 55 260" stroke="#ef4444" stroke-width="2" fill="none" stroke-dasharray="4,2"/>
906
+ <polygon points="55,260 45,255 45,265" fill="#ef4444"/>
907
+ <text x="5" y="345" text-anchor="middle" fill="#ef4444" font-size="7" font-weight="500" transform="rotate(-90, 5, 345)">
908
+ <tspan data-lang="fr">réviser</tspan>
909
+ <tspan data-lang="en">revise</tspan>
910
+ </text>
911
+
912
+ <!-- Final merge result -->
913
+ <line x1="90" y1="498" x2="90" y2="520" stroke="#22c55e" stroke-width="2"/>
914
+ <polygon points="90,520 85,510 95,510" fill="#22c55e"/>
915
+
916
+ <rect x="30" y="525" width="120" height="30" rx="6" fill="#22c55e" fill-opacity="0.2" stroke="#22c55e" stroke-width="2"/>
917
+ <text x="90" y="545" text-anchor="middle" fill="#22c55e" font-size="10" font-weight="600">
918
+ <tspan data-lang="fr">Merge dans develop</tspan>
919
+ <tspan data-lang="en">Merged to develop</tspan>
920
+ </text>
921
+
922
+ <!-- RELEASE PATH (Center) -->
923
+ <line x1="420" y1="160" x2="420" y2="180" stroke="#eab308" stroke-width="2"/>
924
+ <line x1="420" y1="180" x2="350" y2="180" stroke="#eab308" stroke-width="2"/>
925
+ <line x1="350" y1="180" x2="350" y2="200" stroke="#eab308" stroke-width="2"/>
926
+ <polygon points="350,200 345,190 355,190" fill="#eab308"/>
927
+
928
+ <rect x="280" y="205" width="140" height="40" rx="6" fill="#eab308" fill-opacity="0.15" stroke="#eab308" stroke-width="2"/>
929
+ <text x="350" y="230" text-anchor="middle" fill="#eab308" font-size="10" font-weight="600">
930
+ <tspan data-lang="fr">Deployer en prod</tspan>
931
+ <tspan data-lang="en">Deploy to prod</tspan>
932
+ </text>
933
+
934
+ <line x1="350" y1="245" x2="350" y2="258" stroke="#eab308" stroke-width="2"/>
935
+ <polygon points="350,258 345,248 355,248" fill="#eab308"/>
936
+
937
+ <g class="cmd-copyable" data-cmd="/gitflow:10-start release" style="cursor:pointer;">
938
+ <rect x="285" y="263" width="130" height="26" rx="4" fill="#0f172a" stroke="#eab308" stroke-width="1.5"/>
939
+ <text x="350" y="280" text-anchor="middle" fill="#eab308" font-size="8" font-family="monospace">/gitflow:10-start release</text>
940
+ </g>
941
+
942
+ <!-- Release: tests... -->
943
+ <line x1="350" y1="289" x2="350" y2="305" stroke="#eab308" stroke-width="2" stroke-dasharray="4,2"/>
944
+ <text x="350" y="318" text-anchor="middle" fill="#64748b" font-size="9" font-style="italic">
945
+ <tspan data-lang="fr">tests...</tspan>
946
+ <tspan data-lang="en">tests...</tspan>
947
+ </text>
948
+
949
+ <!-- Release: Fini? diamond -->
950
+ <line x1="350" y1="323" x2="350" y2="335" stroke="#eab308" stroke-width="2"/>
951
+ <polygon points="350,368 378,351 350,335 322,351" fill="#1e293b" stroke="#eab308" stroke-width="1.5"/>
952
+ <text x="350" y="355" text-anchor="middle" fill="#f8fafc" font-size="8" font-weight="500">
953
+ <tspan data-lang="fr">Fini?</tspan>
954
+ <tspan data-lang="en">Done?</tspan>
955
+ </text>
956
+
957
+ <!-- Release NON -> commit (shared) -->
958
+ <line x1="378" y1="351" x2="430" y2="351" stroke="#64748b" stroke-width="2"/>
959
+ <text x="404" y="344" text-anchor="middle" fill="#64748b" font-size="6" font-weight="600">
960
+ <tspan data-lang="fr">NON</tspan>
961
+ <tspan data-lang="en">NO</tspan>
962
+ </text>
963
+
964
+ <!-- Shared commit box between Release and Hotfix -->
965
+ <g class="cmd-copyable" data-cmd="/gitflow:3-commit" style="cursor:pointer;">
966
+ <rect x="433" y="338" width="84" height="26" rx="4" fill="#0f172a" stroke="#8b5cf6" stroke-width="1.5"/>
967
+ <text x="475" y="355" text-anchor="middle" fill="#8b5cf6" font-size="8" font-family="monospace">/gitflow:3-commit</text>
968
+ </g>
969
+
970
+ <!-- Hotfix NON -> commit (shared) -->
971
+ <line x1="572" y1="351" x2="520" y2="351" stroke="#64748b" stroke-width="2"/>
972
+ <text x="546" y="344" text-anchor="middle" fill="#64748b" font-size="6" font-weight="600">
973
+ <tspan data-lang="fr">NON</tspan>
974
+ <tspan data-lang="en">NO</tspan>
975
+ </text>
976
+
977
+ <!-- Release: loop back from commit -->
978
+ <path d="M 450 338 L 450 305 L 378 305" stroke="#64748b" stroke-width="2" fill="none" stroke-dasharray="4,2"/>
979
+ <polygon points="378,305 388,300 388,310" fill="#64748b"/>
980
+
981
+ <!-- Hotfix: loop back from commit -->
982
+ <path d="M 500 338 L 500 305 L 572 305" stroke="#64748b" stroke-width="2" fill="none" stroke-dasharray="4,2"/>
983
+ <polygon points="572,305 562,300 562,310" fill="#64748b"/>
984
+
985
+ <!-- Release OUI -> PR -> finish -->
986
+ <line x1="350" y1="368" x2="350" y2="383" stroke="#eab308" stroke-width="2"/>
987
+ <polygon points="350,383 345,373 355,373" fill="#eab308"/>
988
+ <text x="335" y="378" text-anchor="end" fill="#eab308" font-size="6" font-weight="600">
989
+ <tspan data-lang="fr">OUI</tspan>
990
+ <tspan data-lang="en">YES</tspan>
991
+ </text>
992
+
993
+ <!-- Release: PR step -->
994
+ <g class="cmd-copyable" data-cmd="/gitflow:7-pull-request" style="cursor:pointer;">
995
+ <rect x="285" y="388" width="130" height="24" rx="4" fill="#0f172a" stroke="#06b6d4" stroke-width="1.5"/>
996
+ <text x="350" y="404" text-anchor="middle" fill="#06b6d4" font-size="7" font-family="monospace">/gitflow:7-pull-request</text>
997
+ </g>
998
+
999
+ <line x1="350" y1="412" x2="350" y2="427" stroke="#eab308" stroke-width="2"/>
1000
+ <polygon points="350,427 345,417 355,417" fill="#eab308"/>
1001
+
1002
+ <g class="cmd-copyable" data-cmd="/gitflow:11-finish" style="cursor:pointer;">
1003
+ <rect x="285" y="432" width="130" height="24" rx="4" fill="#0f172a" stroke="#eab308" stroke-width="1.5"/>
1004
+ <text x="350" y="448" text-anchor="middle" fill="#eab308" font-size="7" font-family="monospace">/gitflow:11-finish</text>
1005
+ </g>
1006
+
1007
+ <line x1="350" y1="456" x2="350" y2="475" stroke="#eab308" stroke-width="2"/>
1008
+ <polygon points="350,475 345,465 355,465" fill="#eab308"/>
1009
+
1010
+ <rect x="295" y="480" width="110" height="24" rx="6" fill="#eab308" fill-opacity="0.2" stroke="#eab308" stroke-width="2"/>
1011
+ <text x="350" y="496" text-anchor="middle" fill="#eab308" font-size="8" font-weight="600">
1012
+ <tspan data-lang="fr">Tag + Prod</tspan>
1013
+ <tspan data-lang="en">Tag + Prod</tspan>
1014
+ </text>
1015
+
1016
+ <!-- HOTFIX PATH (Center-Right) -->
1017
+ <line x1="490" y1="160" x2="490" y2="180" stroke="#ec4899" stroke-width="2"/>
1018
+ <line x1="490" y1="180" x2="600" y2="180" stroke="#ec4899" stroke-width="2"/>
1019
+ <line x1="600" y1="180" x2="600" y2="200" stroke="#ec4899" stroke-width="2"/>
1020
+ <polygon points="600,200 595,190 605,190" fill="#ec4899"/>
1021
+
1022
+ <rect x="530" y="205" width="140" height="40" rx="6" fill="#ec4899" fill-opacity="0.15" stroke="#ec4899" stroke-width="2"/>
1023
+ <text x="600" y="230" text-anchor="middle" fill="#ec4899" font-size="10" font-weight="600">
1024
+ <tspan data-lang="fr">Bug urgent prod</tspan>
1025
+ <tspan data-lang="en">Urgent prod bug</tspan>
1026
+ </text>
1027
+
1028
+ <line x1="600" y1="245" x2="600" y2="258" stroke="#ec4899" stroke-width="2"/>
1029
+ <polygon points="600,258 595,248 605,248" fill="#ec4899"/>
1030
+
1031
+ <g class="cmd-copyable" data-cmd="/gitflow:10-start hotfix {nom}" style="cursor:pointer;">
1032
+ <rect x="535" y="263" width="130" height="26" rx="4" fill="#0f172a" stroke="#ec4899" stroke-width="1.5"/>
1033
+ <text x="600" y="280" text-anchor="middle" fill="#ec4899" font-size="8" font-family="monospace">/gitflow:10-start hotfix</text>
1034
+ </g>
1035
+
1036
+ <!-- Hotfix: fix... -->
1037
+ <line x1="600" y1="289" x2="600" y2="305" stroke="#ec4899" stroke-width="2" stroke-dasharray="4,2"/>
1038
+ <text x="600" y="318" text-anchor="middle" fill="#64748b" font-size="9" font-style="italic">
1039
+ <tspan data-lang="fr">fix...</tspan>
1040
+ <tspan data-lang="en">fix...</tspan>
1041
+ </text>
1042
+
1043
+ <!-- Hotfix: Fini? diamond -->
1044
+ <line x1="600" y1="323" x2="600" y2="335" stroke="#ec4899" stroke-width="2"/>
1045
+ <polygon points="600,368 628,351 600,335 572,351" fill="#1e293b" stroke="#ec4899" stroke-width="1.5"/>
1046
+ <text x="600" y="355" text-anchor="middle" fill="#f8fafc" font-size="8" font-weight="500">
1047
+ <tspan data-lang="fr">Fini?</tspan>
1048
+ <tspan data-lang="en">Done?</tspan>
1049
+ </text>
1050
+
1051
+ <!-- Hotfix OUI -> PR -> finish -->
1052
+ <line x1="600" y1="368" x2="600" y2="383" stroke="#ec4899" stroke-width="2"/>
1053
+ <polygon points="600,383 595,373 605,373" fill="#ec4899"/>
1054
+ <text x="615" y="378" text-anchor="start" fill="#ec4899" font-size="6" font-weight="600">
1055
+ <tspan data-lang="fr">OUI</tspan>
1056
+ <tspan data-lang="en">YES</tspan>
1057
+ </text>
1058
+
1059
+ <!-- Hotfix: PR step -->
1060
+ <g class="cmd-copyable" data-cmd="/gitflow:7-pull-request" style="cursor:pointer;">
1061
+ <rect x="535" y="388" width="130" height="24" rx="4" fill="#0f172a" stroke="#06b6d4" stroke-width="1.5"/>
1062
+ <text x="600" y="404" text-anchor="middle" fill="#06b6d4" font-size="7" font-family="monospace">/gitflow:7-pull-request</text>
1063
+ </g>
1064
+
1065
+ <line x1="600" y1="412" x2="600" y2="427" stroke="#ec4899" stroke-width="2"/>
1066
+ <polygon points="600,427 595,417 605,417" fill="#ec4899"/>
1067
+
1068
+ <g class="cmd-copyable" data-cmd="/gitflow:11-finish" style="cursor:pointer;">
1069
+ <rect x="535" y="432" width="130" height="24" rx="4" fill="#0f172a" stroke="#ec4899" stroke-width="1.5"/>
1070
+ <text x="600" y="448" text-anchor="middle" fill="#ec4899" font-size="7" font-family="monospace">/gitflow:11-finish</text>
1071
+ </g>
1072
+
1073
+ <line x1="600" y1="456" x2="600" y2="475" stroke="#ec4899" stroke-width="2"/>
1074
+ <polygon points="600,475 595,465 605,465" fill="#ec4899"/>
1075
+
1076
+ <rect x="545" y="480" width="110" height="24" rx="6" fill="#ec4899" fill-opacity="0.2" stroke="#ec4899" stroke-width="2"/>
1077
+ <text x="600" y="496" text-anchor="middle" fill="#ec4899" font-size="8" font-weight="600">
1078
+ <tspan data-lang="fr">Fix deploye</tspan>
1079
+ <tspan data-lang="en">Fix deployed</tspan>
1080
+ </text>
1081
+
1082
+ <!-- UTILITY COMMANDS (Right) -->
1083
+ <line x1="550" y1="110" x2="720" y2="110" stroke="#6366f1" stroke-width="2"/>
1084
+ <polygon points="720,110 710,105 710,115" fill="#6366f1"/>
1085
+
1086
+ <rect x="730" y="70" width="150" height="395" rx="8" fill="#1e293b" stroke="#475569" stroke-width="1"/>
1087
+ <text x="805" y="95" text-anchor="middle" fill="#94a3b8" font-size="11" font-weight="600">
1088
+ <tspan data-lang="fr">Utilitaires</tspan>
1089
+ <tspan data-lang="en">Utilities</tspan>
1090
+ </text>
1091
+
1092
+ <!-- Init (first - setup) -->
1093
+ <g class="cmd-copyable" data-cmd="/gitflow:1-init" style="cursor:pointer;">
1094
+ <rect x="745" y="108" width="120" height="26" rx="4" fill="#0f172a" stroke="#475569" stroke-width="1.5" stroke-dasharray="3,2"/>
1095
+ <text x="805" y="125" text-anchor="middle" fill="#64748b" font-size="9" font-family="monospace">/gitflow:1-init</text>
1096
+ </g>
1097
+
1098
+ <!-- Status -->
1099
+ <g class="cmd-copyable" data-cmd="/gitflow:2-status" style="cursor:pointer;">
1100
+ <rect x="745" y="142" width="120" height="26" rx="4" fill="#0f172a" stroke="#3b82f6" stroke-width="1.5"/>
1101
+ <text x="805" y="159" text-anchor="middle" fill="#3b82f6" font-size="9" font-family="monospace">/gitflow:2-status</text>
1102
+ </g>
1103
+
1104
+ <!-- Commit -->
1105
+ <g class="cmd-copyable" data-cmd="/gitflow:3-commit" style="cursor:pointer;">
1106
+ <rect x="745" y="176" width="120" height="26" rx="4" fill="#0f172a" stroke="#8b5cf6" stroke-width="1.5"/>
1107
+ <text x="805" y="193" text-anchor="middle" fill="#8b5cf6" font-size="9" font-family="monospace">/gitflow:3-commit</text>
1108
+ </g>
1109
+
1110
+ <!-- Abort -->
1111
+ <g class="cmd-copyable" data-cmd="/gitflow:6-abort" style="cursor:pointer;">
1112
+ <rect x="745" y="210" width="120" height="26" rx="4" fill="#0f172a" stroke="#ef4444" stroke-width="1.5"/>
1113
+ <text x="805" y="227" text-anchor="middle" fill="#ef4444" font-size="9" font-family="monospace">/gitflow:6-abort</text>
1114
+ </g>
1115
+
1116
+ <!-- PR Commands Section -->
1117
+ <text x="805" y="254" text-anchor="middle" fill="#64748b" font-size="8" font-weight="500">
1118
+ <tspan data-lang="fr">─── Pull Request ───</tspan>
1119
+ <tspan data-lang="en">─── Pull Request ───</tspan>
1120
+ </text>
1121
+
1122
+ <!-- Pull Request -->
1123
+ <g class="cmd-copyable" data-cmd="/gitflow:7-pull-request" style="cursor:pointer;">
1124
+ <rect x="745" y="264" width="120" height="26" rx="4" fill="#0f172a" stroke="#06b6d4" stroke-width="1.5"/>
1125
+ <text x="805" y="281" text-anchor="middle" fill="#06b6d4" font-size="9" font-family="monospace">/gitflow:7-pull-request</text>
1126
+ </g>
1127
+
1128
+ <!-- Review -->
1129
+ <g class="cmd-copyable" data-cmd="/gitflow:8-review" style="cursor:pointer;">
1130
+ <rect x="745" y="298" width="120" height="26" rx="4" fill="#0f172a" stroke="#10b981" stroke-width="1.5"/>
1131
+ <text x="805" y="315" text-anchor="middle" fill="#10b981" font-size="9" font-family="monospace">/gitflow:8-review</text>
1132
+ </g>
1133
+
1134
+ <!-- Merge -->
1135
+ <g class="cmd-copyable" data-cmd="/gitflow:9-merge" style="cursor:pointer;">
1136
+ <rect x="745" y="332" width="120" height="26" rx="4" fill="#0f172a" stroke="#6366f1" stroke-width="1.5"/>
1137
+ <text x="805" y="349" text-anchor="middle" fill="#6366f1" font-size="9" font-family="monospace">/gitflow:9-merge</text>
1138
+ </g>
1139
+
1140
+ <!-- Legend inside box -->
1141
+ <text x="805" y="378" text-anchor="middle" fill="#64748b" font-size="8" font-weight="500">
1142
+ <tspan data-lang="fr">─── Couleurs ───</tspan>
1143
+ <tspan data-lang="en">─── Colors ───</tspan>
1144
+ </text>
1145
+
1146
+ <circle cx="750" cy="395" r="4" fill="#22c55e"/>
1147
+ <text x="760" y="398" fill="#94a3b8" font-size="7">Feature</text>
1148
+ <circle cx="820" cy="395" r="4" fill="#eab308"/>
1149
+ <text x="830" y="398" fill="#94a3b8" font-size="7">Release</text>
1150
+
1151
+ <circle cx="750" cy="412" r="4" fill="#ec4899"/>
1152
+ <text x="760" y="415" fill="#94a3b8" font-size="7">Hotfix</text>
1153
+ <circle cx="820" cy="412" r="4" fill="#06b6d4"/>
1154
+ <text x="830" y="415" fill="#94a3b8" font-size="7">PR</text>
1155
+
1156
+ <circle cx="750" cy="429" r="4" fill="#f97316"/>
1157
+ <text x="760" y="432" fill="#94a3b8" font-size="7">Integr.</text>
1158
+ <circle cx="820" cy="429" r="4" fill="#6366f1"/>
1159
+ <text x="830" y="432" fill="#94a3b8" font-size="7">Decision</text>
1160
+
1161
+ <circle cx="750" cy="446" r="4" fill="#3b82f6"/>
1162
+ <text x="760" y="449" fill="#94a3b8" font-size="7">Status</text>
1163
+ <circle cx="820" cy="446" r="4" fill="#8b5cf6"/>
1164
+ <text x="830" y="449" fill="#94a3b8" font-size="7">Commit</text>
1165
+ </svg>
1166
+ </div>
1167
+
1168
+ <!-- Command Reference Cards -->
1169
+ <h3 id="command-reference">
1170
+ <span data-lang="fr">Reference des commandes</span>
1171
+ <span data-lang="en">Command Reference</span>
1172
+ </h3>
1173
+
1174
+ <div class="command-cards" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; margin-top: 1.5rem;">
1175
+
1176
+ <!-- gitflow:1-init -->
1177
+ <div class="command-card" style="background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1.25rem; border-left: 4px solid #475569;">
1178
+ <div style="display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem;">
1179
+ <code style="background: #475569; color: #f8fafc; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.85rem;">/gitflow:1-init</code>
1180
+ </div>
1181
+ <h5 style="color: #c8d0dc; margin: 0 0 0.5rem 0; font-size: 0.95rem;">
1182
+ <span data-lang="fr">Initialisation</span>
1183
+ <span data-lang="en">Initialization</span>
1184
+ </h5>
1185
+ <p style="color: #94a3b8; font-size: 0.85rem; margin: 0; line-height: 1.5;">
1186
+ <span data-lang="fr">Configure GitFlow dans le projet. Cree les branches main/develop et le fichier de configuration. A utiliser une seule fois au debut du projet.</span>
1187
+ <span data-lang="en">Configures GitFlow in the project. Creates main/develop branches and config file. Use once at the start of the project.</span>
1188
+ </p>
1189
+ </div>
1190
+
1191
+ <!-- gitflow:2-status -->
1192
+ <div class="command-card" style="background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1.25rem; border-left: 4px solid #3b82f6;">
1193
+ <div style="display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem;">
1194
+ <code style="background: #3b82f6; color: #f8fafc; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.85rem;">/gitflow:2-status</code>
1195
+ </div>
1196
+ <h5 style="color: #c8d0dc; margin: 0 0 0.5rem 0; font-size: 0.95rem;">
1197
+ <span data-lang="fr">Etat du projet</span>
1198
+ <span data-lang="en">Project Status</span>
1199
+ </h5>
1200
+ <p style="color: #94a3b8; font-size: 0.85rem; margin: 0; line-height: 1.5;">
1201
+ <span data-lang="fr">Affiche la branche actuelle, la version, l'etat de synchronisation avec le remote et les migrations EF Core en attente.</span>
1202
+ <span data-lang="en">Shows current branch, version, remote sync status, and pending EF Core migrations.</span>
1203
+ </p>
1204
+ </div>
1205
+
1206
+ <!-- gitflow:3-commit -->
1207
+ <div class="command-card" style="background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1.25rem; border-left: 4px solid #8b5cf6;">
1208
+ <div style="display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem;">
1209
+ <code style="background: #8b5cf6; color: #f8fafc; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.85rem;">/gitflow:3-commit</code>
1210
+ </div>
1211
+ <h5 style="color: #c8d0dc; margin: 0 0 0.5rem 0; font-size: 0.95rem;">
1212
+ <span data-lang="fr">Commit intelligent</span>
1213
+ <span data-lang="en">Smart Commit</span>
1214
+ </h5>
1215
+ <p style="color: #94a3b8; font-size: 0.85rem; margin: 0; line-height: 1.5;">
1216
+ <span data-lang="fr">Cree un commit avec message conventionnel. Valide automatiquement les migrations EF Core et detecte les fichiers sensibles.</span>
1217
+ <span data-lang="en">Creates commit with conventional message. Automatically validates EF Core migrations and detects sensitive files.</span>
1218
+ </p>
1219
+ </div>
1220
+
1221
+ <!-- gitflow:4-plan -->
1222
+ <div class="command-card" style="background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1.25rem; border-left: 4px solid #f97316;">
1223
+ <div style="display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem;">
1224
+ <code style="background: #f97316; color: #f8fafc; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.85rem;">/gitflow:4-plan</code>
1225
+ </div>
1226
+ <h5 style="color: #c8d0dc; margin: 0 0 0.5rem 0; font-size: 0.95rem;">
1227
+ <span data-lang="fr">Planifier l'integration</span>
1228
+ <span data-lang="en">Plan Integration</span>
1229
+ </h5>
1230
+ <p style="color: #94a3b8; font-size: 0.85rem; margin: 0; line-height: 1.5;">
1231
+ <span data-lang="fr">Analyse les conflits potentiels avec develop. Cree un plan detaille de merge. A executer avant /gitflow:5-exec.</span>
1232
+ <span data-lang="en">Analyzes potential conflicts with develop. Creates detailed merge plan. Run before /gitflow:5-exec.</span>
1233
+ </p>
1234
+ </div>
1235
+
1236
+ <!-- gitflow:5-exec -->
1237
+ <div class="command-card" style="background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1.25rem; border-left: 4px solid #f97316;">
1238
+ <div style="display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem;">
1239
+ <code style="background: #f97316; color: #f8fafc; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.85rem;">/gitflow:5-exec</code>
1240
+ </div>
1241
+ <h5 style="color: #c8d0dc; margin: 0 0 0.5rem 0; font-size: 0.95rem;">
1242
+ <span data-lang="fr">Executer le merge</span>
1243
+ <span data-lang="en">Execute Merge</span>
1244
+ </h5>
1245
+ <p style="color: #94a3b8; font-size: 0.85rem; margin: 0; line-height: 1.5;">
1246
+ <span data-lang="fr">Execute le plan d'integration : rebase sur develop, resolution conflits, tests, merge --no-ff, suppression branche locale.</span>
1247
+ <span data-lang="en">Executes integration plan: rebase on develop, conflict resolution, tests, merge --no-ff, delete local branch.</span>
1248
+ </p>
1249
+ </div>
1250
+
1251
+ <!-- gitflow:6-abort -->
1252
+ <div class="command-card" style="background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1.25rem; border-left: 4px solid #ef4444;">
1253
+ <div style="display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem;">
1254
+ <code style="background: #ef4444; color: #f8fafc; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.85rem;">/gitflow:6-abort</code>
1255
+ </div>
1256
+ <h5 style="color: #c8d0dc; margin: 0 0 0.5rem 0; font-size: 0.95rem;">
1257
+ <span data-lang="fr">Annuler l'operation</span>
1258
+ <span data-lang="en">Abort Operation</span>
1259
+ </h5>
1260
+ <p style="color: #94a3b8; font-size: 0.85rem; margin: 0; line-height: 1.5;">
1261
+ <span data-lang="fr">Annule le merge/rebase en cours et restaure l'etat precedent via le checkpoint automatique.</span>
1262
+ <span data-lang="en">Aborts ongoing merge/rebase and restores previous state via automatic checkpoint.</span>
1263
+ </p>
1264
+ </div>
1265
+
1266
+ <!-- gitflow:7-pull-request -->
1267
+ <div class="command-card" style="background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1.25rem; border-left: 4px solid #06b6d4;">
1268
+ <div style="display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem;">
1269
+ <code style="background: #06b6d4; color: #0f172a; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.85rem;">/gitflow:7-pull-request</code>
1270
+ </div>
1271
+ <h5 style="color: #c8d0dc; margin: 0 0 0.5rem 0; font-size: 0.95rem;">
1272
+ <span data-lang="fr">Creer une Pull Request</span>
1273
+ <span data-lang="en">Create Pull Request</span>
1274
+ </h5>
1275
+ <p style="color: #94a3b8; font-size: 0.85rem; margin: 0; line-height: 1.5;">
1276
+ <span data-lang="fr">Cree une PR avec titre et description auto-generes. Execute les checks (build, tests, EF Core) avant creation. Ajoute les labels automatiquement.</span>
1277
+ <span data-lang="en">Creates a PR with auto-generated title and description. Runs checks (build, tests, EF Core) before creation. Adds labels automatically.</span>
1278
+ </p>
1279
+ </div>
1280
+
1281
+ <!-- gitflow:8-review -->
1282
+ <div class="command-card" style="background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1.25rem; border-left: 4px solid #10b981;">
1283
+ <div style="display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem;">
1284
+ <code style="background: #10b981; color: #0f172a; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.85rem;">/gitflow:8-review</code>
1285
+ </div>
1286
+ <h5 style="color: #c8d0dc; margin: 0 0 0.5rem 0; font-size: 0.95rem;">
1287
+ <span data-lang="fr">Review de Pull Request</span>
1288
+ <span data-lang="en">Pull Request Review</span>
1289
+ </h5>
1290
+ <p style="color: #94a3b8; font-size: 0.85rem; margin: 0; line-height: 1.5;">
1291
+ <span data-lang="fr">Analyse la PR avec checklist complete : qualite code, patterns .NET, migrations EF Core, tests et securite. Fournit feedback structure.</span>
1292
+ <span data-lang="en">Analyzes PR with complete checklist: code quality, .NET patterns, EF Core migrations, tests and security. Provides structured feedback.</span>
1293
+ </p>
1294
+ </div>
1295
+
1296
+ <!-- gitflow:9-merge -->
1297
+ <div class="command-card" style="background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1.25rem; border-left: 4px solid #6366f1;">
1298
+ <div style="display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem;">
1299
+ <code style="background: #6366f1; color: #f8fafc; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.85rem;">/gitflow:9-merge</code>
1300
+ </div>
1301
+ <h5 style="color: #c8d0dc; margin: 0 0 0.5rem 0; font-size: 0.95rem;">
1302
+ <span data-lang="fr">Merger la Pull Request</span>
1303
+ <span data-lang="en">Merge Pull Request</span>
1304
+ </h5>
1305
+ <p style="color: #94a3b8; font-size: 0.85rem; margin: 0; line-height: 1.5;">
1306
+ <span data-lang="fr">Merge la PR apres validation des reviews et CI. Strategie automatique : squash (feature) ou merge commit (release/hotfix). Cleanup automatique.</span>
1307
+ <span data-lang="en">Merges PR after review and CI validation. Auto strategy: squash (feature) or merge commit (release/hotfix). Automatic cleanup.</span>
1308
+ </p>
1309
+ </div>
1310
+
1311
+ <!-- gitflow:10-start -->
1312
+ <div class="command-card" style="background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1.25rem; border-left: 4px solid #22c55e;">
1313
+ <div style="display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem;">
1314
+ <code style="background: #22c55e; color: #0f172a; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.85rem;">/gitflow:10-start</code>
1315
+ </div>
1316
+ <h5 style="color: #c8d0dc; margin: 0 0 0.5rem 0; font-size: 0.95rem;">
1317
+ <span data-lang="fr">Demarrer une branche</span>
1318
+ <span data-lang="en">Start a Branch</span>
1319
+ </h5>
1320
+ <p style="color: #94a3b8; font-size: 0.85rem; margin: 0 0 0.5rem 0; line-height: 1.5;">
1321
+ <span data-lang="fr">Cree une nouvelle branche selon le type :</span>
1322
+ <span data-lang="en">Creates a new branch by type:</span>
1323
+ </p>
1324
+ <ul style="color: #94a3b8; font-size: 0.8rem; margin: 0; padding-left: 1.25rem; line-height: 1.6;">
1325
+ <li><code style="color: #22c55e;">feature {nom}</code> <span data-lang="fr">→ depuis develop</span><span data-lang="en">→ from develop</span></li>
1326
+ <li><code style="color: #eab308;">release</code> <span data-lang="fr">→ depuis develop</span><span data-lang="en">→ from develop</span></li>
1327
+ <li><code style="color: #ec4899;">hotfix {nom}</code> <span data-lang="fr">→ depuis main</span><span data-lang="en">→ from main</span></li>
1328
+ </ul>
1329
+ </div>
1330
+
1331
+ <!-- gitflow:11-finish -->
1332
+ <div class="command-card" style="background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1.25rem; border-left: 4px solid #eab308;">
1333
+ <div style="display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem;">
1334
+ <code style="background: #eab308; color: #0f172a; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.85rem;">/gitflow:11-finish</code>
1335
+ </div>
1336
+ <h5 style="color: #c8d0dc; margin: 0 0 0.5rem 0; font-size: 0.95rem;">
1337
+ <span data-lang="fr">Finaliser release/hotfix</span>
1338
+ <span data-lang="en">Finish Release/Hotfix</span>
1339
+ </h5>
1340
+ <p style="color: #94a3b8; font-size: 0.85rem; margin: 0; line-height: 1.5;">
1341
+ <span data-lang="fr">Termine une release ou hotfix : merge dans main, creation du tag de version, merge back vers develop, suppression de la branche et cleanup du worktree.</span>
1342
+ <span data-lang="en">Completes release or hotfix: merge to main, create version tag, merge back to develop, delete branch and cleanup worktree.</span>
1343
+ </p>
1344
+ </div>
1345
+
1346
+ <!-- gitflow:12-cleanup -->
1347
+ <div class="command-card" style="background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1.25rem; border-left: 4px solid #64748b;">
1348
+ <div style="display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem;">
1349
+ <code style="background: #64748b; color: #f8fafc; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.85rem;">/gitflow:12-cleanup</code>
1350
+ <span style="background: #1e293b; color: #94a3b8; padding: 0.15rem 0.4rem; border-radius: 3px; font-size: 0.7rem;">MAINTENANCE</span>
1351
+ </div>
1352
+ <h5 style="color: #c8d0dc; margin: 0 0 0.5rem 0; font-size: 0.95rem;">
1353
+ <span data-lang="fr">Audit et nettoyage worktrees</span>
1354
+ <span data-lang="en">Audit and Cleanup Worktrees</span>
1355
+ </h5>
1356
+ <p style="color: #94a3b8; font-size: 0.85rem; margin: 0; line-height: 1.5;">
1357
+ <span data-lang="fr">Audite et nettoie les worktrees orphelins (branche supprimee) ou obsoletes (inactifs). Execute depuis main ou develop uniquement.</span>
1358
+ <span data-lang="en">Audit and clean up orphan (deleted branch) or stale (inactive) worktrees. Run from main or develop only.</span>
1359
+ </p>
1360
+ </div>
1361
+ </div>
1362
+ </section>
1363
+
1364
+ <!-- Architecture & Structure -->
1365
+ <section id="architecture">
1366
+ <h2>
1367
+ <span data-lang="fr">Architecture &amp; Structure</span>
1368
+ <span data-lang="en">Architecture &amp; Structure</span>
1369
+ </h2>
1370
+
1371
+ <h3 data-lang="fr">Structure des Worktrees</h3>
1372
+ <h3 data-lang="en">Worktrees Structure</h3>
1373
+
1374
+ <p data-lang="fr">
1375
+ GitFlow utilise des <strong>git worktrees</strong> pour isoler chaque branche dans son propre repertoire. Cela permet de travailler sur plusieurs branches simultanement sans avoir a faire de checkout.
1376
+ </p>
1377
+ <p data-lang="en">
1378
+ GitFlow uses <strong>git worktrees</strong> to isolate each branch in its own directory. This allows working on multiple branches simultaneously without having to checkout.
1379
+ </p>
1380
+
1381
+ <div class="code-block">
1382
+ <button class="copy-btn">Copy</button>
1383
+ <pre><code>parent/
1384
+ ├── my-project/ # Repertoire principal du projet
1385
+ │ ├── <a href=".claude/gitflow/" class="file-link">.claude/gitflow/</a>
1386
+ │ │ ├── <a href=".claude/gitflow/config.json" class="file-link">config.json</a> # Configuration GitFlow
1387
+ │ │ ├── <a href=".claude/gitflow/plans/" class="file-link">plans/</a> # Plans d'integration
1388
+ │ │ ├── <a href=".claude/gitflow/logs/" class="file-link">logs/</a> # Historique des operations
1389
+ │ │ ├── <a href=".claude/gitflow/migrations/" class="file-link">migrations/</a> # Snapshots EF Core
1390
+ │ │ ├── backup/ # Sauvegardes de config
1391
+ │ │ └── cache/ # Cache cross-branch
1392
+ │ └── ...
1393
+
1394
+ └── worktrees/ # Worktrees organises
1395
+ ├── main/ # Worktree permanent (production)
1396
+ ├── develop/ # Worktree permanent (integration)
1397
+ ├── features/ # Features en cours
1398
+ │ ├── user-auth/
1399
+ │ └── payment-gateway/
1400
+ ├── releases/ # Releases en cours
1401
+ │ └── v1.2.0/
1402
+ └── hotfixes/ # Hotfixes en cours
1403
+ └── critical-fix/</code></pre>
1404
+ </div>
1405
+
1406
+ <div class="alert alert-info">
1407
+ <span class="alert-icon">&#128161;</span>
1408
+ <div class="alert-content">
1409
+ <h5 data-lang="fr">Navigation entre worktrees</h5>
1410
+ <h5 data-lang="en">Navigating between worktrees</h5>
1411
+ <p data-lang="fr">
1412
+ Pour travailler sur une feature : <code>cd ../worktrees/features/ma-feature/</code><br/>
1413
+ Pour ouvrir dans VS Code : <code>code ../worktrees/features/ma-feature/</code>
1414
+ </p>
1415
+ <p data-lang="en">
1416
+ To work on a feature: <code>cd ../worktrees/features/my-feature/</code><br/>
1417
+ To open in VS Code: <code>code ../worktrees/features/my-feature/</code>
1418
+ </p>
1419
+ </div>
1420
+ </div>
1421
+
1422
+ <h3 data-lang="fr">Fichiers de configuration</h3>
1423
+ <h3 data-lang="en">Configuration Files</h3>
1424
+
1425
+ <div class="table-container">
1426
+ <table>
1427
+ <thead>
1428
+ <tr>
1429
+ <th>
1430
+ <span data-lang="fr">Fichier</span>
1431
+ <span data-lang="en">File</span>
1432
+ </th>
1433
+ <th>
1434
+ <span data-lang="fr">Description</span>
1435
+ <span data-lang="en">Description</span>
1436
+ </th>
1437
+ </tr>
1438
+ </thead>
1439
+ <tbody>
1440
+ <tr>
1441
+ <td><a href=".claude/gitflow/config.json" class="file-link"><code>.claude/gitflow/config.json</code></a></td>
1442
+ <td>
1443
+ <span data-lang="fr">Configuration principale : versioning, branches, EF Core, worktrees</span>
1444
+ <span data-lang="en">Main configuration: versioning, branches, EF Core, worktrees</span>
1445
+ </td>
1446
+ </tr>
1447
+ <tr>
1448
+ <td><a href=".claude/gitflow/plans/" class="file-link"><code>.claude/gitflow/plans/</code></a></td>
1449
+ <td>
1450
+ <span data-lang="fr">Plans d'integration generes par /gitflow:4-plan</span>
1451
+ <span data-lang="en">Integration plans generated by /gitflow:4-plan</span>
1452
+ </td>
1453
+ </tr>
1454
+ <tr>
1455
+ <td><a href=".claude/gitflow/logs/" class="file-link"><code>.claude/gitflow/logs/</code></a></td>
1456
+ <td>
1457
+ <span data-lang="fr">Historique des operations et checkpoints</span>
1458
+ <span data-lang="en">Operations history and checkpoints</span>
1459
+ </td>
1460
+ </tr>
1461
+ <tr>
1462
+ <td><a href=".claude/gitflow/migrations/" class="file-link"><code>.claude/gitflow/migrations/</code></a></td>
1463
+ <td>
1464
+ <span data-lang="fr">Snapshots EF Core pour detection de conflits</span>
1465
+ <span data-lang="en">EF Core snapshots for conflict detection</span>
1466
+ </td>
1467
+ </tr>
1468
+ </tbody>
1469
+ </table>
1470
+ </div>
1471
+
1472
+ <h3 data-lang="fr">Creation automatique</h3>
1473
+ <h3 data-lang="en">Automatic Creation</h3>
1474
+
1475
+ <p data-lang="fr">
1476
+ La structure est creee automatiquement par <code>/gitflow:1-init</code>. Les worktrees sont crees lors du premier <code>/gitflow:10-start</code>.
1477
+ </p>
1478
+ <p data-lang="en">
1479
+ The structure is automatically created by <code>/gitflow:1-init</code>. Worktrees are created on the first <code>/gitflow:10-start</code>.
1480
+ </p>
1481
+
1482
+ <div class="code-block">
1483
+ <button class="copy-btn">Copy</button>
1484
+ <pre><code># Initialiser GitFlow avec worktrees
1485
+ /gitflow:1-init --with-worktrees
1486
+
1487
+ # Demarrer une feature (cree le worktree automatiquement)
1488
+ /gitflow:10-start feature user-auth
1489
+ # → Worktree cree: ../worktrees/features/user-auth/
1490
+
1491
+ # Travailler sans worktree (meme repertoire)
1492
+ /gitflow:10-start feature test --no-worktree</code></pre>
1493
+ </div>
1494
+ </section>
1495
+
1496
+ <!-- Best Practices -->
1497
+ <section id="best-practices">
1498
+ <h2>
1499
+ <span data-lang="fr">Bonnes pratiques</span>
1500
+ <span data-lang="en">Best Practices</span>
1501
+ </h2>
1502
+
1503
+ <div class="best-practice">
1504
+ <h4>
1505
+ <span class="bp-icon">&#9989;</span>
1506
+ <span data-lang="fr">Nommage des branches</span>
1507
+ <span data-lang="en">Branch Naming</span>
1508
+ </h4>
1509
+ <p data-lang="fr">Utilisez des noms descriptifs et kebab-case :</p>
1510
+ <p data-lang="en">Use descriptive names with kebab-case:</p>
1511
+ <div class="code-block">
1512
+ <pre><code># Bon
1513
+ feature/user-authentication
1514
+ feature/add-payment-gateway
1515
+ hotfix/fix-login-redirect
1516
+ release/v2.1.0
1517
+
1518
+ # Mauvais
1519
+ feature/auth
1520
+ feature/MyNewFeature
1521
+ hotfix/fix
1522
+ release/new</code></pre>
1523
+ </div>
1524
+ </div>
1525
+
1526
+ <div class="best-practice">
1527
+ <h4>
1528
+ <span class="bp-icon">&#9989;</span>
1529
+ <span data-lang="fr">Commits atomiques</span>
1530
+ <span data-lang="en">Atomic Commits</span>
1531
+ </h4>
1532
+ <p data-lang="fr">
1533
+ Chaque commit doit representer un changement logique unique. Utilisez <code>/gitflow:3-commit</code> pour des commits structures.
1534
+ </p>
1535
+ <p data-lang="en">
1536
+ Each commit should represent a single logical change. Use <code>/gitflow:3-commit</code> for structured commits.
1537
+ </p>
1538
+ <div class="code-block">
1539
+ <pre><code># Bon - Commits atomiques
1540
+ feat(auth): add login form component
1541
+ feat(auth): implement JWT token validation
1542
+ fix(auth): handle expired token refresh
1543
+
1544
+ # Mauvais - Commit fourre-tout
1545
+ WIP: auth stuff</code></pre>
1546
+ </div>
1547
+ </div>
1548
+
1549
+ <div class="best-practice">
1550
+ <h4>
1551
+ <span class="bp-icon">&#9989;</span>
1552
+ <span data-lang="fr">Rebase avant merge</span>
1553
+ <span data-lang="en">Rebase Before Merge</span>
1554
+ </h4>
1555
+ <p data-lang="fr">
1556
+ Avant de merger une feature, rebaser sur develop pour avoir un historique propre et eviter les conflits de merge.
1557
+ </p>
1558
+ <p data-lang="en">
1559
+ Before merging a feature, rebase on develop to have a clean history and avoid merge conflicts.
1560
+ </p>
1561
+ <div class="code-block">
1562
+ <pre><code># Claude Tools le fait automatiquement avec /gitflow:5-exec
1563
+ # Manuellement :
1564
+ git checkout feature/my-feature
1565
+ git fetch origin
1566
+ git rebase origin/develop
1567
+ # Resoudre les conflits si necessaire
1568
+ git checkout develop
1569
+ git merge --no-ff feature/my-feature</code></pre>
1570
+ </div>
1571
+ </div>
1572
+
1573
+ <div class="best-practice">
1574
+ <h4>
1575
+ <span class="bp-icon">&#9989;</span>
1576
+ <span data-lang="fr">Ne jamais push sur main directement</span>
1577
+ <span data-lang="en">Never Push to Main Directly</span>
1578
+ </h4>
1579
+ <p data-lang="fr">
1580
+ Toutes les modifications doivent passer par des branches feature, release ou hotfix. Claude Tools protege automatiquement les branches principales.
1581
+ </p>
1582
+ <p data-lang="en">
1583
+ All changes must go through feature, release or hotfix branches. Claude Tools automatically protects main branches.
1584
+ </p>
1585
+ </div>
1586
+
1587
+ <div class="best-practice">
1588
+ <h4>
1589
+ <span class="bp-icon">&#128465;</span>
1590
+ <span data-lang="fr">Nettoyer regulierement les worktrees</span>
1591
+ <span data-lang="en">Regularly Clean Up Worktrees</span>
1592
+ </h4>
1593
+ <p data-lang="fr">
1594
+ Apres chaque release ou hotfix, les worktrees sont nettoyes automatiquement. Pour un audit complet, utilisez <code>/gitflow:12-cleanup</code> depuis main ou develop.
1595
+ </p>
1596
+ <p data-lang="en">
1597
+ After each release or hotfix, worktrees are automatically cleaned up. For a full audit, use <code>/gitflow:12-cleanup</code> from main or develop.
1598
+ </p>
1599
+ <div class="code-block">
1600
+ <pre><code># Audit et nettoyage complet (depuis main ou develop)
1601
+ /gitflow:12-cleanup
1602
+
1603
+ # Audit seul sans suppression
1604
+ /gitflow:12-cleanup --dry-run
1605
+
1606
+ # Nettoyage automatique des orphelins
1607
+ /gitflow:12-cleanup --force</code></pre>
1608
+ </div>
1609
+ </div>
1610
+
1611
+ <div class="best-practice">
1612
+ <h4>
1613
+ <span class="bp-icon">&#9989;</span>
1614
+ <span data-lang="fr">Tester avant de merger</span>
1615
+ <span data-lang="en">Test Before Merging</span>
1616
+ </h4>
1617
+ <p data-lang="fr">
1618
+ <code>/gitflow:5-exec</code> execute automatiquement les tests, le build et le lint avant tout merge.
1619
+ </p>
1620
+ <p data-lang="en">
1621
+ <code>/gitflow:5-exec</code> automatically runs tests, build and lint before any merge.
1622
+ </p>
1623
+ </div>
1624
+
1625
+ <div class="alert alert-warning">
1626
+ <span class="alert-icon">&#9888;</span>
1627
+ <div class="alert-content">
1628
+ <h5 data-lang="fr">Eviter les anti-patterns</h5>
1629
+ <h5 data-lang="en">Avoid Anti-patterns</h5>
1630
+ <div class="feature-grid">
1631
+ <div class="feature-item">
1632
+ <span class="feature-icon">&#10060;</span>
1633
+ <span class="feature-text" data-lang="fr">Ne jamais force push sur main ou develop</span>
1634
+ <span class="feature-text" data-lang="en">Never force push to main or develop</span>
1635
+ </div>
1636
+ <div class="feature-item">
1637
+ <span class="feature-icon">&#10060;</span>
1638
+ <span class="feature-text" data-lang="fr">Ne pas merger une feature non testee</span>
1639
+ <span class="feature-text" data-lang="en">Don't merge an untested feature</span>
1640
+ </div>
1641
+ <div class="feature-item">
1642
+ <span class="feature-icon">&#10060;</span>
1643
+ <span class="feature-text" data-lang="fr">Ne pas laisser des branches ouvertes trop longtemps</span>
1644
+ <span class="feature-text" data-lang="en">Don't leave branches open too long</span>
1645
+ </div>
1646
+ <div class="feature-item">
1647
+ <span class="feature-icon">&#10060;</span>
1648
+ <span class="feature-text" data-lang="fr">Ne pas ignorer les conflits de ModelSnapshot (EF Core)</span>
1649
+ <span class="feature-text" data-lang="en">Don't ignore ModelSnapshot conflicts (EF Core)</span>
1650
+ </div>
1651
+ </div>
1652
+ </div>
1653
+ </div>
1654
+ </section>
1655
+
1656
+ <!-- Commands -->
1657
+ <section id="commands">
1658
+ <h2>
1659
+ <span data-lang="fr">Commandes GitFlow</span>
1660
+ <span data-lang="en">GitFlow Commands</span>
1661
+ </h2>
1662
+
1663
+ <p data-lang="fr">Claude Tools fournit 12 commandes pour gerer le workflow GitFlow. Chaque commande inclut son prompt complet.</p>
1664
+ <p data-lang="en">Claude Tools provides 12 commands to manage the GitFlow workflow. Each command includes its complete prompt.</p>
1665
+
1666
+ <!-- Command: /gitflow:1-init -->
1667
+ <div class="command-card">
1668
+ <div class="command-header">
1669
+ <code class="command-name">/gitflow:1-init</code>
1670
+ <span class="tag tag-command">Setup</span>
1671
+ </div>
1672
+ <div class="command-body">
1673
+ <p data-lang="fr">
1674
+ Cette commande est le point d'entree obligatoire pour tout nouveau projet utilisant GitFlow. Elle analyse le repository existant pour detecter la source de version (package.json, .csproj, VERSION file), identifie les branches deja presentes, et detecte automatiquement si le projet utilise Entity Framework Core. A partir de cette analyse, elle genere un plan d'initialisation detaille que l'utilisateur peut valider avant execution. Une fois approuve, elle cree la structure complete : branches main et develop, dossier .claude/gitflow/ avec la configuration, et met a jour CLAUDE.md avec les informations du projet. Cette approche en deux temps (plan puis execution) garantit une initialisation sans surprise et parfaitement adaptee au contexte du projet.
1675
+ </p>
1676
+ <p data-lang="en">
1677
+ This command is the mandatory entry point for any new project using GitFlow. It analyzes the existing repository to detect the version source (package.json, .csproj, VERSION file), identifies branches already present, and automatically detects if the project uses Entity Framework Core. From this analysis, it generates a detailed initialization plan that the user can validate before execution. Once approved, it creates the complete structure: main and develop branches, .claude/gitflow/ folder with configuration, and updates CLAUDE.md with project information. This two-step approach (plan then execution) ensures a surprise-free initialization perfectly adapted to the project context.
1678
+ </p>
1679
+ <div class="code-block">
1680
+ <button class="copy-btn">Copy</button>
1681
+ <pre><code>/gitflow:1-init</code></pre>
1682
+ </div>
1683
+ </div>
1684
+ </div>
1685
+
1686
+ <!-- Command: /gitflow:2-status -->
1687
+ <div class="command-card">
1688
+ <div class="command-header">
1689
+ <code class="command-name">/gitflow:2-status</code>
1690
+ <span class="tag tag-command">Info</span>
1691
+ </div>
1692
+ <div class="command-body">
1693
+ <p data-lang="fr">
1694
+ Cette commande est votre tableau de bord avant toute action GitFlow. Elle collecte et affiche l'etat complet du repository : branche courante et son type (feature/release/hotfix), version actuelle lue depuis la source configuree, synchronisation avec develop et main (commits ahead/behind), et etat des migrations EF Core. Elle detecte egalement les risques potentiels comme une divergence importante avec develop, des migrations non commitees, ou des conflits ModelSnapshot imminents. Utilisez-la systematiquement avant de commencer une operation pour avoir une vision claire de la situation. L'option --all-branches permet de voir l'etat des migrations sur toutes les branches actives avec un ordre de merge recommande.
1695
+ </p>
1696
+ <p data-lang="en">
1697
+ This command is your dashboard before any GitFlow action. It collects and displays the complete repository state: current branch and its type (feature/release/hotfix), current version read from the configured source, synchronization with develop and main (commits ahead/behind), and EF Core migrations status. It also detects potential risks such as significant divergence from develop, uncommitted migrations, or imminent ModelSnapshot conflicts. Use it systematically before starting an operation to have a clear view of the situation. The --all-branches option shows migration status across all active branches with a recommended merge order.
1698
+ </p>
1699
+ <div class="code-block">
1700
+ <button class="copy-btn">Copy</button>
1701
+ <pre><code>/gitflow:2-status
1702
+
1703
+ # Voir toutes les branches avec migrations
1704
+ /gitflow:2-status --all-branches</code></pre>
1705
+ </div>
1706
+ </div>
1707
+ </div>
1708
+
1709
+ <!-- Command: /gitflow:3-commit -->
1710
+ <div class="command-card">
1711
+ <div class="command-header">
1712
+ <code class="command-name">/gitflow:3-commit</code>
1713
+ <span class="tag tag-command">Git</span>
1714
+ </div>
1715
+ <div class="command-body">
1716
+ <p data-lang="fr">
1717
+ Cette commande remplace le commit Git standard par un commit intelligent adapte au workflow GitFlow et EF Core. Elle analyse automatiquement les fichiers modifies pour valider que les migrations EF Core sont completes (les 3 fichiers requis), detecte les operations destructives comme DropTable ou DropColumn qui necessitent une confirmation explicite, et genere un message de commit structure selon les conventions (feat:, fix:, db:). Si vous travaillez dans un worktree, elle propose automatiquement de pousser vers le remote apres le commit. Cette validation en amont evite les erreurs courantes comme committer une migration incomplete ou oublier de signaler une operation destructive a l'equipe.
1718
+ </p>
1719
+ <p data-lang="en">
1720
+ This command replaces the standard Git commit with a smart commit adapted to GitFlow and EF Core workflow. It automatically analyzes modified files to validate that EF Core migrations are complete (the 3 required files), detects destructive operations like DropTable or DropColumn that require explicit confirmation, and generates a structured commit message following conventions (feat:, fix:, db:). If you're working in a worktree, it automatically offers to push to remote after the commit. This upstream validation prevents common errors like committing an incomplete migration or forgetting to signal a destructive operation to the team.
1721
+ </p>
1722
+ <div class="code-block">
1723
+ <button class="copy-btn">Copy</button>
1724
+ <pre><code>/gitflow:3-commit</code></pre>
1725
+ </div>
1726
+
1727
+ <div class="alert alert-info">
1728
+ <span class="alert-icon">&#128640;</span>
1729
+ <div class="alert-content">
1730
+ <h5 data-lang="fr">Push automatique pour worktrees</h5>
1731
+ <h5 data-lang="en">Automatic push for worktrees</h5>
1732
+ <p data-lang="fr">
1733
+ Si vous travaillez dans un <strong>git worktree</strong>, le push est automatique apres le commit. Configurable dans <code>.claude/gitflow/config.json</code> via <code>workflow.push.afterCommit</code>.
1734
+ </p>
1735
+ <p data-lang="en">
1736
+ If you're working in a <strong>git worktree</strong>, push is automatic after commit. Configurable in <code>.claude/gitflow/config.json</code> via <code>workflow.push.afterCommit</code>.
1737
+ </p>
1738
+ </div>
1739
+ </div>
1740
+ </div>
1741
+ </div>
1742
+
1743
+ <!-- Command: /gitflow:4-plan -->
1744
+ <div class="command-card">
1745
+ <div class="command-header">
1746
+ <code class="command-name">/gitflow:4-plan</code>
1747
+ <span class="tag tag-workflow">Planning</span>
1748
+ </div>
1749
+ <div class="command-body">
1750
+ <p data-lang="fr">
1751
+ Cette commande prepare une integration complexe en analysant tous les aspects critiques avant l'execution. Elle examine la branche courante pour determiner le nombre de commits a integrer, detecte les migrations EF Core presentes et verifie s'il y a un conflit ModelSnapshot avec la branche cible. En fonction du type de branche (feature, release, hotfix), elle determine la strategie optimale : rebase simple, rebase avec recreation de migration si conflit, ou merge direct. Le resultat est un fichier plan detaille dans .claude/gitflow/plans/ qui liste toutes les etapes a executer, les risques identifies, et les actions de rollback possibles. Ce plan peut etre relu et valide avant execution avec /gitflow:5-exec.
1752
+ </p>
1753
+ <p data-lang="en">
1754
+ This command prepares a complex integration by analyzing all critical aspects before execution. It examines the current branch to determine the number of commits to integrate, detects present EF Core migrations and checks for ModelSnapshot conflicts with the target branch. Based on branch type (feature, release, hotfix), it determines the optimal strategy: simple rebase, rebase with migration recreation if conflict, or direct merge. The result is a detailed plan file in .claude/gitflow/plans/ listing all steps to execute, identified risks, and possible rollback actions. This plan can be reviewed and validated before execution with /gitflow:5-exec.
1755
+ </p>
1756
+ <div class="code-block">
1757
+ <button class="copy-btn">Copy</button>
1758
+ <pre><code>/gitflow:4-plan</code></pre>
1759
+ </div>
1760
+ </div>
1761
+ </div>
1762
+
1763
+ <!-- Command: /gitflow:5-exec -->
1764
+ <div class="command-card">
1765
+ <div class="command-header">
1766
+ <code class="command-name">/gitflow:5-exec</code>
1767
+ <span class="tag tag-workflow">Execution</span>
1768
+ </div>
1769
+ <div class="command-body">
1770
+ <p data-lang="fr">
1771
+ Cette commande execute le plan genere par /gitflow:4-plan de maniere securisee et tracable. Elle commence par creer un checkpoint permettant un rollback en cas de probleme, puis execute chaque etape du plan : fetch des dernieres modifications, rebase sur la branche cible si necessaire (avec gestion automatique des conflits ModelSnapshot), merge avec l'option --no-ff pour preserver l'historique, et mise a jour du versioning. Pour les releases et hotfixes, elle gere automatiquement le tag Git et l'increment de version. A chaque etape, elle valide le build et les tests. En cas d'echec, elle peut etre reprise avec --resume ou annulee avec /gitflow:6-abort. L'option --dry-run permet de simuler l'execution sans rien modifier.
1772
+ </p>
1773
+ <p data-lang="en">
1774
+ This command executes the plan generated by /gitflow:4-plan in a secure and traceable manner. It starts by creating a checkpoint allowing rollback in case of issues, then executes each plan step: fetching latest changes, rebasing on target branch if needed (with automatic ModelSnapshot conflict handling), merging with --no-ff option to preserve history, and version update. For releases and hotfixes, it automatically handles Git tag and version increment. At each step, it validates build and tests. On failure, it can be resumed with --resume or cancelled with /gitflow:6-abort. The --dry-run option allows simulating execution without modifying anything.
1775
+ </p>
1776
+ <div class="code-block">
1777
+ <button class="copy-btn">Copy</button>
1778
+ <pre><code>/gitflow:5-exec</code></pre>
1779
+ </div>
1780
+ </div>
1781
+ </div>
1782
+
1783
+ <!-- Command: /gitflow:6-abort -->
1784
+ <div class="command-card">
1785
+ <div class="command-header">
1786
+ <code class="command-name">/gitflow:6-abort</code>
1787
+ <span class="tag tag-danger">Rollback</span>
1788
+ </div>
1789
+ <div class="command-body">
1790
+ <p data-lang="fr">
1791
+ Cette commande est votre filet de securite quand une operation GitFlow tourne mal. Elle detecte automatiquement l'etat actuel du repository (merge en cours, rebase interrompu, conflit non resolu) et propose les options de recuperation appropriees. Elle peut annuler un merge avec git merge --abort, restaurer l'etat complet depuis un checkpoint sauvegarde par /gitflow:5-exec, abandonner completement une branche feature/hotfix en la supprimant proprement, ou nettoyer le working directory. Avant toute operation destructive, elle affiche clairement ce qui sera perdu et demande une confirmation explicite. C'est la commande a utiliser en cas de probleme pour revenir a un etat stable sans perdre de travail.
1792
+ </p>
1793
+ <p data-lang="en">
1794
+ This command is your safety net when a GitFlow operation goes wrong. It automatically detects the current repository state (ongoing merge, interrupted rebase, unresolved conflict) and offers appropriate recovery options. It can cancel a merge with git merge --abort, restore complete state from a checkpoint saved by /gitflow:5-exec, completely abandon a feature/hotfix branch by cleanly deleting it, or clean the working directory. Before any destructive operation, it clearly shows what will be lost and asks for explicit confirmation. This is the command to use when problems occur to return to a stable state without losing work.
1795
+ </p>
1796
+ <div class="code-block">
1797
+ <button class="copy-btn">Copy</button>
1798
+ <pre><code>/gitflow:6-abort</code></pre>
1799
+ </div>
1800
+ </div>
1801
+ </div>
1802
+
1803
+ <!-- Command: /gitflow:7-pull-request -->
1804
+ <div class="command-card">
1805
+ <div class="command-header">
1806
+ <code class="command-name">/gitflow:7-pull-request</code>
1807
+ <span class="tag tag-info">PR</span>
1808
+ </div>
1809
+ <div class="command-body">
1810
+ <p data-lang="fr">
1811
+ Cette commande automatise la creation de Pull Request en generant un contenu professionnel et complet. Elle commence par verifier que vous etes sur une branche de travail valide (feature, release, hotfix), execute les pre-checks (build, tests) et detecte la presence de migrations EF Core. Elle genere ensuite automatiquement le titre depuis le nom de branche, construit la description a partir des commits effectues, ajoute les labels appropries (feature, bugfix, enhancement) et lie les issues mentionnees. La PR ciblee est determinee automatiquement : develop pour les features, main pour les releases et hotfixes. L'option --draft permet de creer une PR en mode brouillon pour obtenir des feedbacks avant finalisation.
1812
+ </p>
1813
+ <p data-lang="en">
1814
+ This command automates Pull Request creation by generating professional and complete content. It starts by verifying you're on a valid working branch (feature, release, hotfix), runs pre-checks (build, tests) and detects EF Core migrations presence. It then automatically generates the title from the branch name, builds the description from commits made, adds appropriate labels (feature, bugfix, enhancement) and links mentioned issues. The target PR is determined automatically: develop for features, main for releases and hotfixes. The --draft option creates a draft PR to get feedback before finalization.
1815
+ </p>
1816
+ <div class="code-block">
1817
+ <button class="copy-btn">Copy</button>
1818
+ <pre><code># PR vers develop (default)
1819
+ /gitflow:7-pull-request
1820
+
1821
+ # PR vers main (release/hotfix)
1822
+ /gitflow:7-pull-request main
1823
+
1824
+ # PR en draft
1825
+ /gitflow:7-pull-request --draft</code></pre>
1826
+ </div>
1827
+ </div>
1828
+ </div>
1829
+
1830
+ <!-- Command: /gitflow:8-review -->
1831
+ <div class="command-card">
1832
+ <div class="command-header">
1833
+ <code class="command-name">/gitflow:8-review</code>
1834
+ <span class="tag tag-success">Review</span>
1835
+ </div>
1836
+ <div class="command-body">
1837
+ <p data-lang="fr">
1838
+ Cette commande effectue une revue de code structuree et exhaustive d'une Pull Request. Elle analyse le diff complet en verifiant plusieurs aspects : qualite du code (patterns existants, duplication, nommage, gestion d'erreurs), bonnes pratiques .NET (injection de dependances, async/await, null safety, LINQ), migrations EF Core si presentes (reversibilite, breaking changes, indexes, foreign keys), securite (exposition de donnees sensibles, validation d'inputs, SQL injection) et couverture de tests. Elle genere un rapport structure avec une recommandation finale (APPROVE ou CHANGES_REQUESTED). Les options --security et --ef-core permettent de se concentrer sur un aspect specifique, tandis que --quick produit une checklist rapide pour les petits changements.
1839
+ </p>
1840
+ <p data-lang="en">
1841
+ This command performs a structured and exhaustive code review of a Pull Request. It analyzes the complete diff checking multiple aspects: code quality (existing patterns, duplication, naming, error handling), .NET best practices (dependency injection, async/await, null safety, LINQ), EF Core migrations if present (reversibility, breaking changes, indexes, foreign keys), security (sensitive data exposure, input validation, SQL injection) and test coverage. It generates a structured report with a final recommendation (APPROVE or CHANGES_REQUESTED). The --security and --ef-core options focus on specific aspects, while --quick produces a fast checklist for small changes.
1842
+ </p>
1843
+ <div class="code-block">
1844
+ <button class="copy-btn">Copy</button>
1845
+ <pre><code># Review PR #123
1846
+ /gitflow:8-review 123
1847
+
1848
+ # Focus securite
1849
+ /gitflow:8-review 123 --security
1850
+
1851
+ # Focus migrations EF Core
1852
+ /gitflow:8-review 123 --ef-core</code></pre>
1853
+ </div>
1854
+ </div>
1855
+ </div>
1856
+
1857
+ <!-- Command: /gitflow:9-merge -->
1858
+ <div class="command-card">
1859
+ <div class="command-header">
1860
+ <code class="command-name">/gitflow:9-merge</code>
1861
+ <span class="tag tag-primary">Merge</span>
1862
+ </div>
1863
+ <div class="command-body">
1864
+ <p data-lang="fr">
1865
+ Cette commande finalise l'integration d'une Pull Request de maniere securisee et controlee. Elle verifie d'abord tous les pre-requis : approbations des reviewers, statut CI (tous les checks doivent etre verts), absence de conflits et branche a jour. La strategie de merge est determinee automatiquement selon le type de branche : squash merge pour les features (historique propre dans develop), merge commit pour les releases et hotfixes (preservation de l'historique complet). Apres le merge, elle nettoie automatiquement la branche source sur le remote et met a jour les branches locales. L'option --auto permet d'activer l'auto-merge qui s'executera des que la CI sera verte.
1866
+ </p>
1867
+ <p data-lang="en">
1868
+ This command finalizes Pull Request integration in a secure and controlled manner. It first verifies all prerequisites: reviewer approvals, CI status (all checks must be green), no conflicts and branch up to date. Merge strategy is determined automatically based on branch type: squash merge for features (clean history in develop), merge commit for releases and hotfixes (full history preservation). After merge, it automatically cleans up the source branch on remote and updates local branches. The --auto option enables auto-merge that will execute as soon as CI is green.
1869
+ </p>
1870
+ <div class="code-block">
1871
+ <button class="copy-btn">Copy</button>
1872
+ <pre><code># Merge PR #123
1873
+ /gitflow:9-merge 123
1874
+
1875
+ # Auto-merge quand CI vert
1876
+ /gitflow:9-merge 123 --auto
1877
+
1878
+ # Simulation
1879
+ /gitflow:9-merge 123 --dry-run</code></pre>
1880
+ </div>
1881
+ </div>
1882
+ </div>
1883
+
1884
+ <!-- Command: /gitflow:10-start -->
1885
+ <div class="command-card">
1886
+ <div class="command-header">
1887
+ <code class="command-name">/gitflow:10-start</code>
1888
+ <span class="tag tag-workflow">Branch</span>
1889
+ </div>
1890
+ <div class="command-body">
1891
+ <p data-lang="fr">
1892
+ Cette commande est le point de depart pour tout nouveau travail dans GitFlow. Elle cree la branche appropriee (feature depuis develop, release depuis develop, hotfix depuis main) et l'isole dans un worktree separe par defaut. Cette isolation permet de travailler sur plusieurs branches simultanement sans avoir a switcher constamment. L'assistant analyse d'abord le contexte du projet (version actuelle, commits en avance sur develop, branches existantes) puis pose des questions adaptees pour guider la creation. Pour les releases, elle detecte si main a diverge et propose de le resynchroniser, et si trop de migrations EF Core existent, elle propose de les consolider. L'option --no-worktree permet de creer la branche dans le repertoire courant si les worktrees ne sont pas souhaites.
1893
+ </p>
1894
+ <p data-lang="en">
1895
+ This command is the starting point for any new work in GitFlow. It creates the appropriate branch (feature from develop, release from develop, hotfix from main) and isolates it in a separate worktree by default. This isolation allows working on multiple branches simultaneously without constantly switching. The assistant first analyzes project context (current version, commits ahead on develop, existing branches) then asks adapted questions to guide creation. For releases, it detects if main has diverged and offers to resync it, and if too many EF Core migrations exist, it offers to consolidate them. The --no-worktree option creates the branch in the current directory if worktrees are not desired.
1896
+ </p>
1897
+ <div class="code-block">
1898
+ <button class="copy-btn">Copy</button>
1899
+ <pre><code># Demarrer une feature
1900
+ /gitflow:10-start feature authentication
1901
+
1902
+ # Demarrer une release (avec options avancees EF Core)
1903
+ /gitflow:10-start release
1904
+
1905
+ # Demarrer un hotfix
1906
+ /gitflow:10-start hotfix critical-bug
1907
+
1908
+ # Sans worktree (meme repertoire)
1909
+ /gitflow:10-start feature test --no-worktree</code></pre>
1910
+ </div>
1911
+
1912
+ <div class="alert alert-info" style="margin-top: 1rem;">
1913
+ <span class="alert-icon">&#128161;</span>
1914
+ <div class="alert-content">
1915
+ <h5 data-lang="fr">Fonctionnalites avancees pour releases</h5>
1916
+ <h5 data-lang="en">Advanced features for releases</h5>
1917
+ <p data-lang="fr">
1918
+ Lors de la creation d'une release, l'assistant detecte automatiquement :
1919
+ <br/>• <strong>Main divergent</strong> : Si main contient des commits absents de develop, propose de reset main via cette release
1920
+ <br/>• <strong>Migrations multiples</strong> : Si plus de 3 migrations existent, propose de les consolider en une seule migration propre
1921
+ </p>
1922
+ <p data-lang="en">
1923
+ When creating a release, the assistant automatically detects:
1924
+ <br/>• <strong>Divergent main</strong>: If main contains commits missing from develop, offers to reset main via this release
1925
+ <br/>• <strong>Multiple migrations</strong>: If more than 3 migrations exist, offers to consolidate them into a single clean migration
1926
+ </p>
1927
+ </div>
1928
+ </div>
1929
+ </div>
1930
+ </div>
1931
+
1932
+ <!-- Command: /gitflow:11-finish -->
1933
+ <div class="command-card">
1934
+ <div class="command-header">
1935
+ <code class="command-name">/gitflow:11-finish</code>
1936
+ <span class="tag tag-workflow">Branch</span>
1937
+ </div>
1938
+ <div class="command-body">
1939
+ <p data-lang="fr">
1940
+ Cette commande finalise proprement une branche apres que sa Pull Request a ete mergee. Le comportement depend du type de branche : pour une feature, elle effectue simplement le nettoyage (suppression de la branche locale et remote). Pour une release ou un hotfix, elle execute le workflow complet GitFlow : checkout de main, creation du tag de version, merge back vers develop pour synchroniser les branches, puis nettoyage. Pour les hotfixes, elle gere automatiquement l'increment de version PATCH et la mise a jour du fichier source de version avant de creer le tag. Le worktree associe est egalement supprime si present. Cette commande garantit que toutes les etapes du GitFlow sont correctement executees apres un merge.
1941
+ </p>
1942
+ <p data-lang="en">
1943
+ This command properly finalizes a branch after its Pull Request has been merged. Behavior depends on branch type: for a feature, it simply performs cleanup (local and remote branch deletion). For a release or hotfix, it executes the complete GitFlow workflow: checkout main, create version tag, merge back to develop to sync branches, then cleanup. For hotfixes, it automatically handles PATCH version increment and version source file update before creating the tag. The associated worktree is also removed if present. This command ensures all GitFlow steps are properly executed after a merge.
1944
+ </p>
1945
+ <div class="code-block">
1946
+ <button class="copy-btn">Copy</button>
1947
+ <pre><code>/gitflow:11-finish</code></pre>
1948
+ </div>
1949
+ </div>
1950
+ </div>
1951
+
1952
+ <!-- Command: /gitflow:12-cleanup -->
1953
+ <div class="command-card">
1954
+ <div class="command-header">
1955
+ <code class="command-name">/gitflow:12-cleanup</code>
1956
+ <span class="tag tag-workflow">Maintenance</span>
1957
+ </div>
1958
+ <div class="command-body">
1959
+ <p data-lang="fr">
1960
+ Cette commande de maintenance audite et nettoie les worktrees accumules au fil du temps. Elle categorise chaque worktree trouve : permanents (main, develop - jamais supprimes), actifs (branches avec travail en cours), orphelins (la branche Git associee n'existe plus), stale (inactifs depuis plus de 30 jours), ou dirty (modifications locales non commitees). L'audit affiche un rapport complet avec recommandations. En mode interactif, elle propose de supprimer les worktrees orphelins et stale un par un avec confirmation. Elle doit etre executee depuis main ou develop pour eviter de supprimer le worktree courant. Cette commande est automatiquement appelee par /gitflow:11-finish et /gitflow:6-abort pour maintenir l'environnement propre.
1961
+ </p>
1962
+ <p data-lang="en">
1963
+ This maintenance command audits and cleans up worktrees accumulated over time. It categorizes each found worktree: permanent (main, develop - never deleted), active (branches with ongoing work), orphan (associated Git branch no longer exists), stale (inactive for more than 30 days), or dirty (uncommitted local changes). The audit displays a complete report with recommendations. In interactive mode, it offers to delete orphan and stale worktrees one by one with confirmation. It must be run from main or develop to avoid deleting the current worktree. This command is automatically called by /gitflow:11-finish and /gitflow:6-abort to keep the environment clean.
1964
+ </p>
1965
+ <div class="code-block">
1966
+ <button class="copy-btn">Copy</button>
1967
+ <pre><code>/gitflow:12-cleanup</code></pre>
1968
+ </div>
1969
+ </div>
1970
+ </div>
1971
+ </section>
1972
+
1973
+ <!-- Complete Example -->
1974
+ <section id="workflow-example">
1975
+ <h2>
1976
+ <span data-lang="fr">Exemple complet</span>
1977
+ <span data-lang="en">Complete Example</span>
1978
+ </h2>
1979
+
1980
+ <p data-lang="fr">Voici un exemple complet de workflow GitFlow avec Claude Tools :</p>
1981
+ <p data-lang="en">Here's a complete GitFlow workflow example with Claude Tools:</p>
1982
+
1983
+ <div class="code-block">
1984
+ <button class="copy-btn">Copy</button>
1985
+ <pre><code># 1. Initialiser GitFlow (une seule fois)
1986
+ /gitflow:1-init
1987
+
1988
+ # 2. Verifier l'etat du projet
1989
+ /gitflow:2-status
1990
+
1991
+ # 3. Demarrer une nouvelle feature
1992
+ /gitflow:10-start feature user-dashboard
1993
+
1994
+ # 4. Developper la feature...
1995
+ # ... ecrire du code ...
1996
+
1997
+ # 5. Commits reguliers
1998
+ /gitflow:3-commit
1999
+
2000
+ # 6. Creer une Pull Request vers develop
2001
+ /gitflow:7-pull-request
2002
+
2003
+ # 7. Review de la PR (optionnel, peut etre fait par un collegue)
2004
+ /gitflow:8-review 123
2005
+
2006
+ # 8. Merger la PR apres approbation
2007
+ /gitflow:9-merge 123
2008
+
2009
+ # 9. Preparer une release
2010
+ /gitflow:10-start release
2011
+
2012
+ # 10. Tests finaux et corrections mineures...
2013
+ /gitflow:3-commit
2014
+
2015
+ # 11. Creer PR vers main et merger
2016
+ /gitflow:7-pull-request main
2017
+ /gitflow:9-merge 456
2018
+
2019
+ # 12. Finaliser la release (tag + merge back + cleanup auto)
2020
+ /gitflow:11-finish
2021
+
2022
+ # La release est maintenant sur main avec un tag!
2023
+
2024
+ # 13. Maintenance: Audit des worktrees (depuis main ou develop)
2025
+ /gitflow:12-cleanup</code></pre>
2026
+ </div>
2027
+
2028
+ <div class="alert alert-info">
2029
+ <span class="alert-icon">&#128161;</span>
2030
+ <div class="alert-content">
2031
+ <h5 data-lang="fr">Astuce</h5>
2032
+ <h5 data-lang="en">Tip</h5>
2033
+ <p data-lang="fr">
2034
+ Utilisez <code>/gitflow</code> sans argument pour obtenir une analyse du contexte et des suggestions d'actions basees sur l'etat actuel du projet.
2035
+ </p>
2036
+ <p data-lang="en">
2037
+ Use <code>/gitflow</code> without arguments to get a context analysis and action suggestions based on the current project state.
2038
+ </p>
2039
+ </div>
2040
+ </div>
2041
+ </section>
2042
+ </div>
2043
+ </main>
2044
+ </div>
2045
+ </div>
2046
+
2047
+ <!-- Mobile Menu Button -->
2048
+ <button class="mobile-menu-btn">&#9776;</button>
2049
+ <div class="overlay"></div>
2050
+
2051
+ <script src="js/app.js"></script>
2052
+ </body>
2053
+ </html>