@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
package/package.json
CHANGED
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@atlashub/smartstack-cli",
|
|
3
|
-
"version": "1.5.
|
|
4
|
-
"description": "SmartStack Claude Code automation toolkit - GitFlow, APEX, EF Core migrations, prompts and more",
|
|
5
|
-
"author": {
|
|
6
|
-
"name": "SmartStack",
|
|
7
|
-
"email": "contact@smartstack.app",
|
|
8
|
-
"url": "https://smartstack.app"
|
|
9
|
-
},
|
|
10
|
-
"license": "MIT",
|
|
11
|
-
"private": false,
|
|
12
|
-
"type": "commonjs",
|
|
13
|
-
"main": "./dist/index.js",
|
|
14
|
-
"types": "./dist/index.d.ts",
|
|
15
|
-
"bin": {
|
|
16
|
-
"smartstack": "./dist/index.js",
|
|
17
|
-
"ss": "./dist/index.js"
|
|
18
|
-
},
|
|
19
|
-
"files": [
|
|
20
|
-
"dist",
|
|
21
|
-
"templates",
|
|
22
|
-
"config",
|
|
23
|
-
".documentation"
|
|
24
|
-
],
|
|
25
|
-
"engines": {
|
|
26
|
-
"node": ">=18.0.0"
|
|
27
|
-
},
|
|
28
|
-
"publishConfig": {
|
|
29
|
-
"registry": "https://registry.npmjs.org",
|
|
30
|
-
"access": "public"
|
|
31
|
-
},
|
|
32
|
-
"repository": {
|
|
33
|
-
"type": "git",
|
|
34
|
-
"url": "git+https://dev.azure.com/AtlasHub/SmartStack/_git/SmartStack.cli"
|
|
35
|
-
},
|
|
36
|
-
"homepage": "https://smartstack.app",
|
|
37
|
-
"keywords": [
|
|
38
|
-
"smartstack",
|
|
39
|
-
"claude",
|
|
40
|
-
"claude-code",
|
|
41
|
-
"gitflow",
|
|
42
|
-
"apex",
|
|
43
|
-
"efcore",
|
|
44
|
-
"entity-framework",
|
|
45
|
-
"migrations",
|
|
46
|
-
"cli",
|
|
47
|
-
"automation",
|
|
48
|
-
"anthropic",
|
|
49
|
-
"dotnet",
|
|
50
|
-
"prompts",
|
|
51
|
-
"ai-tools"
|
|
52
|
-
],
|
|
53
|
-
"scripts": {
|
|
54
|
-
"dev": "tsup --watch",
|
|
55
|
-
"build": "npx tsup",
|
|
56
|
-
"lint": "eslint src --ext .ts",
|
|
57
|
-
"format": "prettier --write \"src/**/*.ts\"",
|
|
58
|
-
"prepublishOnly": "npm run build",
|
|
59
|
-
"test": "node --test",
|
|
60
|
-
"link": "npm run build && npm link",
|
|
61
|
-
"install:local": "npm run build && node dist/index.js install --local --force",
|
|
62
|
-
"install:global": "npm run build && node dist/index.js install --force",
|
|
63
|
-
"status:local": "node dist/index.js status --local --verbose",
|
|
64
|
-
"status:global": "node dist/index.js status --verbose"
|
|
65
|
-
},
|
|
66
|
-
"dependencies": {
|
|
67
|
-
"chalk": "^5.3.0",
|
|
68
|
-
"cli-table3": "^0.6.3",
|
|
69
|
-
"commander": "^12.0.0",
|
|
70
|
-
"fs-extra": "^11.2.0",
|
|
71
|
-
"inquirer": "^9.2.12",
|
|
72
|
-
"jsonwebtoken": "^9.0.3",
|
|
73
|
-
"ora": "^8.0.1",
|
|
74
|
-
"zod": "^3.22.4"
|
|
75
|
-
},
|
|
76
|
-
"devDependencies": {
|
|
77
|
-
"@types/fs-extra": "^11.0.4",
|
|
78
|
-
"@types/inquirer": "^9.0.7",
|
|
79
|
-
"@types/jsonwebtoken": "^9.0.10",
|
|
80
|
-
"@types/node": "^20.10.6",
|
|
81
|
-
"@typescript-eslint/eslint-plugin": "^6.18.0",
|
|
82
|
-
"@typescript-eslint/parser": "^6.18.0",
|
|
83
|
-
"eslint": "^8.56.0",
|
|
84
|
-
"prettier": "^3.2.4",
|
|
85
|
-
"tsup": "^8.0.1",
|
|
86
|
-
"typescript": "^5.3.3"
|
|
87
|
-
}
|
|
88
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@atlashub/smartstack-cli",
|
|
3
|
+
"version": "1.5.2",
|
|
4
|
+
"description": "SmartStack Claude Code automation toolkit - GitFlow, APEX, EF Core migrations, prompts and more",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "SmartStack",
|
|
7
|
+
"email": "contact@smartstack.app",
|
|
8
|
+
"url": "https://smartstack.app"
|
|
9
|
+
},
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"private": false,
|
|
12
|
+
"type": "commonjs",
|
|
13
|
+
"main": "./dist/index.js",
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"bin": {
|
|
16
|
+
"smartstack": "./dist/index.js",
|
|
17
|
+
"ss": "./dist/index.js"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"templates",
|
|
22
|
+
"config",
|
|
23
|
+
".documentation"
|
|
24
|
+
],
|
|
25
|
+
"engines": {
|
|
26
|
+
"node": ">=18.0.0"
|
|
27
|
+
},
|
|
28
|
+
"publishConfig": {
|
|
29
|
+
"registry": "https://registry.npmjs.org",
|
|
30
|
+
"access": "public"
|
|
31
|
+
},
|
|
32
|
+
"repository": {
|
|
33
|
+
"type": "git",
|
|
34
|
+
"url": "git+https://dev.azure.com/AtlasHub/SmartStack/_git/SmartStack.cli"
|
|
35
|
+
},
|
|
36
|
+
"homepage": "https://smartstack.app",
|
|
37
|
+
"keywords": [
|
|
38
|
+
"smartstack",
|
|
39
|
+
"claude",
|
|
40
|
+
"claude-code",
|
|
41
|
+
"gitflow",
|
|
42
|
+
"apex",
|
|
43
|
+
"efcore",
|
|
44
|
+
"entity-framework",
|
|
45
|
+
"migrations",
|
|
46
|
+
"cli",
|
|
47
|
+
"automation",
|
|
48
|
+
"anthropic",
|
|
49
|
+
"dotnet",
|
|
50
|
+
"prompts",
|
|
51
|
+
"ai-tools"
|
|
52
|
+
],
|
|
53
|
+
"scripts": {
|
|
54
|
+
"dev": "tsup --watch",
|
|
55
|
+
"build": "npx tsup",
|
|
56
|
+
"lint": "eslint src --ext .ts",
|
|
57
|
+
"format": "prettier --write \"src/**/*.ts\"",
|
|
58
|
+
"prepublishOnly": "npm run build",
|
|
59
|
+
"test": "node --test",
|
|
60
|
+
"link": "npm run build && npm link",
|
|
61
|
+
"install:local": "npm run build && node dist/index.js install --local --force",
|
|
62
|
+
"install:global": "npm run build && node dist/index.js install --force",
|
|
63
|
+
"status:local": "node dist/index.js status --local --verbose",
|
|
64
|
+
"status:global": "node dist/index.js status --verbose"
|
|
65
|
+
},
|
|
66
|
+
"dependencies": {
|
|
67
|
+
"chalk": "^5.3.0",
|
|
68
|
+
"cli-table3": "^0.6.3",
|
|
69
|
+
"commander": "^12.0.0",
|
|
70
|
+
"fs-extra": "^11.2.0",
|
|
71
|
+
"inquirer": "^9.2.12",
|
|
72
|
+
"jsonwebtoken": "^9.0.3",
|
|
73
|
+
"ora": "^8.0.1",
|
|
74
|
+
"zod": "^3.22.4"
|
|
75
|
+
},
|
|
76
|
+
"devDependencies": {
|
|
77
|
+
"@types/fs-extra": "^11.0.4",
|
|
78
|
+
"@types/inquirer": "^9.0.7",
|
|
79
|
+
"@types/jsonwebtoken": "^9.0.10",
|
|
80
|
+
"@types/node": "^20.10.6",
|
|
81
|
+
"@typescript-eslint/eslint-plugin": "^6.18.0",
|
|
82
|
+
"@typescript-eslint/parser": "^6.18.0",
|
|
83
|
+
"eslint": "^8.56.0",
|
|
84
|
+
"prettier": "^3.2.4",
|
|
85
|
+
"tsup": "^8.0.1",
|
|
86
|
+
"typescript": "^5.3.3"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: action
|
|
3
|
-
description: Conditional action executor - performs actions only when specific conditions are met
|
|
4
|
-
color: purple
|
|
5
|
-
model: haiku
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
Batch conditional executor. Handle ≤5 tasks. VERIFY INDEPENDENTLY before each action.
|
|
9
|
-
|
|
10
|
-
## Workflow
|
|
11
|
-
|
|
12
|
-
1. **VERIFY each item yourself** (never trust input):
|
|
13
|
-
- **Exports/Types**: Grep for `import.*{name}` in codebase
|
|
14
|
-
- **Files**: Check framework patterns via explore-docs, then Grep for imports
|
|
15
|
-
- **Dependencies**: Grep for `from 'pkg'` or `require('pkg')`
|
|
16
|
-
|
|
17
|
-
2. **Execute ONLY if verified unused**:
|
|
18
|
-
- If used → Skip with reason, continue next
|
|
19
|
-
- If unused → Execute action, confirm success
|
|
20
|
-
|
|
21
|
-
3. **Report**: Count executed, count skipped with reasons
|
|
22
|
-
|
|
23
|
-
## Rules
|
|
24
|
-
|
|
25
|
-
- **MANDATORY**: Verify each item independently using Grep/explore-docs
|
|
26
|
-
- **Skip if used**: Continue to next task
|
|
27
|
-
- **Max 5 tasks**: Process all in batch
|
|
28
|
-
|
|
29
|
-
## Example
|
|
30
|
-
|
|
31
|
-
"Verify and remove: lodash, axios, moment"
|
|
32
|
-
|
|
33
|
-
1. Grep `lodash` → Found in utils.ts → Skip
|
|
34
|
-
2. Grep `axios` → Not found → `pnpm remove axios` → Done
|
|
35
|
-
3. Grep `moment` → Not found → `pnpm remove moment` → Done
|
|
36
|
-
Report: "Removed 2/3: axios, moment. Skipped: lodash (used in utils.ts)"
|
|
1
|
+
---
|
|
2
|
+
name: action
|
|
3
|
+
description: Conditional action executor - performs actions only when specific conditions are met
|
|
4
|
+
color: purple
|
|
5
|
+
model: haiku
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Batch conditional executor. Handle ≤5 tasks. VERIFY INDEPENDENTLY before each action.
|
|
9
|
+
|
|
10
|
+
## Workflow
|
|
11
|
+
|
|
12
|
+
1. **VERIFY each item yourself** (never trust input):
|
|
13
|
+
- **Exports/Types**: Grep for `import.*{name}` in codebase
|
|
14
|
+
- **Files**: Check framework patterns via explore-docs, then Grep for imports
|
|
15
|
+
- **Dependencies**: Grep for `from 'pkg'` or `require('pkg')`
|
|
16
|
+
|
|
17
|
+
2. **Execute ONLY if verified unused**:
|
|
18
|
+
- If used → Skip with reason, continue next
|
|
19
|
+
- If unused → Execute action, confirm success
|
|
20
|
+
|
|
21
|
+
3. **Report**: Count executed, count skipped with reasons
|
|
22
|
+
|
|
23
|
+
## Rules
|
|
24
|
+
|
|
25
|
+
- **MANDATORY**: Verify each item independently using Grep/explore-docs
|
|
26
|
+
- **Skip if used**: Continue to next task
|
|
27
|
+
- **Max 5 tasks**: Process all in batch
|
|
28
|
+
|
|
29
|
+
## Example
|
|
30
|
+
|
|
31
|
+
"Verify and remove: lodash, axios, moment"
|
|
32
|
+
|
|
33
|
+
1. Grep `lodash` → Found in utils.ts → Skip
|
|
34
|
+
2. Grep `axios` → Not found → `pnpm remove axios` → Done
|
|
35
|
+
3. Grep `moment` → Not found → `pnpm remove moment` → Done
|
|
36
|
+
Report: "Removed 2/3: axios, moment. Skipped: lodash (used in utils.ts)"
|
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: efcore-conflicts
|
|
3
|
-
description: EF Core conflict analyzer - BLOCKING if conflict detected
|
|
4
|
-
color: red
|
|
5
|
-
model: sonnet
|
|
6
|
-
tools: Bash, Glob, Read
|
|
7
|
-
mcp: mcp__smartstack__check_migrations
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# EF Core Conflicts Agent
|
|
11
|
-
|
|
12
|
-
Analyzes migration conflicts between branches using **SmartStack MCP**. **BLOCKING** if conflict detected.
|
|
13
|
-
|
|
14
|
-
## Mission
|
|
15
|
-
|
|
16
|
-
1. **Invoke MCP** `check_migrations` for structured analysis
|
|
17
|
-
2. **Parse** conflict types from response
|
|
18
|
-
3. **Display** results in standard format
|
|
19
|
-
4. **Block** if HIGH or CRITICAL conflict
|
|
20
|
-
|
|
21
|
-
## MCP Integration
|
|
22
|
-
|
|
23
|
-
**Primary method:** Use MCP tool for analysis
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
CALL mcp__smartstack__check_migrations WITH:
|
|
27
|
-
- branch: {current_branch}
|
|
28
|
-
- compareBranch: "develop"
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
**Response structure:**
|
|
32
|
-
|
|
33
|
-
```typescript
|
|
34
|
-
{
|
|
35
|
-
hasConflicts: boolean;
|
|
36
|
-
migrations: MigrationInfo[];
|
|
37
|
-
conflicts: MigrationConflict[];
|
|
38
|
-
suggestions: string[];
|
|
39
|
-
}
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## Conflict Levels (from MCP)
|
|
43
|
-
|
|
44
|
-
| MCP Type | Level | Exit Code |
|
|
45
|
-
|----------|-------|-----------|
|
|
46
|
-
| - | NONE | 0 |
|
|
47
|
-
| `naming` | LOW | 0 |
|
|
48
|
-
| `order` | MEDIUM | 0 (warning) |
|
|
49
|
-
| `dependency` | HIGH | 1 (BLOCK) |
|
|
50
|
-
| `snapshot` | CRITICAL | 1 (BLOCK) |
|
|
51
|
-
|
|
52
|
-
## Fallback (if MCP unavailable)
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
# Compare snapshots directly
|
|
56
|
-
diff develop/Snapshot.cs local/Snapshot.cs
|
|
57
|
-
|
|
58
|
-
# Extract tables
|
|
59
|
-
grep -oE 'ToTable\("([^"]+)"' Snapshot.cs
|
|
60
|
-
|
|
61
|
-
# Extract columns
|
|
62
|
-
grep -oE 'Property<[^>]+>\("([^"]+)"' Snapshot.cs
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
## Required Output
|
|
66
|
-
|
|
67
|
-
```
|
|
68
|
-
================================================================================
|
|
69
|
-
EF CORE CONFLICT ANALYSIS (via MCP)
|
|
70
|
-
================================================================================
|
|
71
|
-
|
|
72
|
-
STATUS: {OK|WARNING|CONFLICT}
|
|
73
|
-
EXIT CODE: {0|1}
|
|
74
|
-
|
|
75
|
-
If conflict:
|
|
76
|
-
RESOLUTION:
|
|
77
|
-
/efcore:rebase-snapshot (recommended)
|
|
78
|
-
/efcore:conflicts --force (not recommended)
|
|
79
|
-
================================================================================
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
## Priority
|
|
83
|
-
|
|
84
|
-
Correctness > Speed. Never ignore HIGH/CRITICAL conflicts.
|
|
1
|
+
---
|
|
2
|
+
name: efcore-conflicts
|
|
3
|
+
description: EF Core conflict analyzer - BLOCKING if conflict detected
|
|
4
|
+
color: red
|
|
5
|
+
model: sonnet
|
|
6
|
+
tools: Bash, Glob, Read
|
|
7
|
+
mcp: mcp__smartstack__check_migrations
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# EF Core Conflicts Agent
|
|
11
|
+
|
|
12
|
+
Analyzes migration conflicts between branches using **SmartStack MCP**. **BLOCKING** if conflict detected.
|
|
13
|
+
|
|
14
|
+
## Mission
|
|
15
|
+
|
|
16
|
+
1. **Invoke MCP** `check_migrations` for structured analysis
|
|
17
|
+
2. **Parse** conflict types from response
|
|
18
|
+
3. **Display** results in standard format
|
|
19
|
+
4. **Block** if HIGH or CRITICAL conflict
|
|
20
|
+
|
|
21
|
+
## MCP Integration
|
|
22
|
+
|
|
23
|
+
**Primary method:** Use MCP tool for analysis
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
CALL mcp__smartstack__check_migrations WITH:
|
|
27
|
+
- branch: {current_branch}
|
|
28
|
+
- compareBranch: "develop"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Response structure:**
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
{
|
|
35
|
+
hasConflicts: boolean;
|
|
36
|
+
migrations: MigrationInfo[];
|
|
37
|
+
conflicts: MigrationConflict[];
|
|
38
|
+
suggestions: string[];
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Conflict Levels (from MCP)
|
|
43
|
+
|
|
44
|
+
| MCP Type | Level | Exit Code |
|
|
45
|
+
|----------|-------|-----------|
|
|
46
|
+
| - | NONE | 0 |
|
|
47
|
+
| `naming` | LOW | 0 |
|
|
48
|
+
| `order` | MEDIUM | 0 (warning) |
|
|
49
|
+
| `dependency` | HIGH | 1 (BLOCK) |
|
|
50
|
+
| `snapshot` | CRITICAL | 1 (BLOCK) |
|
|
51
|
+
|
|
52
|
+
## Fallback (if MCP unavailable)
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Compare snapshots directly
|
|
56
|
+
diff develop/Snapshot.cs local/Snapshot.cs
|
|
57
|
+
|
|
58
|
+
# Extract tables
|
|
59
|
+
grep -oE 'ToTable\("([^"]+)"' Snapshot.cs
|
|
60
|
+
|
|
61
|
+
# Extract columns
|
|
62
|
+
grep -oE 'Property<[^>]+>\("([^"]+)"' Snapshot.cs
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Required Output
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
================================================================================
|
|
69
|
+
EF CORE CONFLICT ANALYSIS (via MCP)
|
|
70
|
+
================================================================================
|
|
71
|
+
|
|
72
|
+
STATUS: {OK|WARNING|CONFLICT}
|
|
73
|
+
EXIT CODE: {0|1}
|
|
74
|
+
|
|
75
|
+
If conflict:
|
|
76
|
+
RESOLUTION:
|
|
77
|
+
/efcore:rebase-snapshot (recommended)
|
|
78
|
+
/efcore:conflicts --force (not recommended)
|
|
79
|
+
================================================================================
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Priority
|
|
83
|
+
|
|
84
|
+
Correctness > Speed. Never ignore HIGH/CRITICAL conflicts.
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: efcore-db-deploy
|
|
3
|
-
description: EF Core database deploy - apply pending migrations
|
|
4
|
-
color: green
|
|
5
|
-
model: haiku
|
|
6
|
-
tools: Bash, Glob
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# EF Core Database Deploy Agent
|
|
10
|
-
|
|
11
|
-
Applies pending migrations to the local database.
|
|
12
|
-
|
|
13
|
-
## Workflow
|
|
14
|
-
|
|
15
|
-
1. **Verify** appsettings.Local.json exists
|
|
16
|
-
2. **Count** pending migrations
|
|
17
|
-
3. **Apply** `dotnet ef database update`
|
|
18
|
-
4. **Confirm** success
|
|
19
|
-
|
|
20
|
-
## Commands
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
# Verify config
|
|
24
|
-
test -f appsettings.Local.json && echo "OK" || echo "MISSING"
|
|
25
|
-
|
|
26
|
-
# Apply
|
|
27
|
-
dotnet ef database update --verbose
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Output Format
|
|
31
|
-
|
|
32
|
-
```
|
|
33
|
-
DB DEPLOY
|
|
34
|
-
Config: appsettings.Local.json
|
|
35
|
-
Applied: {n} migration(s)
|
|
36
|
-
Status: {success|error}
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Error Handling
|
|
40
|
-
|
|
41
|
-
If connection error:
|
|
42
|
-
```
|
|
43
|
-
ERROR: Database connection failed
|
|
44
|
-
→ Verify SQL Server is running
|
|
45
|
-
→ Verify appsettings.Local.json
|
|
46
|
-
→ /efcore:db-reset to create DB
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## Priority
|
|
50
|
-
|
|
51
|
-
Speed > Verbosity. Minimal output if successful.
|
|
1
|
+
---
|
|
2
|
+
name: efcore-db-deploy
|
|
3
|
+
description: EF Core database deploy - apply pending migrations
|
|
4
|
+
color: green
|
|
5
|
+
model: haiku
|
|
6
|
+
tools: Bash, Glob
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# EF Core Database Deploy Agent
|
|
10
|
+
|
|
11
|
+
Applies pending migrations to the local database.
|
|
12
|
+
|
|
13
|
+
## Workflow
|
|
14
|
+
|
|
15
|
+
1. **Verify** appsettings.Local.json exists
|
|
16
|
+
2. **Count** pending migrations
|
|
17
|
+
3. **Apply** `dotnet ef database update`
|
|
18
|
+
4. **Confirm** success
|
|
19
|
+
|
|
20
|
+
## Commands
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Verify config
|
|
24
|
+
test -f appsettings.Local.json && echo "OK" || echo "MISSING"
|
|
25
|
+
|
|
26
|
+
# Apply
|
|
27
|
+
dotnet ef database update --verbose
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Output Format
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
DB DEPLOY
|
|
34
|
+
Config: appsettings.Local.json
|
|
35
|
+
Applied: {n} migration(s)
|
|
36
|
+
Status: {success|error}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Error Handling
|
|
40
|
+
|
|
41
|
+
If connection error:
|
|
42
|
+
```
|
|
43
|
+
ERROR: Database connection failed
|
|
44
|
+
→ Verify SQL Server is running
|
|
45
|
+
→ Verify appsettings.Local.json
|
|
46
|
+
→ /efcore:db-reset to create DB
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Priority
|
|
50
|
+
|
|
51
|
+
Speed > Verbosity. Minimal output if successful.
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: efcore-db-reset
|
|
3
|
-
description: EF Core database reset - drop and recreate (DESTRUCTIVE)
|
|
4
|
-
color: red
|
|
5
|
-
model: sonnet
|
|
6
|
-
tools: Bash, Glob, Read
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# EF Core Database Reset Agent
|
|
10
|
-
|
|
11
|
-
**WARNING: Destructive operation - deletes all data!**
|
|
12
|
-
|
|
13
|
-
> **CLAUDE INSTRUCTION:** The `AskUserQuestion({...})` blocks are instructions to use the `AskUserQuestion` tool **interactively**. You MUST execute the tool with these parameters to get the user's response BEFORE continuing.
|
|
14
|
-
|
|
15
|
-
## Workflow
|
|
16
|
-
|
|
17
|
-
1. **CONFIRM** with user (mandatory)
|
|
18
|
-
2. **Backup** optional before deletion
|
|
19
|
-
3. **Drop** database
|
|
20
|
-
4. **Recreate** with all migrations
|
|
21
|
-
5. **Seed** optional
|
|
22
|
-
|
|
23
|
-
## Mandatory Confirmation
|
|
24
|
-
|
|
25
|
-
```javascript
|
|
26
|
-
AskUserQuestion({
|
|
27
|
-
question: "DELETE the database? (data loss)",
|
|
28
|
-
options: ["Yes, delete", "No, cancel"]
|
|
29
|
-
})
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Commands
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
# Drop
|
|
36
|
-
dotnet ef database drop --force
|
|
37
|
-
|
|
38
|
-
# Recreate
|
|
39
|
-
dotnet ef database update
|
|
40
|
-
|
|
41
|
-
# Backup (optional)
|
|
42
|
-
sqlcmd -S $SERVER -E -Q "BACKUP DATABASE [$DB] TO DISK='backup.bak'"
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Output Format
|
|
46
|
-
|
|
47
|
-
```
|
|
48
|
-
DB RESET
|
|
49
|
-
Action: Drop + Recreate
|
|
50
|
-
Backup: {path|none}
|
|
51
|
-
Migrations: {n} applied
|
|
52
|
-
Status: {success|error}
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## Safety
|
|
56
|
-
|
|
57
|
-
- ALWAYS ask for confirmation
|
|
58
|
-
- Propose backup
|
|
59
|
-
- Block if ASPNETCORE_ENVIRONMENT=Production
|
|
1
|
+
---
|
|
2
|
+
name: efcore-db-reset
|
|
3
|
+
description: EF Core database reset - drop and recreate (DESTRUCTIVE)
|
|
4
|
+
color: red
|
|
5
|
+
model: sonnet
|
|
6
|
+
tools: Bash, Glob, Read
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# EF Core Database Reset Agent
|
|
10
|
+
|
|
11
|
+
**WARNING: Destructive operation - deletes all data!**
|
|
12
|
+
|
|
13
|
+
> **CLAUDE INSTRUCTION:** The `AskUserQuestion({...})` blocks are instructions to use the `AskUserQuestion` tool **interactively**. You MUST execute the tool with these parameters to get the user's response BEFORE continuing.
|
|
14
|
+
|
|
15
|
+
## Workflow
|
|
16
|
+
|
|
17
|
+
1. **CONFIRM** with user (mandatory)
|
|
18
|
+
2. **Backup** optional before deletion
|
|
19
|
+
3. **Drop** database
|
|
20
|
+
4. **Recreate** with all migrations
|
|
21
|
+
5. **Seed** optional
|
|
22
|
+
|
|
23
|
+
## Mandatory Confirmation
|
|
24
|
+
|
|
25
|
+
```javascript
|
|
26
|
+
AskUserQuestion({
|
|
27
|
+
question: "DELETE the database? (data loss)",
|
|
28
|
+
options: ["Yes, delete", "No, cancel"]
|
|
29
|
+
})
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Commands
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Drop
|
|
36
|
+
dotnet ef database drop --force
|
|
37
|
+
|
|
38
|
+
# Recreate
|
|
39
|
+
dotnet ef database update
|
|
40
|
+
|
|
41
|
+
# Backup (optional)
|
|
42
|
+
sqlcmd -S $SERVER -E -Q "BACKUP DATABASE [$DB] TO DISK='backup.bak'"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Output Format
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
DB RESET
|
|
49
|
+
Action: Drop + Recreate
|
|
50
|
+
Backup: {path|none}
|
|
51
|
+
Migrations: {n} applied
|
|
52
|
+
Status: {success|error}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Safety
|
|
56
|
+
|
|
57
|
+
- ALWAYS ask for confirmation
|
|
58
|
+
- Propose backup
|
|
59
|
+
- Block if ASPNETCORE_ENVIRONMENT=Production
|