@atlashub/smartstack-cli 1.4.1 → 1.5.1

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 (60) hide show
  1. package/.documentation/agents.html +5 -1
  2. package/.documentation/apex.html +5 -1
  3. package/.documentation/business-analyse.html +5 -1
  4. package/.documentation/commands.html +5 -1
  5. package/.documentation/css/styles.css +2168 -2168
  6. package/.documentation/efcore.html +5 -1
  7. package/.documentation/gitflow.html +5 -1
  8. package/.documentation/hooks.html +5 -1
  9. package/.documentation/index.html +5 -1
  10. package/.documentation/init.html +565 -0
  11. package/.documentation/installation.html +92 -6
  12. package/.documentation/js/app.js +794 -794
  13. package/.documentation/ralph-loop.html +534 -530
  14. package/.documentation/test-web.html +5 -1
  15. package/dist/index.js +817 -277
  16. package/dist/index.js.map +1 -1
  17. package/package.json +1 -1
  18. package/templates/agents/efcore/conflicts.md +44 -17
  19. package/templates/agents/efcore/db-status.md +27 -6
  20. package/templates/agents/efcore/scan.md +43 -13
  21. package/templates/commands/ai-prompt.md +315 -315
  22. package/templates/commands/application/create.md +362 -362
  23. package/templates/commands/controller/create.md +216 -216
  24. package/templates/commands/controller.md +59 -0
  25. package/templates/commands/documentation/module.md +202 -202
  26. package/templates/commands/efcore/_env-check.md +153 -153
  27. package/templates/commands/efcore/conflicts.md +109 -192
  28. package/templates/commands/efcore/db-status.md +101 -89
  29. package/templates/commands/efcore/migration.md +23 -11
  30. package/templates/commands/efcore/scan.md +115 -119
  31. package/templates/commands/efcore.md +54 -6
  32. package/templates/commands/feature-full.md +267 -267
  33. package/templates/commands/gitflow/11-finish.md +145 -11
  34. package/templates/commands/gitflow/13-sync.md +216 -216
  35. package/templates/commands/gitflow/14-rebase.md +251 -251
  36. package/templates/commands/gitflow/2-status.md +120 -10
  37. package/templates/commands/gitflow/3-commit.md +150 -0
  38. package/templates/commands/gitflow/7-pull-request.md +134 -5
  39. package/templates/commands/gitflow/9-merge.md +142 -1
  40. package/templates/commands/implement.md +663 -663
  41. package/templates/commands/init.md +567 -0
  42. package/templates/commands/mcp-integration.md +330 -0
  43. package/templates/commands/notification.md +129 -129
  44. package/templates/commands/validate.md +233 -0
  45. package/templates/commands/workflow.md +193 -193
  46. package/templates/skills/ai-prompt/SKILL.md +778 -778
  47. package/templates/skills/application/SKILL.md +563 -563
  48. package/templates/skills/application/templates-backend.md +450 -450
  49. package/templates/skills/application/templates-frontend.md +531 -531
  50. package/templates/skills/application/templates-i18n.md +520 -520
  51. package/templates/skills/application/templates-seed.md +647 -647
  52. package/templates/skills/controller/SKILL.md +240 -240
  53. package/templates/skills/controller/postman-templates.md +614 -614
  54. package/templates/skills/controller/templates.md +1468 -1468
  55. package/templates/skills/documentation/SKILL.md +133 -133
  56. package/templates/skills/documentation/templates.md +476 -476
  57. package/templates/skills/feature-full/SKILL.md +838 -838
  58. package/templates/skills/notification/SKILL.md +555 -555
  59. package/templates/skills/ui-components/SKILL.md +870 -870
  60. package/templates/skills/workflow/SKILL.md +582 -582
@@ -12,7 +12,7 @@
12
12
  <header class="global-header">
13
13
  <div class="logo">SS</div>
14
14
  <span class="site-title">SmartStack CLI</span>
15
- <span class="version-badge">v1.4.0</span>
15
+ <span class="version-badge">v1.5.0</span>
16
16
  <div class="header-divider"></div>
17
17
  <span class="page-title">EF Core Migrations</span>
18
18
  <nav class="breadcrumb">
@@ -66,6 +66,10 @@
66
66
  <span class="icon">&#128230;</span>
67
67
  <span class="nav-text">Installation</span>
68
68
  </a>
69
+ <a href="init.html" class="nav-item">
70
+ <span class="icon">&#128640;</span>
71
+ <span class="nav-text">Project Init</span>
72
+ </a>
69
73
  </div>
70
74
 
71
75
  <div class="nav-section">
@@ -12,7 +12,7 @@
12
12
  <header class="global-header">
13
13
  <div class="logo">SS</div>
14
14
  <span class="site-title">SmartStack CLI</span>
15
- <span class="version-badge">v1.4.0</span>
15
+ <span class="version-badge">v1.5.0</span>
16
16
  <div class="header-divider"></div>
17
17
  <span class="page-title">GitFlow Workflow</span>
18
18
  <nav class="breadcrumb">
@@ -66,6 +66,10 @@
66
66
  <span class="icon">&#128230;</span>
67
67
  <span class="nav-text">Installation</span>
68
68
  </a>
69
+ <a href="init.html" class="nav-item">
70
+ <span class="icon">&#128640;</span>
71
+ <span class="nav-text">Project Init</span>
72
+ </a>
69
73
  </div>
70
74
 
71
75
  <div class="nav-section">
@@ -12,7 +12,7 @@
12
12
  <header class="global-header">
13
13
  <div class="logo">SS</div>
14
14
  <span class="site-title">SmartStack CLI</span>
15
- <span class="version-badge">v1.4.0</span>
15
+ <span class="version-badge">v1.5.0</span>
16
16
  <div class="header-divider"></div>
17
17
  <span class="page-title">Hooks</span>
18
18
  <nav class="breadcrumb">
@@ -66,6 +66,10 @@
66
66
  <span class="icon">&#128230;</span>
67
67
  <span class="nav-text">Installation</span>
68
68
  </a>
69
+ <a href="init.html" class="nav-item">
70
+ <span class="icon">&#128640;</span>
71
+ <span class="nav-text">Project Init</span>
72
+ </a>
69
73
  </div>
70
74
 
71
75
  <div class="nav-section">
@@ -12,7 +12,7 @@
12
12
  <header class="global-header">
13
13
  <div class="logo">SS</div>
14
14
  <span class="site-title">SmartStack CLI</span>
15
- <span class="version-badge">v1.4.0</span>
15
+ <span class="version-badge">v1.5.0</span>
16
16
  <div class="header-divider"></div>
17
17
  <span class="page-title">@atlashub/smartstack-cli</span>
18
18
  <!-- Language Select -->
@@ -55,6 +55,10 @@
55
55
  <span class="icon">📦</span>
56
56
  <span class="nav-text">Installation</span>
57
57
  </a>
58
+ <a href="init.html" class="nav-item">
59
+ <span class="icon">🚀</span>
60
+ <span class="nav-text">Project Init</span>
61
+ </a>
58
62
  </div>
59
63
 
60
64
  <div class="nav-section">
@@ -0,0 +1,565 @@
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>Project Init - SmartStack CLI</title>
7
+ <link rel="stylesheet" href="css/styles.css">
8
+ </head>
9
+ <body>
10
+ <div class="app-container">
11
+ <!-- Global Header (single unified element) -->
12
+ <header class="global-header">
13
+ <div class="logo">SS</div>
14
+ <span class="site-title">SmartStack CLI</span>
15
+ <span class="version-badge">v1.5.0</span>
16
+ <div class="header-divider"></div>
17
+ <span class="page-title">Project Init</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 class="breadcrumb-current">Project Init</span>
25
+ </nav>
26
+ <!-- Language Select -->
27
+ <select class="lang-select" id="lang-select" onchange="setLanguage(this.value); localStorage.setItem('doc-language', this.value);">
28
+ <option value="fr">&#127467;&#127479; FR</option>
29
+ <option value="en">&#127468;&#127463; EN</option>
30
+ </select>
31
+ <!-- Search -->
32
+ <div class="header-search">
33
+ <div class="search-input-wrapper">
34
+ <span class="search-icon">&#128269;</span>
35
+ <input type="text" id="search-input" class="search-input" placeholder="Rechercher..." data-placeholder-fr="Rechercher..." data-placeholder-en="Search..." autocomplete="off">
36
+ <span class="search-shortcut">Ctrl+K</span>
37
+ </div>
38
+ <div id="search-results" class="search-results"></div>
39
+ </div>
40
+ </header>
41
+
42
+ <!-- App Body -->
43
+ <div class="app-body">
44
+ <!-- Sidebar -->
45
+ <aside class="sidebar">
46
+ <button class="sidebar-toggle" title="Toggle sidebar">
47
+ <span class="toggle-icon-collapse">&#171;</span>
48
+ <span class="toggle-icon-expand">&#187;</span>
49
+ </button>
50
+
51
+ <nav class="sidebar-nav">
52
+ <div class="nav-section">
53
+ <div class="nav-section-title">
54
+ <span data-lang="fr">Demarrage</span>
55
+ <span data-lang="en">Getting Started</span>
56
+ </div>
57
+ <a href="index.html" class="nav-item">
58
+ <span class="icon">&#127968;</span>
59
+ <span class="nav-text" data-lang="fr">Accueil</span>
60
+ <span class="nav-text" data-lang="en">Home</span>
61
+ </a>
62
+ <a href="installation.html" class="nav-item">
63
+ <span class="icon">&#128230;</span>
64
+ <span class="nav-text">Installation</span>
65
+ </a>
66
+ <a href="init.html" class="nav-item active">
67
+ <span class="icon">&#128640;</span>
68
+ <span class="nav-text">Project Init</span>
69
+ </a>
70
+ </div>
71
+
72
+ <div class="nav-section">
73
+ <div class="nav-section-title">Workflows</div>
74
+ <a href="gitflow.html" class="nav-item">
75
+ <span class="icon">&#128256;</span>
76
+ <span class="nav-text">GitFlow</span>
77
+ </a>
78
+ <a href="efcore.html" class="nav-item">
79
+ <span class="icon">&#128452;</span>
80
+ <span class="nav-text">EF Core</span>
81
+ </a>
82
+ <a href="apex.html" class="nav-item">
83
+ <span class="icon">&#127919;</span>
84
+ <span class="nav-text">APEX</span>
85
+ </a>
86
+ <a href="business-analyse.html" class="nav-item">
87
+ <span class="icon">&#128202;</span>
88
+ <span class="nav-text">Business Analyse</span>
89
+ </a>
90
+ <a href="ralph-loop.html" class="nav-item">
91
+ <span class="icon">&#128260;</span>
92
+ <span class="nav-text">Ralph Loop</span>
93
+ </a>
94
+ </div>
95
+
96
+ <div class="nav-section">
97
+ <div class="nav-section-title">
98
+ <span data-lang="fr">Outils</span>
99
+ <span data-lang="en">Tools</span>
100
+ </div>
101
+ <a href="agents.html" class="nav-item">
102
+ <span class="icon">&#129302;</span>
103
+ <span class="nav-text">Agents</span>
104
+ </a>
105
+ <a href="commands.html" class="nav-item">
106
+ <span class="icon">&#9889;</span>
107
+ <span class="nav-text" data-lang="fr">Commandes</span>
108
+ <span class="nav-text" data-lang="en">Commands</span>
109
+ </a>
110
+ <a href="hooks.html" class="nav-item">
111
+ <span class="icon">&#128279;</span>
112
+ <span class="nav-text">Hooks</span>
113
+ </a>
114
+ <a href="test-web.html" class="nav-item">
115
+ <span class="icon">&#127760;</span>
116
+ <span class="nav-text">Test Web</span>
117
+ </a>
118
+ </div>
119
+ </nav>
120
+
121
+ </aside>
122
+
123
+ <!-- Main Content -->
124
+ <main class="main-content">
125
+ <div class="content content-wide">
126
+ <!-- Introduction -->
127
+ <section id="introduction">
128
+ <h2>
129
+ <span data-lang="fr">Initialisation de projet SmartStack</span>
130
+ <span data-lang="en">SmartStack Project Initialization</span>
131
+ </h2>
132
+
133
+ <p data-lang="fr">
134
+ La commande <code>smartstack init</code> permet de creer rapidement un nouveau projet SmartStack avec une architecture Clean Architecture (.NET) et un frontend React pre-configure.
135
+ </p>
136
+ <p data-lang="en">
137
+ The <code>smartstack init</code> command allows you to quickly create a new SmartStack project with Clean Architecture (.NET) and a pre-configured React frontend.
138
+ </p>
139
+
140
+ <div class="alert alert-info">
141
+ <span class="alert-icon">&#128161;</span>
142
+ <div class="alert-content">
143
+ <p><code>smartstack init MyProject</code></p>
144
+ </div>
145
+ </div>
146
+ </section>
147
+
148
+ <!-- Prerequisites -->
149
+ <section id="prerequisites">
150
+ <h2>
151
+ <span data-lang="fr">Prerequis</span>
152
+ <span data-lang="en">Prerequisites</span>
153
+ </h2>
154
+
155
+ <div class="feature-grid">
156
+ <div class="feature-item">
157
+ <span class="feature-icon">&#128736;</span>
158
+ <span class="feature-text"><strong>.NET SDK</strong> &gt;= 10.0</span>
159
+ </div>
160
+ <div class="feature-item">
161
+ <span class="feature-icon">&#128215;</span>
162
+ <span class="feature-text"><strong>Node.js</strong> &gt;= 18.0</span>
163
+ </div>
164
+ <div class="feature-item">
165
+ <span class="feature-icon">&#128230;</span>
166
+ <span class="feature-text"><strong>npm</strong> &gt;= 9.0</span>
167
+ </div>
168
+ </div>
169
+ </section>
170
+
171
+ <!-- MCP Servers -->
172
+ <section id="mcp-servers">
173
+ <h2>
174
+ <span data-lang="fr">Serveurs MCP requis</span>
175
+ <span data-lang="en">Required MCP Servers</span>
176
+ </h2>
177
+
178
+ <p data-lang="fr">
179
+ SmartStack utilise des serveurs MCP pour ameliorer l'experience de developpement. La commande <code>init</code> verifie automatiquement leur presence.
180
+ </p>
181
+ <p data-lang="en">
182
+ SmartStack uses MCP servers to enhance the development experience. The <code>init</code> command automatically checks for their presence.
183
+ </p>
184
+
185
+ <div class="table-container">
186
+ <table>
187
+ <thead>
188
+ <tr>
189
+ <th>Serveur</th>
190
+ <th>
191
+ <span data-lang="fr">Fonction</span>
192
+ <span data-lang="en">Function</span>
193
+ </th>
194
+ <th>Installation</th>
195
+ </tr>
196
+ </thead>
197
+ <tbody>
198
+ <tr>
199
+ <td><strong>SmartStack MCP</strong></td>
200
+ <td>
201
+ <span data-lang="fr">Validation conventions, scaffolding, API docs</span>
202
+ <span data-lang="en">Conventions validation, scaffolding, API docs</span>
203
+ </td>
204
+ <td><code>claude mcp add smartstack</code></td>
205
+ </tr>
206
+ <tr>
207
+ <td><strong>Context7 MCP</strong></td>
208
+ <td>
209
+ <span data-lang="fr">Documentation libraries, exemples de code</span>
210
+ <span data-lang="en">Library documentation, code examples</span>
211
+ </td>
212
+ <td><code>claude mcp add context7 -- npx @upstash/context7-mcp -- --api-key YOUR_API_KEY</code></td>
213
+ </tr>
214
+ </tbody>
215
+ </table>
216
+ </div>
217
+
218
+ <div class="alert alert-warning">
219
+ <span class="alert-icon">&#9888;</span>
220
+ <div class="alert-content">
221
+ <h5 data-lang="fr">MCP manquants</h5>
222
+ <h5 data-lang="en">Missing MCP</h5>
223
+ <p data-lang="fr">
224
+ Si les serveurs MCP ne sont pas installes, vous pouvez continuer avec l'option <code>--skip-mcp-check</code>, mais certaines fonctionnalites seront limitees.
225
+ </p>
226
+ <p data-lang="en">
227
+ If MCP servers are not installed, you can continue with the <code>--skip-mcp-check</code> option, but some features will be limited.
228
+ </p>
229
+ </div>
230
+ </div>
231
+ </section>
232
+
233
+ <!-- Usage -->
234
+ <section id="usage">
235
+ <h2>
236
+ <span data-lang="fr">Utilisation</span>
237
+ <span data-lang="en">Usage</span>
238
+ </h2>
239
+
240
+ <div class="code-block">
241
+ <button class="copy-btn">Copy</button>
242
+ <pre><code>smartstack init &lt;project-name&gt; [options]</code></pre>
243
+ </div>
244
+
245
+ <h3>Options</h3>
246
+
247
+ <div class="table-container">
248
+ <table>
249
+ <thead>
250
+ <tr>
251
+ <th>Option</th>
252
+ <th>
253
+ <span data-lang="fr">Description</span>
254
+ <span data-lang="en">Description</span>
255
+ </th>
256
+ </tr>
257
+ </thead>
258
+ <tbody>
259
+ <tr>
260
+ <td><code>--full-stack</code></td>
261
+ <td>
262
+ <span data-lang="fr">Creer un projet Full Stack (Backend .NET + Frontend React) - par defaut</span>
263
+ <span data-lang="en">Create Full Stack project (Backend .NET + Frontend React) - default</span>
264
+ </td>
265
+ </tr>
266
+ <tr>
267
+ <td><code>--backend</code></td>
268
+ <td>
269
+ <span data-lang="fr">Creer uniquement le backend .NET</span>
270
+ <span data-lang="en">Create backend .NET only</span>
271
+ </td>
272
+ </tr>
273
+ <tr>
274
+ <td><code>--frontend</code></td>
275
+ <td>
276
+ <span data-lang="fr">Creer uniquement le frontend React</span>
277
+ <span data-lang="en">Create frontend React only</span>
278
+ </td>
279
+ </tr>
280
+ <tr>
281
+ <td><code>--db &lt;type&gt;</code></td>
282
+ <td>
283
+ <span data-lang="fr">Base de donnees: <code>sqlserver</code> (defaut), <code>postgresql</code>, <code>sqlite</code></span>
284
+ <span data-lang="en">Database: <code>sqlserver</code> (default), <code>postgresql</code>, <code>sqlite</code></span>
285
+ </td>
286
+ </tr>
287
+ <tr>
288
+ <td><code>--dry-run</code></td>
289
+ <td>
290
+ <span data-lang="fr">Simulation - affiche ce qui serait cree sans rien creer</span>
291
+ <span data-lang="en">Simulation - shows what would be created without creating anything</span>
292
+ </td>
293
+ </tr>
294
+ <tr>
295
+ <td><code>-y, --yes</code></td>
296
+ <td>
297
+ <span data-lang="fr">Mode non-interactif - utilise les valeurs par defaut</span>
298
+ <span data-lang="en">Non-interactive mode - uses default values</span>
299
+ </td>
300
+ </tr>
301
+ <tr>
302
+ <td><code>--skip-mcp-check</code></td>
303
+ <td>
304
+ <span data-lang="fr">Ignorer la verification des serveurs MCP</span>
305
+ <span data-lang="en">Skip MCP servers verification</span>
306
+ </td>
307
+ </tr>
308
+ </tbody>
309
+ </table>
310
+ </div>
311
+ </section>
312
+
313
+ <!-- Examples -->
314
+ <section id="examples">
315
+ <h2>
316
+ <span data-lang="fr">Exemples</span>
317
+ <span data-lang="en">Examples</span>
318
+ </h2>
319
+
320
+ <div class="code-block">
321
+ <button class="copy-btn">Copy</button>
322
+ <pre><code># Projet Full Stack avec wizard interactif
323
+ smartstack init MyApp
324
+
325
+ # Projet Full Stack avec SQL Server (mode rapide)
326
+ smartstack init MyApp -y
327
+
328
+ # Backend .NET uniquement avec PostgreSQL
329
+ smartstack init MyApi --backend --db postgresql
330
+
331
+ # Frontend React uniquement
332
+ smartstack init MyWebApp --frontend
333
+
334
+ # Simulation (dry-run)
335
+ smartstack init MyApp --dry-run</code></pre>
336
+ </div>
337
+ </section>
338
+
339
+ <!-- Project Structure -->
340
+ <section id="structure">
341
+ <h2>
342
+ <span data-lang="fr">Structure du projet</span>
343
+ <span data-lang="en">Project Structure</span>
344
+ </h2>
345
+
346
+ <p data-lang="fr">La commande cree la structure suivante (Clean Architecture) :</p>
347
+ <p data-lang="en">The command creates the following structure (Clean Architecture):</p>
348
+
349
+ <div class="code-block">
350
+ <pre><code>{ProjectName}/
351
+ ├── src/
352
+ │ ├── {ProjectName}.Domain/ # Entites, Interfaces
353
+ │ │ ├── Entities/
354
+ │ │ ├── Interfaces/
355
+ │ │ └── {ProjectName}.Domain.csproj
356
+ │ ├── {ProjectName}.Application/ # Services, DTOs
357
+ │ │ ├── Services/
358
+ │ │ ├── DTOs/
359
+ │ │ └── {ProjectName}.Application.csproj
360
+ │ ├── {ProjectName}.Infrastructure/ # Data, Repositories
361
+ │ │ ├── Data/
362
+ │ │ │ └── {ProjectName}DbContext.cs
363
+ │ │ ├── Repositories/
364
+ │ │ └── {ProjectName}.Infrastructure.csproj
365
+ │ └── {ProjectName}.Api/ # Controllers, Program.cs
366
+ │ ├── Controllers/
367
+ │ ├── Program.cs
368
+ │ └── {ProjectName}.Api.csproj
369
+ ├── tests/
370
+ │ └── {ProjectName}.Tests/
371
+ ├── web/
372
+ │ └── {projectname}-web/ # Frontend React
373
+ │ ├── src/
374
+ │ ├── package.json
375
+ │ └── vite.config.ts
376
+ ├── {ProjectName}.sln
377
+ ├── Directory.Build.props
378
+ └── README.md</code></pre>
379
+ </div>
380
+ </section>
381
+
382
+ <!-- Packages -->
383
+ <section id="packages">
384
+ <h2>
385
+ <span data-lang="fr">Packages installes</span>
386
+ <span data-lang="en">Installed Packages</span>
387
+ </h2>
388
+
389
+ <h3>NuGet (Backend)</h3>
390
+ <ul>
391
+ <li><code>Microsoft.EntityFrameworkCore</code></li>
392
+ <li><code>Microsoft.EntityFrameworkCore.Design</code></li>
393
+ <li><code>Microsoft.EntityFrameworkCore.SqlServer</code> (ou PostgreSQL/SQLite)</li>
394
+ <li><code>Microsoft.AspNetCore.Authentication.JwtBearer</code></li>
395
+ <li><code>Swashbuckle.AspNetCore</code></li>
396
+ </ul>
397
+
398
+ <h3>npm (Frontend)</h3>
399
+ <ul>
400
+ <li><code>@atlashub/smartstack-react</code></li>
401
+ <li><code>react-router-dom</code></li>
402
+ <li><code>axios</code></li>
403
+ <li><code>i18next</code> / <code>react-i18next</code></li>
404
+ <li><code>tailwindcss</code></li>
405
+ </ul>
406
+ </section>
407
+
408
+ <!-- Next Steps -->
409
+ <section id="next-steps">
410
+ <h2>
411
+ <span data-lang="fr">Prochaines etapes</span>
412
+ <span data-lang="en">Next Steps</span>
413
+ </h2>
414
+
415
+ <ol class="steps-list">
416
+ <li>
417
+ <div class="step-content">
418
+ <h5 data-lang="fr">Configurer la connection string</h5>
419
+ <h5 data-lang="en">Configure connection string</h5>
420
+ <p data-lang="fr">Editez <code>appsettings.json</code> pour configurer votre base de donnees.</p>
421
+ <p data-lang="en">Edit <code>appsettings.json</code> to configure your database.</p>
422
+ </div>
423
+ </li>
424
+ <li>
425
+ <div class="step-content">
426
+ <h5 data-lang="fr">Creer la migration initiale</h5>
427
+ <h5 data-lang="en">Create initial migration</h5>
428
+ <div class="code-block">
429
+ <button class="copy-btn">Copy</button>
430
+ <pre><code>dotnet ef migrations add InitialCreate \
431
+ -p src/{ProjectName}.Infrastructure \
432
+ -s src/{ProjectName}.Api</code></pre>
433
+ </div>
434
+ </div>
435
+ </li>
436
+ <li>
437
+ <div class="step-content">
438
+ <h5 data-lang="fr">Appliquer la migration</h5>
439
+ <h5 data-lang="en">Apply migration</h5>
440
+ <div class="code-block">
441
+ <button class="copy-btn">Copy</button>
442
+ <pre><code>dotnet ef database update \
443
+ -p src/{ProjectName}.Infrastructure \
444
+ -s src/{ProjectName}.Api</code></pre>
445
+ </div>
446
+ </div>
447
+ </li>
448
+ <li>
449
+ <div class="step-content">
450
+ <h5 data-lang="fr">Lancer le backend</h5>
451
+ <h5 data-lang="en">Start backend</h5>
452
+ <div class="code-block">
453
+ <button class="copy-btn">Copy</button>
454
+ <pre><code>dotnet run --project src/{ProjectName}.Api</code></pre>
455
+ </div>
456
+ </div>
457
+ </li>
458
+ <li>
459
+ <div class="step-content">
460
+ <h5 data-lang="fr">Lancer le frontend</h5>
461
+ <h5 data-lang="en">Start frontend</h5>
462
+ <div class="code-block">
463
+ <button class="copy-btn">Copy</button>
464
+ <pre><code>cd web/{projectname}-web && npm run dev</code></pre>
465
+ </div>
466
+ </div>
467
+ </li>
468
+ </ol>
469
+ </section>
470
+
471
+ <!-- MCP Server Features -->
472
+ <section id="mcp-features">
473
+ <h2>
474
+ <span data-lang="fr">Fonctionnalites MCP</span>
475
+ <span data-lang="en">MCP Features</span>
476
+ </h2>
477
+
478
+ <h3>SmartStack MCP</h3>
479
+ <div class="table-container">
480
+ <table>
481
+ <thead>
482
+ <tr>
483
+ <th>Tool</th>
484
+ <th>
485
+ <span data-lang="fr">Description</span>
486
+ <span data-lang="en">Description</span>
487
+ </th>
488
+ </tr>
489
+ </thead>
490
+ <tbody>
491
+ <tr>
492
+ <td><code>validate_conventions</code></td>
493
+ <td>
494
+ <span data-lang="fr">Valide les conventions SQL, migrations, services, namespaces</span>
495
+ <span data-lang="en">Validates SQL conventions, migrations, services, namespaces</span>
496
+ </td>
497
+ </tr>
498
+ <tr>
499
+ <td><code>check_migrations</code></td>
500
+ <td>
501
+ <span data-lang="fr">Analyse les conflits EF Core entre branches</span>
502
+ <span data-lang="en">Analyzes EF Core conflicts between branches</span>
503
+ </td>
504
+ </tr>
505
+ <tr>
506
+ <td><code>scaffold_extension</code></td>
507
+ <td>
508
+ <span data-lang="fr">Genere du code (services, entites, controllers, components)</span>
509
+ <span data-lang="en">Generates code (services, entities, controllers, components)</span>
510
+ </td>
511
+ </tr>
512
+ <tr>
513
+ <td><code>api_docs</code></td>
514
+ <td>
515
+ <span data-lang="fr">Documentation API Swagger/OpenAPI</span>
516
+ <span data-lang="en">Swagger/OpenAPI API documentation</span>
517
+ </td>
518
+ </tr>
519
+ </tbody>
520
+ </table>
521
+ </div>
522
+
523
+ <h3>Context7 MCP</h3>
524
+ <div class="table-container">
525
+ <table>
526
+ <thead>
527
+ <tr>
528
+ <th>Tool</th>
529
+ <th>
530
+ <span data-lang="fr">Description</span>
531
+ <span data-lang="en">Description</span>
532
+ </th>
533
+ </tr>
534
+ </thead>
535
+ <tbody>
536
+ <tr>
537
+ <td><code>resolve-library-id</code></td>
538
+ <td>
539
+ <span data-lang="fr">Trouve l'ID Context7 d'une bibliotheque</span>
540
+ <span data-lang="en">Finds the Context7 ID of a library</span>
541
+ </td>
542
+ </tr>
543
+ <tr>
544
+ <td><code>query-docs</code></td>
545
+ <td>
546
+ <span data-lang="fr">Recupere la documentation et exemples de code a jour</span>
547
+ <span data-lang="en">Retrieves up-to-date documentation and code examples</span>
548
+ </td>
549
+ </tr>
550
+ </tbody>
551
+ </table>
552
+ </div>
553
+ </section>
554
+ </div>
555
+ </main>
556
+ </div>
557
+ </div>
558
+
559
+ <!-- Mobile Menu Button -->
560
+ <button class="mobile-menu-btn">&#9776;</button>
561
+ <div class="overlay"></div>
562
+
563
+ <script src="js/app.js"></script>
564
+ </body>
565
+ </html>