@atlashub/smartstack-cli 1.5.1 → 1.5.2
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,153 +1,153 @@
|
|
|
1
|
-
# EF Core Environment Check (Shared Step)
|
|
2
|
-
|
|
3
|
-
> **Usage:** Include ce step dans toutes les commandes EF Core qui interagissent avec la base de donnees.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## STEP 0: Verification environnement et connexion
|
|
8
|
-
|
|
9
|
-
### 0.1 Detecter les fichiers appsettings disponibles
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
# Scanner les fichiers appsettings dans le projet API
|
|
13
|
-
API_DIR=$(find . -type d -name "*.Api" -o -name "*Web" | head -1)
|
|
14
|
-
if [ -z "$API_DIR" ]; then
|
|
15
|
-
API_DIR="."
|
|
16
|
-
fi
|
|
17
|
-
|
|
18
|
-
# Lister tous les appsettings
|
|
19
|
-
APPSETTINGS_FILES=$(find "$API_DIR" -maxdepth 1 -name "appsettings*.json" 2>/dev/null | sort)
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
### 0.2 Determiner l'environnement a utiliser
|
|
23
|
-
|
|
24
|
-
**Priorite:**
|
|
25
|
-
1. Flag `--env {Environment}` si fourni
|
|
26
|
-
2. `appsettings.Local.json` (defaut recommande)
|
|
27
|
-
3. Erreur si aucun fichier trouve
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
# Logique de selection
|
|
31
|
-
ENV_FLAG="$1" # --env Development par exemple
|
|
32
|
-
|
|
33
|
-
if [ -n "$ENV_FLAG" ]; then
|
|
34
|
-
SELECTED_ENV="appsettings.${ENV_FLAG}.json"
|
|
35
|
-
elif [ -f "$API_DIR/appsettings.Local.json" ]; then
|
|
36
|
-
SELECTED_ENV="appsettings.Local.json"
|
|
37
|
-
else
|
|
38
|
-
echo "ERROR: Aucun fichier appsettings trouve"
|
|
39
|
-
echo " Creez appsettings.Local.json ou utilisez --env {Environment}"
|
|
40
|
-
exit 1
|
|
41
|
-
fi
|
|
42
|
-
|
|
43
|
-
# Verifier que le fichier existe
|
|
44
|
-
if [ ! -f "$API_DIR/$SELECTED_ENV" ]; then
|
|
45
|
-
echo "ERROR: $SELECTED_ENV non trouve dans $API_DIR"
|
|
46
|
-
exit 1
|
|
47
|
-
fi
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### 0.3 Extraire et afficher la connection string
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
# Extraire la connection string (PowerShell pour parsing JSON fiable)
|
|
54
|
-
CONNECTION_STRING=$(powershell -Command "
|
|
55
|
-
\$json = Get-Content '$API_DIR/$SELECTED_ENV' | ConvertFrom-Json
|
|
56
|
-
\$json.ConnectionStrings.DefaultConnection
|
|
57
|
-
")
|
|
58
|
-
|
|
59
|
-
# Extraire le nom de la base de donnees
|
|
60
|
-
DATABASE_NAME=$(echo "$CONNECTION_STRING" | grep -oP 'Database=\K[^;]+' || echo "Unknown")
|
|
61
|
-
SERVER_NAME=$(echo "$CONNECTION_STRING" | grep -oP 'Server=\K[^;]+' || echo "Unknown")
|
|
62
|
-
|
|
63
|
-
# Masquer le mot de passe si present
|
|
64
|
-
CONNECTION_MASKED=$(echo "$CONNECTION_STRING" | sed 's/Password=[^;]*/Password=****/g')
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### 0.4 Afficher le resume
|
|
68
|
-
|
|
69
|
-
```
|
|
70
|
-
================================================================================
|
|
71
|
-
EF CORE - ENVIRONNEMENT
|
|
72
|
-
================================================================================
|
|
73
|
-
|
|
74
|
-
FICHIERS DISPONIBLES:
|
|
75
|
-
{liste des appsettings detectes}
|
|
76
|
-
|
|
77
|
-
SELECTION: {SELECTED_ENV} {(defaut) si Local}
|
|
78
|
-
|
|
79
|
-
CONNEXION:
|
|
80
|
-
Server: {SERVER_NAME}
|
|
81
|
-
Database: {DATABASE_NAME}
|
|
82
|
-
String: {CONNECTION_MASKED}
|
|
83
|
-
|
|
84
|
-
================================================================================
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### 0.5 Protection Production
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
# Bloquer si Production detecte (sauf pour db-status qui est read-only)
|
|
91
|
-
if [[ "$SELECTED_ENV" == *"Production"* ]]; then
|
|
92
|
-
echo "================================================================================
|
|
93
|
-
BLOQUE - ENVIRONNEMENT PRODUCTION
|
|
94
|
-
================================================================================
|
|
95
|
-
|
|
96
|
-
Cette commande est bloquee pour proteger les donnees de production.
|
|
97
|
-
|
|
98
|
-
OPTIONS:
|
|
99
|
-
1. Utilisez un environnement non-production
|
|
100
|
-
2. Contactez support@atlshub.ch pour assistance
|
|
101
|
-
|
|
102
|
-
================================================================================
|
|
103
|
-
"
|
|
104
|
-
exit 1
|
|
105
|
-
fi
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
### 0.6 Confirmation (pour commandes destructives)
|
|
109
|
-
|
|
110
|
-
> **Note:** Utiliser uniquement pour db-reset, db-seed, et autres commandes destructives.
|
|
111
|
-
|
|
112
|
-
```javascript
|
|
113
|
-
AskUserQuestion({
|
|
114
|
-
questions: [{
|
|
115
|
-
question: "Confirmer l'execution sur cette base de donnees?",
|
|
116
|
-
header: "Confirm",
|
|
117
|
-
options: [
|
|
118
|
-
{ label: "Oui, continuer", description: "Executer sur " + DATABASE_NAME },
|
|
119
|
-
{ label: "Non, annuler", description: "Arreter l'execution" }
|
|
120
|
-
],
|
|
121
|
-
multiSelect: false
|
|
122
|
-
}]
|
|
123
|
-
})
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
## Variables exportees
|
|
129
|
-
|
|
130
|
-
Apres ce step, les variables suivantes sont disponibles:
|
|
131
|
-
|
|
132
|
-
| Variable | Description |
|
|
133
|
-
|----------|-------------|
|
|
134
|
-
| `SELECTED_ENV` | Fichier appsettings utilise |
|
|
135
|
-
| `CONNECTION_STRING` | Connection string complete |
|
|
136
|
-
| `CONNECTION_MASKED` | Connection string masquee |
|
|
137
|
-
| `DATABASE_NAME` | Nom de la base de donnees |
|
|
138
|
-
| `SERVER_NAME` | Nom du serveur |
|
|
139
|
-
| `API_DIR` | Repertoire du projet API |
|
|
140
|
-
|
|
141
|
-
---
|
|
142
|
-
|
|
143
|
-
## Utilisation dans les commandes
|
|
144
|
-
|
|
145
|
-
```markdown
|
|
146
|
-
## STEP 0: Verification environnement
|
|
147
|
-
|
|
148
|
-
> **Include:** `_env-check.md`
|
|
149
|
-
|
|
150
|
-
{Executer les etapes 0.1 a 0.4}
|
|
151
|
-
{Executer 0.5 si commande modifie la base}
|
|
152
|
-
{Executer 0.6 si commande est destructive}
|
|
153
|
-
```
|
|
1
|
+
# EF Core Environment Check (Shared Step)
|
|
2
|
+
|
|
3
|
+
> **Usage:** Include ce step dans toutes les commandes EF Core qui interagissent avec la base de donnees.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## STEP 0: Verification environnement et connexion
|
|
8
|
+
|
|
9
|
+
### 0.1 Detecter les fichiers appsettings disponibles
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Scanner les fichiers appsettings dans le projet API
|
|
13
|
+
API_DIR=$(find . -type d -name "*.Api" -o -name "*Web" | head -1)
|
|
14
|
+
if [ -z "$API_DIR" ]; then
|
|
15
|
+
API_DIR="."
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
# Lister tous les appsettings
|
|
19
|
+
APPSETTINGS_FILES=$(find "$API_DIR" -maxdepth 1 -name "appsettings*.json" 2>/dev/null | sort)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### 0.2 Determiner l'environnement a utiliser
|
|
23
|
+
|
|
24
|
+
**Priorite:**
|
|
25
|
+
1. Flag `--env {Environment}` si fourni
|
|
26
|
+
2. `appsettings.Local.json` (defaut recommande)
|
|
27
|
+
3. Erreur si aucun fichier trouve
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Logique de selection
|
|
31
|
+
ENV_FLAG="$1" # --env Development par exemple
|
|
32
|
+
|
|
33
|
+
if [ -n "$ENV_FLAG" ]; then
|
|
34
|
+
SELECTED_ENV="appsettings.${ENV_FLAG}.json"
|
|
35
|
+
elif [ -f "$API_DIR/appsettings.Local.json" ]; then
|
|
36
|
+
SELECTED_ENV="appsettings.Local.json"
|
|
37
|
+
else
|
|
38
|
+
echo "ERROR: Aucun fichier appsettings trouve"
|
|
39
|
+
echo " Creez appsettings.Local.json ou utilisez --env {Environment}"
|
|
40
|
+
exit 1
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
# Verifier que le fichier existe
|
|
44
|
+
if [ ! -f "$API_DIR/$SELECTED_ENV" ]; then
|
|
45
|
+
echo "ERROR: $SELECTED_ENV non trouve dans $API_DIR"
|
|
46
|
+
exit 1
|
|
47
|
+
fi
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 0.3 Extraire et afficher la connection string
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Extraire la connection string (PowerShell pour parsing JSON fiable)
|
|
54
|
+
CONNECTION_STRING=$(powershell -Command "
|
|
55
|
+
\$json = Get-Content '$API_DIR/$SELECTED_ENV' | ConvertFrom-Json
|
|
56
|
+
\$json.ConnectionStrings.DefaultConnection
|
|
57
|
+
")
|
|
58
|
+
|
|
59
|
+
# Extraire le nom de la base de donnees
|
|
60
|
+
DATABASE_NAME=$(echo "$CONNECTION_STRING" | grep -oP 'Database=\K[^;]+' || echo "Unknown")
|
|
61
|
+
SERVER_NAME=$(echo "$CONNECTION_STRING" | grep -oP 'Server=\K[^;]+' || echo "Unknown")
|
|
62
|
+
|
|
63
|
+
# Masquer le mot de passe si present
|
|
64
|
+
CONNECTION_MASKED=$(echo "$CONNECTION_STRING" | sed 's/Password=[^;]*/Password=****/g')
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 0.4 Afficher le resume
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
================================================================================
|
|
71
|
+
EF CORE - ENVIRONNEMENT
|
|
72
|
+
================================================================================
|
|
73
|
+
|
|
74
|
+
FICHIERS DISPONIBLES:
|
|
75
|
+
{liste des appsettings detectes}
|
|
76
|
+
|
|
77
|
+
SELECTION: {SELECTED_ENV} {(defaut) si Local}
|
|
78
|
+
|
|
79
|
+
CONNEXION:
|
|
80
|
+
Server: {SERVER_NAME}
|
|
81
|
+
Database: {DATABASE_NAME}
|
|
82
|
+
String: {CONNECTION_MASKED}
|
|
83
|
+
|
|
84
|
+
================================================================================
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 0.5 Protection Production
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Bloquer si Production detecte (sauf pour db-status qui est read-only)
|
|
91
|
+
if [[ "$SELECTED_ENV" == *"Production"* ]]; then
|
|
92
|
+
echo "================================================================================
|
|
93
|
+
BLOQUE - ENVIRONNEMENT PRODUCTION
|
|
94
|
+
================================================================================
|
|
95
|
+
|
|
96
|
+
Cette commande est bloquee pour proteger les donnees de production.
|
|
97
|
+
|
|
98
|
+
OPTIONS:
|
|
99
|
+
1. Utilisez un environnement non-production
|
|
100
|
+
2. Contactez support@atlshub.ch pour assistance
|
|
101
|
+
|
|
102
|
+
================================================================================
|
|
103
|
+
"
|
|
104
|
+
exit 1
|
|
105
|
+
fi
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 0.6 Confirmation (pour commandes destructives)
|
|
109
|
+
|
|
110
|
+
> **Note:** Utiliser uniquement pour db-reset, db-seed, et autres commandes destructives.
|
|
111
|
+
|
|
112
|
+
```javascript
|
|
113
|
+
AskUserQuestion({
|
|
114
|
+
questions: [{
|
|
115
|
+
question: "Confirmer l'execution sur cette base de donnees?",
|
|
116
|
+
header: "Confirm",
|
|
117
|
+
options: [
|
|
118
|
+
{ label: "Oui, continuer", description: "Executer sur " + DATABASE_NAME },
|
|
119
|
+
{ label: "Non, annuler", description: "Arreter l'execution" }
|
|
120
|
+
],
|
|
121
|
+
multiSelect: false
|
|
122
|
+
}]
|
|
123
|
+
})
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Variables exportees
|
|
129
|
+
|
|
130
|
+
Apres ce step, les variables suivantes sont disponibles:
|
|
131
|
+
|
|
132
|
+
| Variable | Description |
|
|
133
|
+
|----------|-------------|
|
|
134
|
+
| `SELECTED_ENV` | Fichier appsettings utilise |
|
|
135
|
+
| `CONNECTION_STRING` | Connection string complete |
|
|
136
|
+
| `CONNECTION_MASKED` | Connection string masquee |
|
|
137
|
+
| `DATABASE_NAME` | Nom de la base de donnees |
|
|
138
|
+
| `SERVER_NAME` | Nom du serveur |
|
|
139
|
+
| `API_DIR` | Repertoire du projet API |
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Utilisation dans les commandes
|
|
144
|
+
|
|
145
|
+
```markdown
|
|
146
|
+
## STEP 0: Verification environnement
|
|
147
|
+
|
|
148
|
+
> **Include:** `_env-check.md`
|
|
149
|
+
|
|
150
|
+
{Executer les etapes 0.1 a 0.4}
|
|
151
|
+
{Executer 0.5 si commande modifie la base}
|
|
152
|
+
{Executer 0.6 si commande est destructive}
|
|
153
|
+
```
|
|
@@ -1,186 +1,186 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Analyze conflicts before merge (BLOCKING if conflict detected)
|
|
3
|
-
agent: efcore-conflicts
|
|
4
|
-
model: sonnet
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# EF Core Conflicts - Cross-Branch Conflict Analysis
|
|
8
|
-
|
|
9
|
-
Analyzes potential conflicts between current branch and target branch using **SmartStack MCP**.
|
|
10
|
-
|
|
11
|
-
**USAGE:** Before a merge or commit to ensure there are no migration conflicts.
|
|
12
|
-
|
|
13
|
-
**BEHAVIOR:** Returns exit code 1 if conflict detected (blocks merge/commit).
|
|
14
|
-
|
|
15
|
-
**INTEGRATION:** Uses `mcp__smartstack__check_migrations` for structured analysis.
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## STEP 1: Invoke MCP check_migrations
|
|
20
|
-
|
|
21
|
-
> **MCP INTEGRATION:** This command delegates conflict analysis to the SmartStack MCP server
|
|
22
|
-
> which provides structured, consistent analysis across all SmartStack projects.
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
CALL mcp__smartstack__check_migrations WITH:
|
|
26
|
-
- branch: {current branch}
|
|
27
|
-
- compareBranch: "develop" (or specified target)
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
**Claude instruction:** Use the MCP tool `mcp__smartstack__check_migrations` with parameters:
|
|
31
|
-
|
|
32
|
-
```json
|
|
33
|
-
{
|
|
34
|
-
"branch": "<current_branch>",
|
|
35
|
-
"compareBranch": "develop"
|
|
36
|
-
}
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## STEP 2: Parse MCP Response
|
|
42
|
-
|
|
43
|
-
The MCP returns a structured `MigrationCheckResult`:
|
|
44
|
-
|
|
45
|
-
```typescript
|
|
46
|
-
interface MigrationCheckResult {
|
|
47
|
-
hasConflicts: boolean;
|
|
48
|
-
migrations: MigrationInfo[];
|
|
49
|
-
conflicts: MigrationConflict[];
|
|
50
|
-
suggestions: string[];
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
interface MigrationConflict {
|
|
54
|
-
type: 'order' | 'snapshot' | 'dependency' | 'naming';
|
|
55
|
-
description: string;
|
|
56
|
-
files: string[];
|
|
57
|
-
resolution: string;
|
|
58
|
-
}
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## STEP 3: Evaluate Conflict Level
|
|
64
|
-
|
|
65
|
-
Based on MCP response:
|
|
66
|
-
|
|
67
|
-
| Conflict Type | Level | Action |
|
|
68
|
-
|---------------|-------|--------|
|
|
69
|
-
| `naming` | LOW | Warning only |
|
|
70
|
-
| `order` | MEDIUM | Warning, suggest reorder |
|
|
71
|
-
| `dependency` | HIGH | Block merge |
|
|
72
|
-
| `snapshot` | CRITICAL | Block merge, require rebase |
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
## STEP 4: Display Results
|
|
77
|
-
|
|
78
|
-
**If `hasConflicts: false`:**
|
|
79
|
-
|
|
80
|
-
```
|
|
81
|
-
================================================================================
|
|
82
|
-
EF CORE CONFLICT ANALYSIS (via MCP)
|
|
83
|
-
================================================================================
|
|
84
|
-
|
|
85
|
-
BRANCH: {current_branch}
|
|
86
|
-
TARGET: develop
|
|
87
|
-
|
|
88
|
-
STATUS: OK - No conflicts detected
|
|
89
|
-
|
|
90
|
-
Migrations: {count}
|
|
91
|
-
ModelSnapshot: Synchronized
|
|
92
|
-
|
|
93
|
-
================================================================================
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
**If `hasConflicts: true`:**
|
|
97
|
-
|
|
98
|
-
```
|
|
99
|
-
================================================================================
|
|
100
|
-
EF CORE CONFLICT ANALYSIS (via MCP)
|
|
101
|
-
================================================================================
|
|
102
|
-
|
|
103
|
-
BRANCH: {current_branch}
|
|
104
|
-
TARGET: develop
|
|
105
|
-
|
|
106
|
-
STATUS: CONFLICT DETECTED
|
|
107
|
-
|
|
108
|
-
CONFLICTS FOUND:
|
|
109
|
-
{for each conflict in conflicts}
|
|
110
|
-
[{conflict.type}] {conflict.description}
|
|
111
|
-
Files: {conflict.files.join(', ')}
|
|
112
|
-
Resolution: {conflict.resolution}
|
|
113
|
-
{end for}
|
|
114
|
-
|
|
115
|
-
SUGGESTIONS:
|
|
116
|
-
{for each suggestion in suggestions}
|
|
117
|
-
- {suggestion}
|
|
118
|
-
{end for}
|
|
119
|
-
|
|
120
|
-
================================================================================
|
|
121
|
-
BLOCKING: Merge not allowed until conflicts are resolved.
|
|
122
|
-
================================================================================
|
|
123
|
-
|
|
124
|
-
RESOLUTION OPTIONS:
|
|
125
|
-
/efcore:rebase-snapshot Rebase ModelSnapshot on develop (recommended)
|
|
126
|
-
/efcore:conflicts --force Ignore and proceed (not recommended)
|
|
127
|
-
|
|
128
|
-
================================================================================
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
## STEP 5: Exit Code
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
if [ "$HAS_CONFLICTS" = "true" ]; then
|
|
137
|
-
exit 1 # BLOCKING
|
|
138
|
-
else
|
|
139
|
-
exit 0 # OK
|
|
140
|
-
fi
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
## Options
|
|
146
|
-
|
|
147
|
-
| Option | Description |
|
|
148
|
-
|--------|-------------|
|
|
149
|
-
| `--force` | Ignore conflict (not recommended) |
|
|
150
|
-
| `--target <branch>` | Compare with branch other than develop |
|
|
151
|
-
| `--json` | Output raw MCP JSON response |
|
|
152
|
-
|
|
153
|
-
---
|
|
154
|
-
|
|
155
|
-
## Exit Codes
|
|
156
|
-
|
|
157
|
-
| Code | Meaning |
|
|
158
|
-
|------|---------|
|
|
159
|
-
| 0 | No conflict or minor conflict |
|
|
160
|
-
| 1 | Conflict detected - merge blocked |
|
|
161
|
-
| 2 | MCP connection error |
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
## MCP Tool Reference
|
|
166
|
-
|
|
167
|
-
**Tool:** `mcp__smartstack__check_migrations`
|
|
168
|
-
|
|
169
|
-
**Description:** Analyze EF Core migrations for conflicts, ordering issues, and ModelSnapshot discrepancies between branches
|
|
170
|
-
|
|
171
|
-
**Parameters:**
|
|
172
|
-
|
|
173
|
-
| Parameter | Type | Description |
|
|
174
|
-
|-----------|------|-------------|
|
|
175
|
-
| `projectPath` | string | EF Core project path (default: auto-detect) |
|
|
176
|
-
| `branch` | string | Git branch to check (default: current) |
|
|
177
|
-
| `compareBranch` | string | Branch to compare against |
|
|
178
|
-
|
|
179
|
-
---
|
|
180
|
-
|
|
181
|
-
## Why MCP Integration?
|
|
182
|
-
|
|
183
|
-
1. **Consistency:** Same analysis logic across CLI, CI/CD, and IDE
|
|
184
|
-
2. **Maintainability:** Single source of truth in MCP server
|
|
185
|
-
3. **Structured Output:** Typed responses instead of bash text parsing
|
|
186
|
-
4. **Extensibility:** Easy to add new conflict types in one place
|
|
1
|
+
---
|
|
2
|
+
description: Analyze conflicts before merge (BLOCKING if conflict detected)
|
|
3
|
+
agent: efcore-conflicts
|
|
4
|
+
model: sonnet
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# EF Core Conflicts - Cross-Branch Conflict Analysis
|
|
8
|
+
|
|
9
|
+
Analyzes potential conflicts between current branch and target branch using **SmartStack MCP**.
|
|
10
|
+
|
|
11
|
+
**USAGE:** Before a merge or commit to ensure there are no migration conflicts.
|
|
12
|
+
|
|
13
|
+
**BEHAVIOR:** Returns exit code 1 if conflict detected (blocks merge/commit).
|
|
14
|
+
|
|
15
|
+
**INTEGRATION:** Uses `mcp__smartstack__check_migrations` for structured analysis.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## STEP 1: Invoke MCP check_migrations
|
|
20
|
+
|
|
21
|
+
> **MCP INTEGRATION:** This command delegates conflict analysis to the SmartStack MCP server
|
|
22
|
+
> which provides structured, consistent analysis across all SmartStack projects.
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
CALL mcp__smartstack__check_migrations WITH:
|
|
26
|
+
- branch: {current branch}
|
|
27
|
+
- compareBranch: "develop" (or specified target)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Claude instruction:** Use the MCP tool `mcp__smartstack__check_migrations` with parameters:
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"branch": "<current_branch>",
|
|
35
|
+
"compareBranch": "develop"
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## STEP 2: Parse MCP Response
|
|
42
|
+
|
|
43
|
+
The MCP returns a structured `MigrationCheckResult`:
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
interface MigrationCheckResult {
|
|
47
|
+
hasConflicts: boolean;
|
|
48
|
+
migrations: MigrationInfo[];
|
|
49
|
+
conflicts: MigrationConflict[];
|
|
50
|
+
suggestions: string[];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
interface MigrationConflict {
|
|
54
|
+
type: 'order' | 'snapshot' | 'dependency' | 'naming';
|
|
55
|
+
description: string;
|
|
56
|
+
files: string[];
|
|
57
|
+
resolution: string;
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## STEP 3: Evaluate Conflict Level
|
|
64
|
+
|
|
65
|
+
Based on MCP response:
|
|
66
|
+
|
|
67
|
+
| Conflict Type | Level | Action |
|
|
68
|
+
|---------------|-------|--------|
|
|
69
|
+
| `naming` | LOW | Warning only |
|
|
70
|
+
| `order` | MEDIUM | Warning, suggest reorder |
|
|
71
|
+
| `dependency` | HIGH | Block merge |
|
|
72
|
+
| `snapshot` | CRITICAL | Block merge, require rebase |
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## STEP 4: Display Results
|
|
77
|
+
|
|
78
|
+
**If `hasConflicts: false`:**
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
================================================================================
|
|
82
|
+
EF CORE CONFLICT ANALYSIS (via MCP)
|
|
83
|
+
================================================================================
|
|
84
|
+
|
|
85
|
+
BRANCH: {current_branch}
|
|
86
|
+
TARGET: develop
|
|
87
|
+
|
|
88
|
+
STATUS: OK - No conflicts detected
|
|
89
|
+
|
|
90
|
+
Migrations: {count}
|
|
91
|
+
ModelSnapshot: Synchronized
|
|
92
|
+
|
|
93
|
+
================================================================================
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**If `hasConflicts: true`:**
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
================================================================================
|
|
100
|
+
EF CORE CONFLICT ANALYSIS (via MCP)
|
|
101
|
+
================================================================================
|
|
102
|
+
|
|
103
|
+
BRANCH: {current_branch}
|
|
104
|
+
TARGET: develop
|
|
105
|
+
|
|
106
|
+
STATUS: CONFLICT DETECTED
|
|
107
|
+
|
|
108
|
+
CONFLICTS FOUND:
|
|
109
|
+
{for each conflict in conflicts}
|
|
110
|
+
[{conflict.type}] {conflict.description}
|
|
111
|
+
Files: {conflict.files.join(', ')}
|
|
112
|
+
Resolution: {conflict.resolution}
|
|
113
|
+
{end for}
|
|
114
|
+
|
|
115
|
+
SUGGESTIONS:
|
|
116
|
+
{for each suggestion in suggestions}
|
|
117
|
+
- {suggestion}
|
|
118
|
+
{end for}
|
|
119
|
+
|
|
120
|
+
================================================================================
|
|
121
|
+
BLOCKING: Merge not allowed until conflicts are resolved.
|
|
122
|
+
================================================================================
|
|
123
|
+
|
|
124
|
+
RESOLUTION OPTIONS:
|
|
125
|
+
/efcore:rebase-snapshot Rebase ModelSnapshot on develop (recommended)
|
|
126
|
+
/efcore:conflicts --force Ignore and proceed (not recommended)
|
|
127
|
+
|
|
128
|
+
================================================================================
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## STEP 5: Exit Code
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
if [ "$HAS_CONFLICTS" = "true" ]; then
|
|
137
|
+
exit 1 # BLOCKING
|
|
138
|
+
else
|
|
139
|
+
exit 0 # OK
|
|
140
|
+
fi
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Options
|
|
146
|
+
|
|
147
|
+
| Option | Description |
|
|
148
|
+
|--------|-------------|
|
|
149
|
+
| `--force` | Ignore conflict (not recommended) |
|
|
150
|
+
| `--target <branch>` | Compare with branch other than develop |
|
|
151
|
+
| `--json` | Output raw MCP JSON response |
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Exit Codes
|
|
156
|
+
|
|
157
|
+
| Code | Meaning |
|
|
158
|
+
|------|---------|
|
|
159
|
+
| 0 | No conflict or minor conflict |
|
|
160
|
+
| 1 | Conflict detected - merge blocked |
|
|
161
|
+
| 2 | MCP connection error |
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## MCP Tool Reference
|
|
166
|
+
|
|
167
|
+
**Tool:** `mcp__smartstack__check_migrations`
|
|
168
|
+
|
|
169
|
+
**Description:** Analyze EF Core migrations for conflicts, ordering issues, and ModelSnapshot discrepancies between branches
|
|
170
|
+
|
|
171
|
+
**Parameters:**
|
|
172
|
+
|
|
173
|
+
| Parameter | Type | Description |
|
|
174
|
+
|-----------|------|-------------|
|
|
175
|
+
| `projectPath` | string | EF Core project path (default: auto-detect) |
|
|
176
|
+
| `branch` | string | Git branch to check (default: current) |
|
|
177
|
+
| `compareBranch` | string | Branch to compare against |
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Why MCP Integration?
|
|
182
|
+
|
|
183
|
+
1. **Consistency:** Same analysis logic across CLI, CI/CD, and IDE
|
|
184
|
+
2. **Maintainability:** Single source of truth in MCP server
|
|
185
|
+
3. **Structured Output:** Typed responses instead of bash text parsing
|
|
186
|
+
4. **Extensibility:** Easy to add new conflict types in one place
|