@atlashub/smartstack-cli 1.5.1 → 1.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.documentation/css/styles.css +2168 -2168
- package/.documentation/js/app.js +794 -794
- package/config/default-config.json +86 -86
- package/config/settings.json +53 -53
- package/config/settings.local.example.json +16 -16
- package/dist/index.js +0 -0
- package/dist/index.js.map +1 -1
- package/package.json +88 -88
- package/templates/agents/action.md +36 -36
- package/templates/agents/efcore/conflicts.md +84 -84
- package/templates/agents/efcore/db-deploy.md +51 -51
- package/templates/agents/efcore/db-reset.md +59 -59
- package/templates/agents/efcore/db-seed.md +56 -56
- package/templates/agents/efcore/db-status.md +64 -64
- package/templates/agents/efcore/migration.md +85 -85
- package/templates/agents/efcore/rebase-snapshot.md +62 -62
- package/templates/agents/efcore/scan.md +90 -90
- package/templates/agents/efcore/squash.md +67 -67
- package/templates/agents/explore-codebase.md +65 -65
- package/templates/agents/explore-docs.md +97 -97
- package/templates/agents/fix-grammar.md +49 -49
- package/templates/agents/gitflow/abort.md +45 -45
- package/templates/agents/gitflow/cleanup.md +85 -85
- package/templates/agents/gitflow/commit.md +40 -40
- package/templates/agents/gitflow/exec.md +48 -48
- package/templates/agents/gitflow/finish.md +92 -92
- package/templates/agents/gitflow/init.md +139 -139
- package/templates/agents/gitflow/merge.md +62 -62
- package/templates/agents/gitflow/plan.md +42 -42
- package/templates/agents/gitflow/pr.md +78 -78
- package/templates/agents/gitflow/review.md +49 -49
- package/templates/agents/gitflow/start.md +61 -61
- package/templates/agents/gitflow/status.md +32 -32
- package/templates/agents/snipper.md +36 -36
- package/templates/agents/websearch.md +46 -46
- package/templates/commands/_resources/formatting-guide.md +124 -124
- package/templates/commands/ai-prompt.md +315 -315
- package/templates/commands/apex/1-analyze.md +100 -100
- package/templates/commands/apex/2-plan.md +145 -145
- package/templates/commands/apex/3-execute.md +171 -171
- package/templates/commands/apex/4-examine.md +116 -116
- package/templates/commands/apex/5-tasks.md +209 -209
- package/templates/commands/apex.md +76 -76
- package/templates/commands/application/create.md +362 -362
- package/templates/commands/application/templates-backend.md +463 -463
- package/templates/commands/application/templates-frontend.md +517 -517
- package/templates/commands/application/templates-i18n.md +478 -478
- package/templates/commands/application/templates-seed.md +362 -362
- package/templates/commands/application.md +303 -303
- package/templates/commands/business-analyse/0-orchestrate.md +640 -640
- package/templates/commands/business-analyse/1-init.md +269 -269
- package/templates/commands/business-analyse/2-discover.md +520 -520
- package/templates/commands/business-analyse/3-analyse.md +408 -408
- package/templates/commands/business-analyse/4-specify.md +598 -598
- package/templates/commands/business-analyse/5-validate.md +326 -326
- package/templates/commands/business-analyse/6-handoff.md +746 -746
- package/templates/commands/business-analyse/7-doc-html.md +602 -602
- package/templates/commands/business-analyse/bug.md +325 -325
- package/templates/commands/business-analyse/change-request.md +368 -368
- package/templates/commands/business-analyse/hotfix.md +200 -200
- package/templates/commands/business-analyse.md +640 -640
- package/templates/commands/controller/create.md +216 -216
- package/templates/commands/controller/postman-templates.md +528 -528
- package/templates/commands/controller/templates.md +600 -600
- package/templates/commands/controller.md +337 -337
- package/templates/commands/create/agent.md +138 -138
- package/templates/commands/create/command.md +166 -166
- package/templates/commands/create/hook.md +234 -234
- package/templates/commands/create/plugin.md +329 -329
- package/templates/commands/create/project.md +507 -507
- package/templates/commands/create/skill.md +199 -199
- package/templates/commands/create.md +220 -220
- package/templates/commands/debug.md +95 -95
- package/templates/commands/documentation/module.md +202 -202
- package/templates/commands/documentation/templates.md +432 -432
- package/templates/commands/documentation.md +190 -190
- package/templates/commands/efcore/_env-check.md +153 -153
- package/templates/commands/efcore/conflicts.md +186 -186
- package/templates/commands/efcore/db-deploy.md +193 -193
- package/templates/commands/efcore/db-reset.md +426 -426
- package/templates/commands/efcore/db-seed.md +326 -326
- package/templates/commands/efcore/db-status.md +226 -226
- package/templates/commands/efcore/migration.md +400 -400
- package/templates/commands/efcore/rebase-snapshot.md +264 -264
- package/templates/commands/efcore/scan.md +198 -198
- package/templates/commands/efcore/squash.md +298 -298
- package/templates/commands/efcore.md +224 -224
- package/templates/commands/epct.md +69 -69
- package/templates/commands/explain.md +186 -186
- package/templates/commands/explore.md +45 -45
- package/templates/commands/feature-full.md +267 -267
- package/templates/commands/gitflow/1-init.md +1038 -1038
- package/templates/commands/gitflow/10-start.md +768 -768
- package/templates/commands/gitflow/11-finish.md +457 -457
- package/templates/commands/gitflow/12-cleanup.md +276 -276
- package/templates/commands/gitflow/13-sync.md +216 -216
- package/templates/commands/gitflow/14-rebase.md +251 -251
- package/templates/commands/gitflow/2-status.md +277 -277
- package/templates/commands/gitflow/3-commit.md +344 -344
- package/templates/commands/gitflow/4-plan.md +145 -145
- package/templates/commands/gitflow/5-exec.md +147 -147
- package/templates/commands/gitflow/6-abort.md +344 -344
- package/templates/commands/gitflow/7-pull-request.md +453 -355
- package/templates/commands/gitflow/8-review.md +240 -176
- package/templates/commands/gitflow/9-merge.md +451 -365
- package/templates/commands/gitflow.md +128 -128
- package/templates/commands/implement.md +663 -663
- package/templates/commands/init.md +567 -567
- package/templates/commands/mcp-integration.md +330 -330
- package/templates/commands/notification.md +129 -129
- package/templates/commands/oneshot.md +57 -57
- package/templates/commands/quick-search.md +72 -72
- package/templates/commands/ralph-loop/cancel-ralph.md +18 -18
- package/templates/commands/ralph-loop/help.md +126 -126
- package/templates/commands/ralph-loop/ralph-loop.md +18 -18
- package/templates/commands/review.md +106 -106
- package/templates/commands/utils/test-web-config.md +160 -160
- package/templates/commands/utils/test-web.md +151 -151
- package/templates/commands/validate.md +233 -233
- package/templates/commands/workflow.md +193 -193
- package/templates/gitflow/config.json +138 -138
- package/templates/hooks/ef-migration-check.md +139 -139
- package/templates/hooks/hooks.json +25 -25
- package/templates/hooks/stop-hook.sh +177 -177
- package/templates/skills/ai-prompt/SKILL.md +778 -778
- package/templates/skills/application/SKILL.md +563 -563
- package/templates/skills/application/templates-backend.md +450 -450
- package/templates/skills/application/templates-frontend.md +531 -531
- package/templates/skills/application/templates-i18n.md +520 -520
- package/templates/skills/application/templates-seed.md +647 -647
- package/templates/skills/business-analyse/SKILL.md +191 -191
- package/templates/skills/business-analyse/questionnaire.md +283 -283
- package/templates/skills/business-analyse/templates-frd.md +477 -477
- package/templates/skills/business-analyse/templates-react.md +580 -580
- package/templates/skills/controller/SKILL.md +240 -240
- package/templates/skills/controller/postman-templates.md +614 -614
- package/templates/skills/controller/templates.md +1468 -1468
- package/templates/skills/documentation/SKILL.md +133 -133
- package/templates/skills/documentation/templates.md +476 -476
- package/templates/skills/feature-full/SKILL.md +838 -838
- package/templates/skills/notification/SKILL.md +555 -555
- package/templates/skills/ui-components/SKILL.md +870 -870
- package/templates/skills/workflow/SKILL.md +582 -582
- package/templates/test-web/api-health.json +38 -38
- package/templates/test-web/minimal.json +19 -19
- package/templates/test-web/npm-package.json +46 -46
- package/templates/test-web/seo-check.json +54 -54
|
@@ -1,224 +1,224 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: EF Core Commands - Migration and database management
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# EF Core Commands
|
|
6
|
-
|
|
7
|
-
Set of commands to manage Entity Framework Core: migrations, database, and seeding.
|
|
8
|
-
|
|
9
|
-
> **MCP INTEGRATION:** Commands use `mcp__smartstack__check_migrations` for conflict analysis and validation.
|
|
10
|
-
|
|
11
|
-
## Available Commands
|
|
12
|
-
|
|
13
|
-
### Migrations
|
|
14
|
-
|
|
15
|
-
| Command | Description | Risk |
|
|
16
|
-
|---------|-------------|------|
|
|
17
|
-
| `/efcore:migration` | Create/recreate migration (1 per feature) | Low |
|
|
18
|
-
| `/efcore:db-status` | Show migration status | None (read-only) |
|
|
19
|
-
| `/efcore:db-deploy` | Apply migrations | Low |
|
|
20
|
-
| `/efcore:db-seed` | Populate with data | Low |
|
|
21
|
-
| `/efcore:db-reset` | Drop + Recreate database | **HIGH** |
|
|
22
|
-
|
|
23
|
-
### Cross-Branch (v1.2)
|
|
24
|
-
|
|
25
|
-
| Command | Description | Risk |
|
|
26
|
-
|---------|-------------|------|
|
|
27
|
-
| `/efcore:scan` | Scan migrations across all branches | None (read-only) |
|
|
28
|
-
| `/efcore:conflicts` | Analyze potential conflicts (BLOCKING) | None (read-only) |
|
|
29
|
-
| `/efcore:rebase-snapshot` | Rebase ModelSnapshot on develop | Medium |
|
|
30
|
-
| `/efcore:squash` | Merge multiple migrations into one | **HIGH** |
|
|
31
|
-
|
|
32
|
-
## Golden Rule: 1 Migration per Feature
|
|
33
|
-
|
|
34
|
-
**Never accumulate multiple migrations on a feature.** If you modify the model:
|
|
35
|
-
1. Delete the existing migration
|
|
36
|
-
2. Recreate it with `/efcore:migration`
|
|
37
|
-
|
|
38
|
-
The `/efcore:migration` command handles this automatically.
|
|
39
|
-
|
|
40
|
-
## Migration Naming
|
|
41
|
-
|
|
42
|
-
Pattern: `{context}_v{version}_{sequence}_{Description}` (aligned with SmartStack MCP)
|
|
43
|
-
|
|
44
|
-
| Context | Version | Sequence | Description | Generated Name |
|
|
45
|
-
|---------|---------|----------|-------------|----------------|
|
|
46
|
-
| core | 1.2.0 | 001 | AddUserRoles | `core_v1.2.0_001_AddUserRoles` |
|
|
47
|
-
| core | 1.2.0 | 002 | AddPermissions | `core_v1.2.0_002_AddPermissions` |
|
|
48
|
-
| extensions | 1.3.0 | 001 | AddCustomFields | `extensions_v1.3.0_001_AddCustomFields` |
|
|
49
|
-
|
|
50
|
-
> **Note:** Context is `core` for SmartStack platform tables, `extensions` for client-specific extensions.
|
|
51
|
-
|
|
52
|
-
## Typical Workflow
|
|
53
|
-
|
|
54
|
-
```
|
|
55
|
-
1. /gitflow:10-start feature xxx → Create worktree + appsettings.Local.json
|
|
56
|
-
2. /efcore:db-deploy → Apply existing migrations
|
|
57
|
-
3. ... model modifications ...
|
|
58
|
-
4. /efcore:migration → Create THE migration for this feature
|
|
59
|
-
5. /efcore:db-deploy → Apply to local DB
|
|
60
|
-
6. /gitflow:3-commit → Commit
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
## Cross-Branch Workflow (v1.2)
|
|
64
|
-
|
|
65
|
-
With GitFlow worktrees, multiple branches can have migrations in parallel. To avoid conflicts:
|
|
66
|
-
|
|
67
|
-
```
|
|
68
|
-
1. /efcore:scan → Scan all active branches
|
|
69
|
-
2. /efcore:conflicts → Check for conflicts (BLOCKING)
|
|
70
|
-
3. /efcore:rebase-snapshot → If conflict, rebase on develop
|
|
71
|
-
4. /efcore:migration → Create/recreate migration
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Recommended Merge Order
|
|
75
|
-
|
|
76
|
-
The scan analyzes migrations and recommends a merge order:
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
ACTIVE BRANCHES (3)
|
|
80
|
-
--------------------
|
|
81
|
-
feature/user-roles +1 migration Conflict: NONE
|
|
82
|
-
feature/add-products +1 migration Conflict: POTENTIAL
|
|
83
|
-
feature/orders +2 migrations Conflict: HIGH
|
|
84
|
-
|
|
85
|
-
RECOMMENDED MERGE ORDER:
|
|
86
|
-
1. feature/user-roles (independent)
|
|
87
|
-
2. feature/add-products (before orders)
|
|
88
|
-
3. feature/orders (rebase required)
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## Configuration
|
|
92
|
-
|
|
93
|
-
Commands use configuration in `.claude/gitflow/config.json`:
|
|
94
|
-
|
|
95
|
-
```json
|
|
96
|
-
{
|
|
97
|
-
"efcore": {
|
|
98
|
-
"database": {
|
|
99
|
-
"configFile": "appsettings.Local.json",
|
|
100
|
-
"connectionStringName": "DefaultConnection",
|
|
101
|
-
"provider": "SqlServer"
|
|
102
|
-
},
|
|
103
|
-
"crossBranch": {
|
|
104
|
-
"enabled": true,
|
|
105
|
-
"scanOnMigrationCreate": true,
|
|
106
|
-
"blockOnConflict": true,
|
|
107
|
-
"cacheExpiry": 300
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
### crossBranch Options
|
|
114
|
-
|
|
115
|
-
| Option | Description | Default |
|
|
116
|
-
|--------|-------------|---------|
|
|
117
|
-
| `enabled` | Enable cross-branch validation | `true` |
|
|
118
|
-
| `scanOnMigrationCreate` | Scan before `/efcore:migration` | `true` |
|
|
119
|
-
| `blockOnConflict` | Block if conflict detected | `true` |
|
|
120
|
-
| `cacheExpiry` | Scan cache duration (seconds) | `300` |
|
|
121
|
-
|
|
122
|
-
## Environment Selection (NEW)
|
|
123
|
-
|
|
124
|
-
All EF Core commands now display the target database BEFORE execution:
|
|
125
|
-
|
|
126
|
-
```
|
|
127
|
-
================================================================================
|
|
128
|
-
EF CORE - DATABASE DEPLOY
|
|
129
|
-
================================================================================
|
|
130
|
-
|
|
131
|
-
FICHIERS DISPONIBLES:
|
|
132
|
-
- appsettings.json
|
|
133
|
-
- appsettings.Local.json
|
|
134
|
-
- appsettings.Development.json
|
|
135
|
-
|
|
136
|
-
ENVIRONNEMENT: appsettings.Local.json
|
|
137
|
-
|
|
138
|
-
CONNEXION CIBLE:
|
|
139
|
-
Server: localhost
|
|
140
|
-
Database: SmartStack_Dev
|
|
141
|
-
String: Server=localhost;Database=SmartStack_Dev;...
|
|
142
|
-
|
|
143
|
-
================================================================================
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
### Override Environment
|
|
147
|
-
|
|
148
|
-
Use `--env` flag to target a different environment:
|
|
149
|
-
|
|
150
|
-
```bash
|
|
151
|
-
# Deploy to Development environment
|
|
152
|
-
/efcore:db-deploy --env Development
|
|
153
|
-
|
|
154
|
-
# Reset Staging database
|
|
155
|
-
/efcore:db-reset --env Staging
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### Protection Production
|
|
159
|
-
|
|
160
|
-
Commands that modify the database are **automatically blocked** if `appsettings.Production.json` is detected.
|
|
161
|
-
|
|
162
|
-
## appsettings.Local.json File
|
|
163
|
-
|
|
164
|
-
This file contains the local connection string and is **never committed**:
|
|
165
|
-
|
|
166
|
-
```json
|
|
167
|
-
{
|
|
168
|
-
"ConnectionStrings": {
|
|
169
|
-
"DefaultConnection": "Server=localhost;Database=MyApp;Trusted_Connection=true;TrustServerCertificate=true"
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
The file is automatically created by `/gitflow:10-start` and added to `.gitignore`.
|
|
175
|
-
|
|
176
|
-
## Prerequisites
|
|
177
|
-
|
|
178
|
-
- .NET SDK installed
|
|
179
|
-
- EF Core Tools: `dotnet tool install --global dotnet-ef`
|
|
180
|
-
- SQL Server (or other configured provider)
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
## MCP Integration
|
|
185
|
-
|
|
186
|
-
The following commands use **SmartStack MCP** for enhanced functionality:
|
|
187
|
-
|
|
188
|
-
| Command | MCP Tool | Purpose |
|
|
189
|
-
|---------|----------|---------|
|
|
190
|
-
| `/efcore:db-status` | `check_migrations` | Get structured migration list |
|
|
191
|
-
| `/efcore:conflicts` | `check_migrations` | Analyze branch conflicts |
|
|
192
|
-
| `/efcore:scan` | `check_migrations` | Multi-branch analysis |
|
|
193
|
-
|
|
194
|
-
### MCP Tool Reference
|
|
195
|
-
|
|
196
|
-
**Tool:** `mcp__smartstack__check_migrations`
|
|
197
|
-
|
|
198
|
-
**Description:** Analyze EF Core migrations for conflicts, ordering issues, and ModelSnapshot discrepancies between branches.
|
|
199
|
-
|
|
200
|
-
**Parameters:**
|
|
201
|
-
|
|
202
|
-
| Parameter | Type | Description |
|
|
203
|
-
|-----------|------|-------------|
|
|
204
|
-
| `projectPath` | string | EF Core project path (default: auto-detect) |
|
|
205
|
-
| `branch` | string | Git branch to check (default: current) |
|
|
206
|
-
| `compareBranch` | string | Branch to compare against |
|
|
207
|
-
|
|
208
|
-
**Response:** `MigrationCheckResult`
|
|
209
|
-
|
|
210
|
-
```typescript
|
|
211
|
-
interface MigrationCheckResult {
|
|
212
|
-
hasConflicts: boolean;
|
|
213
|
-
migrations: MigrationInfo[];
|
|
214
|
-
conflicts: MigrationConflict[];
|
|
215
|
-
suggestions: string[];
|
|
216
|
-
}
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
### Benefits of MCP Integration
|
|
220
|
-
|
|
221
|
-
1. **Consistency:** Same analysis logic in CLI, CI/CD, and IDE
|
|
222
|
-
2. **Structured Data:** Typed responses instead of text parsing
|
|
223
|
-
3. **Single Source of Truth:** Convention rules in MCP config
|
|
224
|
-
4. **Extensibility:** New checks benefit all commands
|
|
1
|
+
---
|
|
2
|
+
description: EF Core Commands - Migration and database management
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# EF Core Commands
|
|
6
|
+
|
|
7
|
+
Set of commands to manage Entity Framework Core: migrations, database, and seeding.
|
|
8
|
+
|
|
9
|
+
> **MCP INTEGRATION:** Commands use `mcp__smartstack__check_migrations` for conflict analysis and validation.
|
|
10
|
+
|
|
11
|
+
## Available Commands
|
|
12
|
+
|
|
13
|
+
### Migrations
|
|
14
|
+
|
|
15
|
+
| Command | Description | Risk |
|
|
16
|
+
|---------|-------------|------|
|
|
17
|
+
| `/efcore:migration` | Create/recreate migration (1 per feature) | Low |
|
|
18
|
+
| `/efcore:db-status` | Show migration status | None (read-only) |
|
|
19
|
+
| `/efcore:db-deploy` | Apply migrations | Low |
|
|
20
|
+
| `/efcore:db-seed` | Populate with data | Low |
|
|
21
|
+
| `/efcore:db-reset` | Drop + Recreate database | **HIGH** |
|
|
22
|
+
|
|
23
|
+
### Cross-Branch (v1.2)
|
|
24
|
+
|
|
25
|
+
| Command | Description | Risk |
|
|
26
|
+
|---------|-------------|------|
|
|
27
|
+
| `/efcore:scan` | Scan migrations across all branches | None (read-only) |
|
|
28
|
+
| `/efcore:conflicts` | Analyze potential conflicts (BLOCKING) | None (read-only) |
|
|
29
|
+
| `/efcore:rebase-snapshot` | Rebase ModelSnapshot on develop | Medium |
|
|
30
|
+
| `/efcore:squash` | Merge multiple migrations into one | **HIGH** |
|
|
31
|
+
|
|
32
|
+
## Golden Rule: 1 Migration per Feature
|
|
33
|
+
|
|
34
|
+
**Never accumulate multiple migrations on a feature.** If you modify the model:
|
|
35
|
+
1. Delete the existing migration
|
|
36
|
+
2. Recreate it with `/efcore:migration`
|
|
37
|
+
|
|
38
|
+
The `/efcore:migration` command handles this automatically.
|
|
39
|
+
|
|
40
|
+
## Migration Naming
|
|
41
|
+
|
|
42
|
+
Pattern: `{context}_v{version}_{sequence}_{Description}` (aligned with SmartStack MCP)
|
|
43
|
+
|
|
44
|
+
| Context | Version | Sequence | Description | Generated Name |
|
|
45
|
+
|---------|---------|----------|-------------|----------------|
|
|
46
|
+
| core | 1.2.0 | 001 | AddUserRoles | `core_v1.2.0_001_AddUserRoles` |
|
|
47
|
+
| core | 1.2.0 | 002 | AddPermissions | `core_v1.2.0_002_AddPermissions` |
|
|
48
|
+
| extensions | 1.3.0 | 001 | AddCustomFields | `extensions_v1.3.0_001_AddCustomFields` |
|
|
49
|
+
|
|
50
|
+
> **Note:** Context is `core` for SmartStack platform tables, `extensions` for client-specific extensions.
|
|
51
|
+
|
|
52
|
+
## Typical Workflow
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
1. /gitflow:10-start feature xxx → Create worktree + appsettings.Local.json
|
|
56
|
+
2. /efcore:db-deploy → Apply existing migrations
|
|
57
|
+
3. ... model modifications ...
|
|
58
|
+
4. /efcore:migration → Create THE migration for this feature
|
|
59
|
+
5. /efcore:db-deploy → Apply to local DB
|
|
60
|
+
6. /gitflow:3-commit → Commit
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Cross-Branch Workflow (v1.2)
|
|
64
|
+
|
|
65
|
+
With GitFlow worktrees, multiple branches can have migrations in parallel. To avoid conflicts:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
1. /efcore:scan → Scan all active branches
|
|
69
|
+
2. /efcore:conflicts → Check for conflicts (BLOCKING)
|
|
70
|
+
3. /efcore:rebase-snapshot → If conflict, rebase on develop
|
|
71
|
+
4. /efcore:migration → Create/recreate migration
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Recommended Merge Order
|
|
75
|
+
|
|
76
|
+
The scan analyzes migrations and recommends a merge order:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
ACTIVE BRANCHES (3)
|
|
80
|
+
--------------------
|
|
81
|
+
feature/user-roles +1 migration Conflict: NONE
|
|
82
|
+
feature/add-products +1 migration Conflict: POTENTIAL
|
|
83
|
+
feature/orders +2 migrations Conflict: HIGH
|
|
84
|
+
|
|
85
|
+
RECOMMENDED MERGE ORDER:
|
|
86
|
+
1. feature/user-roles (independent)
|
|
87
|
+
2. feature/add-products (before orders)
|
|
88
|
+
3. feature/orders (rebase required)
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Configuration
|
|
92
|
+
|
|
93
|
+
Commands use configuration in `.claude/gitflow/config.json`:
|
|
94
|
+
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"efcore": {
|
|
98
|
+
"database": {
|
|
99
|
+
"configFile": "appsettings.Local.json",
|
|
100
|
+
"connectionStringName": "DefaultConnection",
|
|
101
|
+
"provider": "SqlServer"
|
|
102
|
+
},
|
|
103
|
+
"crossBranch": {
|
|
104
|
+
"enabled": true,
|
|
105
|
+
"scanOnMigrationCreate": true,
|
|
106
|
+
"blockOnConflict": true,
|
|
107
|
+
"cacheExpiry": 300
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### crossBranch Options
|
|
114
|
+
|
|
115
|
+
| Option | Description | Default |
|
|
116
|
+
|--------|-------------|---------|
|
|
117
|
+
| `enabled` | Enable cross-branch validation | `true` |
|
|
118
|
+
| `scanOnMigrationCreate` | Scan before `/efcore:migration` | `true` |
|
|
119
|
+
| `blockOnConflict` | Block if conflict detected | `true` |
|
|
120
|
+
| `cacheExpiry` | Scan cache duration (seconds) | `300` |
|
|
121
|
+
|
|
122
|
+
## Environment Selection (NEW)
|
|
123
|
+
|
|
124
|
+
All EF Core commands now display the target database BEFORE execution:
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
================================================================================
|
|
128
|
+
EF CORE - DATABASE DEPLOY
|
|
129
|
+
================================================================================
|
|
130
|
+
|
|
131
|
+
FICHIERS DISPONIBLES:
|
|
132
|
+
- appsettings.json
|
|
133
|
+
- appsettings.Local.json
|
|
134
|
+
- appsettings.Development.json
|
|
135
|
+
|
|
136
|
+
ENVIRONNEMENT: appsettings.Local.json
|
|
137
|
+
|
|
138
|
+
CONNEXION CIBLE:
|
|
139
|
+
Server: localhost
|
|
140
|
+
Database: SmartStack_Dev
|
|
141
|
+
String: Server=localhost;Database=SmartStack_Dev;...
|
|
142
|
+
|
|
143
|
+
================================================================================
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Override Environment
|
|
147
|
+
|
|
148
|
+
Use `--env` flag to target a different environment:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
# Deploy to Development environment
|
|
152
|
+
/efcore:db-deploy --env Development
|
|
153
|
+
|
|
154
|
+
# Reset Staging database
|
|
155
|
+
/efcore:db-reset --env Staging
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Protection Production
|
|
159
|
+
|
|
160
|
+
Commands that modify the database are **automatically blocked** if `appsettings.Production.json` is detected.
|
|
161
|
+
|
|
162
|
+
## appsettings.Local.json File
|
|
163
|
+
|
|
164
|
+
This file contains the local connection string and is **never committed**:
|
|
165
|
+
|
|
166
|
+
```json
|
|
167
|
+
{
|
|
168
|
+
"ConnectionStrings": {
|
|
169
|
+
"DefaultConnection": "Server=localhost;Database=MyApp;Trusted_Connection=true;TrustServerCertificate=true"
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
The file is automatically created by `/gitflow:10-start` and added to `.gitignore`.
|
|
175
|
+
|
|
176
|
+
## Prerequisites
|
|
177
|
+
|
|
178
|
+
- .NET SDK installed
|
|
179
|
+
- EF Core Tools: `dotnet tool install --global dotnet-ef`
|
|
180
|
+
- SQL Server (or other configured provider)
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## MCP Integration
|
|
185
|
+
|
|
186
|
+
The following commands use **SmartStack MCP** for enhanced functionality:
|
|
187
|
+
|
|
188
|
+
| Command | MCP Tool | Purpose |
|
|
189
|
+
|---------|----------|---------|
|
|
190
|
+
| `/efcore:db-status` | `check_migrations` | Get structured migration list |
|
|
191
|
+
| `/efcore:conflicts` | `check_migrations` | Analyze branch conflicts |
|
|
192
|
+
| `/efcore:scan` | `check_migrations` | Multi-branch analysis |
|
|
193
|
+
|
|
194
|
+
### MCP Tool Reference
|
|
195
|
+
|
|
196
|
+
**Tool:** `mcp__smartstack__check_migrations`
|
|
197
|
+
|
|
198
|
+
**Description:** Analyze EF Core migrations for conflicts, ordering issues, and ModelSnapshot discrepancies between branches.
|
|
199
|
+
|
|
200
|
+
**Parameters:**
|
|
201
|
+
|
|
202
|
+
| Parameter | Type | Description |
|
|
203
|
+
|-----------|------|-------------|
|
|
204
|
+
| `projectPath` | string | EF Core project path (default: auto-detect) |
|
|
205
|
+
| `branch` | string | Git branch to check (default: current) |
|
|
206
|
+
| `compareBranch` | string | Branch to compare against |
|
|
207
|
+
|
|
208
|
+
**Response:** `MigrationCheckResult`
|
|
209
|
+
|
|
210
|
+
```typescript
|
|
211
|
+
interface MigrationCheckResult {
|
|
212
|
+
hasConflicts: boolean;
|
|
213
|
+
migrations: MigrationInfo[];
|
|
214
|
+
conflicts: MigrationConflict[];
|
|
215
|
+
suggestions: string[];
|
|
216
|
+
}
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Benefits of MCP Integration
|
|
220
|
+
|
|
221
|
+
1. **Consistency:** Same analysis logic in CLI, CI/CD, and IDE
|
|
222
|
+
2. **Structured Data:** Typed responses instead of text parsing
|
|
223
|
+
3. **Single Source of Truth:** Convention rules in MCP config
|
|
224
|
+
4. **Extensibility:** New checks benefit all commands
|
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Systematic implementation using Explore-Plan-Code-Test methodology
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
You are a systematic implementation specialist. Follow the EPCT workflow rigorously for every task.
|
|
6
|
-
|
|
7
|
-
**You need to always ULTRA THINK.**
|
|
8
|
-
|
|
9
|
-
## 1. EXPLORE
|
|
10
|
-
|
|
11
|
-
**Goal**: Find all relevant files for implementation
|
|
12
|
-
|
|
13
|
-
- Launch **parallel subagents** to search codebase (`explore-codebase` agent is good for that)
|
|
14
|
-
- Launch **parallel subagents** to gather online information (`websearch` agent is good for that)
|
|
15
|
-
- Find files to use as **examples** or **edit targets**
|
|
16
|
-
- Return relevant file paths and useful context
|
|
17
|
-
- **CRITICAL**: Think deeply before starting agents - know exactly what to search for
|
|
18
|
-
- Use multiple agents to search across different areas
|
|
19
|
-
|
|
20
|
-
## 2. PLAN
|
|
21
|
-
|
|
22
|
-
**Goal**: Create detailed implementation strategy
|
|
23
|
-
|
|
24
|
-
- Write comprehensive implementation plan including:
|
|
25
|
-
- Core functionality changes
|
|
26
|
-
- Test coverage requirements
|
|
27
|
-
- Lookbook components if needed
|
|
28
|
-
- Documentation updates
|
|
29
|
-
- **STOP and ASK** user if anything remains unclear
|
|
30
|
-
|
|
31
|
-
## 3. CODE
|
|
32
|
-
|
|
33
|
-
**Goal**: Implement following existing patterns
|
|
34
|
-
|
|
35
|
-
- Follow existing codebase style:
|
|
36
|
-
- Prefer clear variable/method names over comments
|
|
37
|
-
- Match existing patterns and conventions
|
|
38
|
-
- **CRITICAL RULES**:
|
|
39
|
-
- Stay **STRICTLY IN SCOPE** - change only what's needed
|
|
40
|
-
- NO comments unless absolutely necessary
|
|
41
|
-
- Run autoformatting scripts when done
|
|
42
|
-
- Fix reasonable linter warnings
|
|
43
|
-
|
|
44
|
-
## 4. TEST
|
|
45
|
-
|
|
46
|
-
**Goal**: Verify your changes work correctly
|
|
47
|
-
|
|
48
|
-
- **First check package.json** for available scripts:
|
|
49
|
-
- Look for: `lint`, `typecheck`, `test`, `format`, `build`
|
|
50
|
-
- Run relevant commands like `npm run lint`, `npm run typecheck`
|
|
51
|
-
- Run **ONLY tests related to your feature** using subagents
|
|
52
|
-
- **STAY IN SCOPE**: Don't run entire test suite, just tests that match your changes
|
|
53
|
-
- For major UX changes:
|
|
54
|
-
- Create test checklist for affected features only
|
|
55
|
-
- Use browser agent to verify specific functionality
|
|
56
|
-
- **CRITICAL**: Code must pass linting and type checks
|
|
57
|
-
- If tests fail: **return to PLAN phase** and rethink approach
|
|
58
|
-
|
|
59
|
-
## Execution Rules
|
|
60
|
-
|
|
61
|
-
- Use parallel execution for speed
|
|
62
|
-
- Think deeply at each phase transition
|
|
63
|
-
- Never exceed task boundaries
|
|
64
|
-
- Follow repo standards for tests/docs/components
|
|
65
|
-
- Test ONLY what you changed
|
|
66
|
-
|
|
67
|
-
## Priority
|
|
68
|
-
|
|
69
|
-
Correctness > Completeness > Speed. Each phase must be thorough before proceeding.
|
|
1
|
+
---
|
|
2
|
+
description: Systematic implementation using Explore-Plan-Code-Test methodology
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
You are a systematic implementation specialist. Follow the EPCT workflow rigorously for every task.
|
|
6
|
+
|
|
7
|
+
**You need to always ULTRA THINK.**
|
|
8
|
+
|
|
9
|
+
## 1. EXPLORE
|
|
10
|
+
|
|
11
|
+
**Goal**: Find all relevant files for implementation
|
|
12
|
+
|
|
13
|
+
- Launch **parallel subagents** to search codebase (`explore-codebase` agent is good for that)
|
|
14
|
+
- Launch **parallel subagents** to gather online information (`websearch` agent is good for that)
|
|
15
|
+
- Find files to use as **examples** or **edit targets**
|
|
16
|
+
- Return relevant file paths and useful context
|
|
17
|
+
- **CRITICAL**: Think deeply before starting agents - know exactly what to search for
|
|
18
|
+
- Use multiple agents to search across different areas
|
|
19
|
+
|
|
20
|
+
## 2. PLAN
|
|
21
|
+
|
|
22
|
+
**Goal**: Create detailed implementation strategy
|
|
23
|
+
|
|
24
|
+
- Write comprehensive implementation plan including:
|
|
25
|
+
- Core functionality changes
|
|
26
|
+
- Test coverage requirements
|
|
27
|
+
- Lookbook components if needed
|
|
28
|
+
- Documentation updates
|
|
29
|
+
- **STOP and ASK** user if anything remains unclear
|
|
30
|
+
|
|
31
|
+
## 3. CODE
|
|
32
|
+
|
|
33
|
+
**Goal**: Implement following existing patterns
|
|
34
|
+
|
|
35
|
+
- Follow existing codebase style:
|
|
36
|
+
- Prefer clear variable/method names over comments
|
|
37
|
+
- Match existing patterns and conventions
|
|
38
|
+
- **CRITICAL RULES**:
|
|
39
|
+
- Stay **STRICTLY IN SCOPE** - change only what's needed
|
|
40
|
+
- NO comments unless absolutely necessary
|
|
41
|
+
- Run autoformatting scripts when done
|
|
42
|
+
- Fix reasonable linter warnings
|
|
43
|
+
|
|
44
|
+
## 4. TEST
|
|
45
|
+
|
|
46
|
+
**Goal**: Verify your changes work correctly
|
|
47
|
+
|
|
48
|
+
- **First check package.json** for available scripts:
|
|
49
|
+
- Look for: `lint`, `typecheck`, `test`, `format`, `build`
|
|
50
|
+
- Run relevant commands like `npm run lint`, `npm run typecheck`
|
|
51
|
+
- Run **ONLY tests related to your feature** using subagents
|
|
52
|
+
- **STAY IN SCOPE**: Don't run entire test suite, just tests that match your changes
|
|
53
|
+
- For major UX changes:
|
|
54
|
+
- Create test checklist for affected features only
|
|
55
|
+
- Use browser agent to verify specific functionality
|
|
56
|
+
- **CRITICAL**: Code must pass linting and type checks
|
|
57
|
+
- If tests fail: **return to PLAN phase** and rethink approach
|
|
58
|
+
|
|
59
|
+
## Execution Rules
|
|
60
|
+
|
|
61
|
+
- Use parallel execution for speed
|
|
62
|
+
- Think deeply at each phase transition
|
|
63
|
+
- Never exceed task boundaries
|
|
64
|
+
- Follow repo standards for tests/docs/components
|
|
65
|
+
- Test ONLY what you changed
|
|
66
|
+
|
|
67
|
+
## Priority
|
|
68
|
+
|
|
69
|
+
Correctness > Completeness > Speed. Each phase must be thorough before proceeding.
|