claude-mpm 4.15.3__py3-none-any.whl → 4.15.6__py3-none-any.whl
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.
Potentially problematic release.
This version of claude-mpm might be problematic. Click here for more details.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/templates/agentic-coder-optimizer.json +9 -2
- claude_mpm/agents/templates/api_qa.json +7 -1
- claude_mpm/agents/templates/clerk-ops.json +8 -1
- claude_mpm/agents/templates/code_analyzer.json +4 -1
- claude_mpm/agents/templates/dart_engineer.json +11 -1
- claude_mpm/agents/templates/data_engineer.json +11 -1
- claude_mpm/agents/templates/documentation.json +6 -1
- claude_mpm/agents/templates/engineer.json +13 -0
- claude_mpm/agents/templates/gcp_ops_agent.json +8 -1
- claude_mpm/agents/templates/golang_engineer.json +11 -1
- claude_mpm/agents/templates/java_engineer.json +12 -2
- claude_mpm/agents/templates/local_ops_agent.json +216 -37
- claude_mpm/agents/templates/nextjs_engineer.json +11 -1
- claude_mpm/agents/templates/ops.json +8 -1
- claude_mpm/agents/templates/php-engineer.json +11 -1
- claude_mpm/agents/templates/project_organizer.json +9 -2
- claude_mpm/agents/templates/prompt-engineer.json +5 -1
- claude_mpm/agents/templates/python_engineer.json +11 -1
- claude_mpm/agents/templates/qa.json +7 -1
- claude_mpm/agents/templates/react_engineer.json +11 -1
- claude_mpm/agents/templates/refactoring_engineer.json +8 -1
- claude_mpm/agents/templates/research.json +4 -1
- claude_mpm/agents/templates/ruby-engineer.json +11 -1
- claude_mpm/agents/templates/rust_engineer.json +11 -1
- claude_mpm/agents/templates/security.json +6 -1
- claude_mpm/agents/templates/ticketing.json +6 -1
- claude_mpm/agents/templates/typescript_engineer.json +11 -1
- claude_mpm/agents/templates/vercel_ops_agent.json +8 -1
- claude_mpm/agents/templates/version_control.json +8 -1
- claude_mpm/agents/templates/web_qa.json +7 -1
- claude_mpm/agents/templates/web_ui.json +11 -1
- claude_mpm/cli/commands/configure.py +164 -16
- claude_mpm/cli/commands/configure_agent_display.py +6 -6
- claude_mpm/cli/commands/configure_behavior_manager.py +8 -8
- claude_mpm/cli/commands/configure_navigation.py +20 -18
- claude_mpm/cli/commands/configure_startup_manager.py +14 -14
- claude_mpm/cli/commands/configure_template_editor.py +8 -8
- claude_mpm/cli/interactive/__init__.py +3 -0
- claude_mpm/cli/interactive/skills_wizard.py +491 -0
- claude_mpm/cli/startup.py +26 -0
- claude_mpm/dashboard/static/js/dashboard.js +0 -14
- claude_mpm/dashboard/templates/index.html +3 -41
- claude_mpm/services/socketio/handlers/__init__.py +5 -2
- claude_mpm/services/socketio/handlers/hook.py +10 -0
- claude_mpm/services/socketio/handlers/registry.py +4 -2
- claude_mpm/services/socketio/server/main.py +7 -7
- claude_mpm/skills/__init__.py +21 -0
- claude_mpm/skills/bundled/__init__.py +6 -0
- claude_mpm/skills/registry.py +198 -0
- claude_mpm/skills/skill_manager.py +310 -0
- {claude_mpm-4.15.3.dist-info → claude_mpm-4.15.6.dist-info}/METADATA +1 -1
- {claude_mpm-4.15.3.dist-info → claude_mpm-4.15.6.dist-info}/RECORD +57 -72
- claude_mpm/dashboard/static/css/code-tree.css +0 -1639
- claude_mpm/dashboard/static/js/components/code-tree/tree-breadcrumb.js +0 -353
- claude_mpm/dashboard/static/js/components/code-tree/tree-constants.js +0 -235
- claude_mpm/dashboard/static/js/components/code-tree/tree-search.js +0 -409
- claude_mpm/dashboard/static/js/components/code-tree/tree-utils.js +0 -435
- claude_mpm/dashboard/static/js/components/code-tree.js +0 -5869
- claude_mpm/dashboard/static/js/components/code-viewer.js +0 -1386
- claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-313.pyc +0 -0
- {claude_mpm-4.15.3.dist-info → claude_mpm-4.15.6.dist-info}/WHEEL +0 -0
- {claude_mpm-4.15.3.dist-info → claude_mpm-4.15.6.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.15.3.dist-info → claude_mpm-4.15.6.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.15.3.dist-info → claude_mpm-4.15.6.dist-info}/top_level.txt +0 -0
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
"name": "local-ops",
|
|
3
3
|
"display_name": "Local Operations Agent",
|
|
4
4
|
"description": "Specialized agent for managing local development deployments with focus on maintaining single stable instances, protecting existing services, and never interfering with other projects or Claude Code services",
|
|
5
|
-
"version": "2.0.0",
|
|
6
5
|
"author": "Claude MPM",
|
|
7
6
|
"authority": {
|
|
8
7
|
"level": "deployment_manager",
|
|
@@ -26,7 +25,13 @@
|
|
|
26
25
|
"status": {
|
|
27
26
|
"syntax": "claude-mpm local-deploy status <deployment-id>",
|
|
28
27
|
"description": "Get detailed deployment status including process info, health, and resource usage",
|
|
29
|
-
"provides": [
|
|
28
|
+
"provides": [
|
|
29
|
+
"process_info",
|
|
30
|
+
"health_status",
|
|
31
|
+
"resource_usage",
|
|
32
|
+
"uptime",
|
|
33
|
+
"restart_count"
|
|
34
|
+
]
|
|
30
35
|
},
|
|
31
36
|
"monitor": {
|
|
32
37
|
"syntax": "claude-mpm local-deploy monitor <deployment-id> [--refresh 2]",
|
|
@@ -35,7 +40,11 @@
|
|
|
35
40
|
"health": {
|
|
36
41
|
"syntax": "claude-mpm local-deploy health <deployment-id>",
|
|
37
42
|
"description": "Run comprehensive health checks (HTTP endpoint, process responsive, resource limits)",
|
|
38
|
-
"checks": [
|
|
43
|
+
"checks": [
|
|
44
|
+
"http_endpoint",
|
|
45
|
+
"process_responsive",
|
|
46
|
+
"resource_limits"
|
|
47
|
+
]
|
|
39
48
|
},
|
|
40
49
|
"stop": {
|
|
41
50
|
"syntax": "claude-mpm local-deploy stop <deployment-id>",
|
|
@@ -681,10 +690,19 @@
|
|
|
681
690
|
"production": {
|
|
682
691
|
"nextjs": {
|
|
683
692
|
"method": "pm2",
|
|
693
|
+
"pm2_options": {
|
|
694
|
+
"max_memory_restart": "2G",
|
|
695
|
+
"max_restarts": 10,
|
|
696
|
+
"min_uptime": 3000,
|
|
697
|
+
"autorestart": true,
|
|
698
|
+
"kill_timeout": 5000,
|
|
699
|
+
"listen_timeout": 8000,
|
|
700
|
+
"shutdown_with_message": true
|
|
701
|
+
},
|
|
684
702
|
"steps": [
|
|
685
703
|
"npm install --production",
|
|
686
704
|
"npm run build",
|
|
687
|
-
"pm2 start npm --name '{app_name}' -- start"
|
|
705
|
+
"pm2 start npm --name '{app_name}' -- start --max-memory-restart 2G --max-restarts 10 --min-uptime 3000"
|
|
688
706
|
],
|
|
689
707
|
"health_check": "http://localhost:{port}",
|
|
690
708
|
"environment": {
|
|
@@ -839,9 +857,16 @@
|
|
|
839
857
|
"development": {
|
|
840
858
|
"nextjs": {
|
|
841
859
|
"method": "pm2",
|
|
860
|
+
"pm2_options": {
|
|
861
|
+
"max_memory_restart": "2G",
|
|
862
|
+
"max_restarts": 10,
|
|
863
|
+
"min_uptime": 3000,
|
|
864
|
+
"autorestart": true,
|
|
865
|
+
"watch": true
|
|
866
|
+
},
|
|
842
867
|
"steps": [
|
|
843
868
|
"npm install",
|
|
844
|
-
"pm2 start npm --name '{app_name}-dev' -- run dev"
|
|
869
|
+
"pm2 start npm --name '{app_name}-dev' -- run dev --max-memory-restart 2G --max-restarts 10 --min-uptime 3000 --watch"
|
|
845
870
|
],
|
|
846
871
|
"environment": {
|
|
847
872
|
"NODE_ENV": "development"
|
|
@@ -1026,11 +1051,61 @@
|
|
|
1026
1051
|
"action": "increase_memory_limit"
|
|
1027
1052
|
}
|
|
1028
1053
|
},
|
|
1054
|
+
"health_checks": {
|
|
1055
|
+
"nextjs": {
|
|
1056
|
+
"primary_endpoints": [
|
|
1057
|
+
"/api/health",
|
|
1058
|
+
"/"
|
|
1059
|
+
],
|
|
1060
|
+
"build_artifacts": [
|
|
1061
|
+
".next/BUILD_ID",
|
|
1062
|
+
".next/routes-manifest.json"
|
|
1063
|
+
],
|
|
1064
|
+
"static_assets": "/_next/static/chunks",
|
|
1065
|
+
"validation_steps": [
|
|
1066
|
+
"verify_build_artifacts",
|
|
1067
|
+
"test_primary_endpoint",
|
|
1068
|
+
"validate_static_assets"
|
|
1069
|
+
]
|
|
1070
|
+
}
|
|
1071
|
+
},
|
|
1072
|
+
"pm2_monitoring": {
|
|
1073
|
+
"metrics_extraction": {
|
|
1074
|
+
"enabled": true,
|
|
1075
|
+
"commands": {
|
|
1076
|
+
"status": "pm2 jlist",
|
|
1077
|
+
"describe": "pm2 describe {app_name}",
|
|
1078
|
+
"metrics": "pm2 show {app_name}"
|
|
1079
|
+
},
|
|
1080
|
+
"tracked_metrics": [
|
|
1081
|
+
"restart_count",
|
|
1082
|
+
"uptime",
|
|
1083
|
+
"memory_usage",
|
|
1084
|
+
"cpu_usage",
|
|
1085
|
+
"status",
|
|
1086
|
+
"unstable_restarts"
|
|
1087
|
+
]
|
|
1088
|
+
},
|
|
1089
|
+
"alerts": {
|
|
1090
|
+
"high_restart_count": {
|
|
1091
|
+
"threshold": 5,
|
|
1092
|
+
"action": "investigate_crash_logs"
|
|
1093
|
+
},
|
|
1094
|
+
"memory_near_limit": {
|
|
1095
|
+
"threshold": "1.8G",
|
|
1096
|
+
"action": "preemptive_restart_warning"
|
|
1097
|
+
}
|
|
1098
|
+
}
|
|
1099
|
+
},
|
|
1029
1100
|
"best_practices": {
|
|
1030
1101
|
"port_selection": {
|
|
1031
1102
|
"description": "Recommended default ports by language and framework",
|
|
1032
1103
|
"nodejs": {
|
|
1033
|
-
"default_ports": [
|
|
1104
|
+
"default_ports": [
|
|
1105
|
+
3000,
|
|
1106
|
+
3001,
|
|
1107
|
+
3002
|
|
1108
|
+
],
|
|
1034
1109
|
"frameworks": {
|
|
1035
1110
|
"express": 3000,
|
|
1036
1111
|
"nextjs": 3000,
|
|
@@ -1038,7 +1113,11 @@
|
|
|
1038
1113
|
}
|
|
1039
1114
|
},
|
|
1040
1115
|
"python": {
|
|
1041
|
-
"default_ports": [
|
|
1116
|
+
"default_ports": [
|
|
1117
|
+
8000,
|
|
1118
|
+
5000,
|
|
1119
|
+
8080
|
|
1120
|
+
],
|
|
1042
1121
|
"frameworks": {
|
|
1043
1122
|
"fastapi": 8000,
|
|
1044
1123
|
"django": 8000,
|
|
@@ -1046,7 +1125,10 @@
|
|
|
1046
1125
|
}
|
|
1047
1126
|
},
|
|
1048
1127
|
"rust": {
|
|
1049
|
-
"default_ports": [
|
|
1128
|
+
"default_ports": [
|
|
1129
|
+
8080,
|
|
1130
|
+
3000
|
|
1131
|
+
],
|
|
1050
1132
|
"frameworks": {
|
|
1051
1133
|
"actix-web": 8080,
|
|
1052
1134
|
"rocket": 8000,
|
|
@@ -1054,7 +1136,10 @@
|
|
|
1054
1136
|
}
|
|
1055
1137
|
},
|
|
1056
1138
|
"go": {
|
|
1057
|
-
"default_ports": [
|
|
1139
|
+
"default_ports": [
|
|
1140
|
+
8080,
|
|
1141
|
+
8000
|
|
1142
|
+
],
|
|
1058
1143
|
"frameworks": {
|
|
1059
1144
|
"gin": 8080,
|
|
1060
1145
|
"echo": 1323,
|
|
@@ -1062,28 +1147,39 @@
|
|
|
1062
1147
|
}
|
|
1063
1148
|
},
|
|
1064
1149
|
"java": {
|
|
1065
|
-
"default_ports": [
|
|
1150
|
+
"default_ports": [
|
|
1151
|
+
8080,
|
|
1152
|
+
8443
|
|
1153
|
+
],
|
|
1066
1154
|
"frameworks": {
|
|
1067
1155
|
"spring-boot": 8080,
|
|
1068
1156
|
"tomcat": 8080
|
|
1069
1157
|
}
|
|
1070
1158
|
},
|
|
1071
1159
|
"ruby": {
|
|
1072
|
-
"default_ports": [
|
|
1160
|
+
"default_ports": [
|
|
1161
|
+
3000,
|
|
1162
|
+
9292
|
|
1163
|
+
],
|
|
1073
1164
|
"frameworks": {
|
|
1074
1165
|
"rails": 3000,
|
|
1075
1166
|
"sinatra": 4567
|
|
1076
1167
|
}
|
|
1077
1168
|
},
|
|
1078
1169
|
"php": {
|
|
1079
|
-
"default_ports": [
|
|
1170
|
+
"default_ports": [
|
|
1171
|
+
8000,
|
|
1172
|
+
8080
|
|
1173
|
+
],
|
|
1080
1174
|
"frameworks": {
|
|
1081
1175
|
"laravel": 8000,
|
|
1082
1176
|
"symfony": 8000
|
|
1083
1177
|
}
|
|
1084
1178
|
},
|
|
1085
1179
|
"dart": {
|
|
1086
|
-
"default_ports": [
|
|
1180
|
+
"default_ports": [
|
|
1181
|
+
8080
|
|
1182
|
+
],
|
|
1087
1183
|
"frameworks": {
|
|
1088
1184
|
"flutter-web": 8080,
|
|
1089
1185
|
"shelf": 8080
|
|
@@ -1094,19 +1190,27 @@
|
|
|
1094
1190
|
"description": "Framework-specific health check endpoints",
|
|
1095
1191
|
"python_fastapi": {
|
|
1096
1192
|
"primary": "/health",
|
|
1097
|
-
"alternatives": [
|
|
1193
|
+
"alternatives": [
|
|
1194
|
+
"/docs",
|
|
1195
|
+
"/openapi.json"
|
|
1196
|
+
],
|
|
1098
1197
|
"expected_status": 200,
|
|
1099
1198
|
"timeout": 5
|
|
1100
1199
|
},
|
|
1101
1200
|
"python_django": {
|
|
1102
1201
|
"primary": "/health",
|
|
1103
|
-
"alternatives": [
|
|
1202
|
+
"alternatives": [
|
|
1203
|
+
"/admin"
|
|
1204
|
+
],
|
|
1104
1205
|
"expected_status": 200,
|
|
1105
1206
|
"timeout": 5
|
|
1106
1207
|
},
|
|
1107
1208
|
"nodejs_express": {
|
|
1108
1209
|
"primary": "/health",
|
|
1109
|
-
"alternatives": [
|
|
1210
|
+
"alternatives": [
|
|
1211
|
+
"/ping",
|
|
1212
|
+
"/ready"
|
|
1213
|
+
],
|
|
1110
1214
|
"expected_status": 200,
|
|
1111
1215
|
"timeout": 5
|
|
1112
1216
|
},
|
|
@@ -1127,7 +1231,9 @@
|
|
|
1127
1231
|
},
|
|
1128
1232
|
"go_gin": {
|
|
1129
1233
|
"primary": "/ping",
|
|
1130
|
-
"alternatives": [
|
|
1234
|
+
"alternatives": [
|
|
1235
|
+
"/health"
|
|
1236
|
+
],
|
|
1131
1237
|
"expected_status": 200,
|
|
1132
1238
|
"timeout": 5
|
|
1133
1239
|
},
|
|
@@ -1143,20 +1249,26 @@
|
|
|
1143
1249
|
},
|
|
1144
1250
|
"java_spring_boot": {
|
|
1145
1251
|
"primary": "/actuator/health",
|
|
1146
|
-
"alternatives": [
|
|
1252
|
+
"alternatives": [
|
|
1253
|
+
"/actuator/info"
|
|
1254
|
+
],
|
|
1147
1255
|
"expected_status": 200,
|
|
1148
1256
|
"timeout": 10,
|
|
1149
1257
|
"management_port": 8081
|
|
1150
1258
|
},
|
|
1151
1259
|
"ruby_rails": {
|
|
1152
1260
|
"primary": "/up",
|
|
1153
|
-
"alternatives": [
|
|
1261
|
+
"alternatives": [
|
|
1262
|
+
"/health"
|
|
1263
|
+
],
|
|
1154
1264
|
"expected_status": 200,
|
|
1155
1265
|
"timeout": 5
|
|
1156
1266
|
},
|
|
1157
1267
|
"php_laravel": {
|
|
1158
1268
|
"primary": "/health",
|
|
1159
|
-
"alternatives": [
|
|
1269
|
+
"alternatives": [
|
|
1270
|
+
"/api/health"
|
|
1271
|
+
],
|
|
1160
1272
|
"expected_status": 200,
|
|
1161
1273
|
"timeout": 5
|
|
1162
1274
|
},
|
|
@@ -1183,31 +1295,67 @@
|
|
|
1183
1295
|
"log_monitoring": {
|
|
1184
1296
|
"description": "Framework-specific log patterns to monitor",
|
|
1185
1297
|
"python": {
|
|
1186
|
-
"error_patterns": [
|
|
1298
|
+
"error_patterns": [
|
|
1299
|
+
"ERROR",
|
|
1300
|
+
"CRITICAL",
|
|
1301
|
+
"Exception",
|
|
1302
|
+
"Traceback",
|
|
1303
|
+
"Failed to"
|
|
1304
|
+
],
|
|
1187
1305
|
"action": "Trigger auto-restart on critical patterns"
|
|
1188
1306
|
},
|
|
1189
1307
|
"nodejs": {
|
|
1190
|
-
"error_patterns": [
|
|
1308
|
+
"error_patterns": [
|
|
1309
|
+
"ERROR",
|
|
1310
|
+
"Error:",
|
|
1311
|
+
"Exception",
|
|
1312
|
+
"Unhandled",
|
|
1313
|
+
"ECONNREFUSED"
|
|
1314
|
+
],
|
|
1191
1315
|
"action": "Trigger auto-restart on critical patterns"
|
|
1192
1316
|
},
|
|
1193
1317
|
"rust": {
|
|
1194
|
-
"error_patterns": [
|
|
1318
|
+
"error_patterns": [
|
|
1319
|
+
"ERROR",
|
|
1320
|
+
"FATAL",
|
|
1321
|
+
"panic",
|
|
1322
|
+
"thread .* panicked"
|
|
1323
|
+
],
|
|
1195
1324
|
"action": "Trigger auto-restart on critical patterns"
|
|
1196
1325
|
},
|
|
1197
1326
|
"go": {
|
|
1198
|
-
"error_patterns": [
|
|
1327
|
+
"error_patterns": [
|
|
1328
|
+
"ERROR",
|
|
1329
|
+
"FATAL",
|
|
1330
|
+
"panic:",
|
|
1331
|
+
"runtime error"
|
|
1332
|
+
],
|
|
1199
1333
|
"action": "Trigger auto-restart on critical patterns"
|
|
1200
1334
|
},
|
|
1201
1335
|
"java": {
|
|
1202
|
-
"error_patterns": [
|
|
1336
|
+
"error_patterns": [
|
|
1337
|
+
"ERROR",
|
|
1338
|
+
"SEVERE",
|
|
1339
|
+
"Exception",
|
|
1340
|
+
"java.lang.",
|
|
1341
|
+
"OutOfMemoryError"
|
|
1342
|
+
],
|
|
1203
1343
|
"action": "Trigger auto-restart on critical patterns"
|
|
1204
1344
|
},
|
|
1205
1345
|
"ruby": {
|
|
1206
|
-
"error_patterns": [
|
|
1346
|
+
"error_patterns": [
|
|
1347
|
+
"ERROR",
|
|
1348
|
+
"FATAL",
|
|
1349
|
+
"Exception"
|
|
1350
|
+
],
|
|
1207
1351
|
"action": "Trigger auto-restart on critical patterns"
|
|
1208
1352
|
},
|
|
1209
1353
|
"php": {
|
|
1210
|
-
"error_patterns": [
|
|
1354
|
+
"error_patterns": [
|
|
1355
|
+
"Fatal error",
|
|
1356
|
+
"Parse error",
|
|
1357
|
+
"Exception"
|
|
1358
|
+
],
|
|
1211
1359
|
"action": "Trigger auto-restart on critical patterns"
|
|
1212
1360
|
},
|
|
1213
1361
|
"enabled": true
|
|
@@ -1558,7 +1706,7 @@
|
|
|
1558
1706
|
"state_file_corruption": "Delete .claude-mpm/deployment-state.json to reset (will lose tracking)"
|
|
1559
1707
|
}
|
|
1560
1708
|
},
|
|
1561
|
-
"agent_version": "2.0.
|
|
1709
|
+
"agent_version": "2.0.1",
|
|
1562
1710
|
"knowledge": {
|
|
1563
1711
|
"best_practices": [
|
|
1564
1712
|
"Review file commit history before modifications: git log --oneline -5 <file_path>",
|
|
@@ -1623,14 +1771,38 @@
|
|
|
1623
1771
|
"multi_language_support": {
|
|
1624
1772
|
"description": "Support for multiple programming languages and frameworks",
|
|
1625
1773
|
"languages": {
|
|
1626
|
-
"python": [
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
"
|
|
1632
|
-
|
|
1633
|
-
|
|
1774
|
+
"python": [
|
|
1775
|
+
"FastAPI",
|
|
1776
|
+
"Django",
|
|
1777
|
+
"Flask"
|
|
1778
|
+
],
|
|
1779
|
+
"nodejs": [
|
|
1780
|
+
"Express",
|
|
1781
|
+
"Next.js",
|
|
1782
|
+
"NestJS"
|
|
1783
|
+
],
|
|
1784
|
+
"rust": [
|
|
1785
|
+
"Actix-web",
|
|
1786
|
+
"Rocket",
|
|
1787
|
+
"Axum"
|
|
1788
|
+
],
|
|
1789
|
+
"go": [
|
|
1790
|
+
"Gin",
|
|
1791
|
+
"Echo",
|
|
1792
|
+
"Fiber"
|
|
1793
|
+
],
|
|
1794
|
+
"java": [
|
|
1795
|
+
"Spring Boot"
|
|
1796
|
+
],
|
|
1797
|
+
"ruby": [
|
|
1798
|
+
"Rails"
|
|
1799
|
+
],
|
|
1800
|
+
"php": [
|
|
1801
|
+
"Laravel"
|
|
1802
|
+
],
|
|
1803
|
+
"dart": [
|
|
1804
|
+
"Flutter Web"
|
|
1805
|
+
]
|
|
1634
1806
|
},
|
|
1635
1807
|
"detection_priority": [
|
|
1636
1808
|
"1. Check for language-specific lock files (Cargo.lock, go.sum, pom.xml)",
|
|
@@ -1657,5 +1829,12 @@
|
|
|
1657
1829
|
"report": "Show startup logs if health check fails"
|
|
1658
1830
|
}
|
|
1659
1831
|
}
|
|
1660
|
-
}
|
|
1832
|
+
},
|
|
1833
|
+
"skills": [
|
|
1834
|
+
"docker-containerization",
|
|
1835
|
+
"database-migration",
|
|
1836
|
+
"security-scanning",
|
|
1837
|
+
"git-workflow",
|
|
1838
|
+
"systematic-debugging"
|
|
1839
|
+
]
|
|
1661
1840
|
}
|
|
@@ -271,5 +271,15 @@
|
|
|
271
271
|
"npm>=10"
|
|
272
272
|
],
|
|
273
273
|
"optional": false
|
|
274
|
-
}
|
|
274
|
+
},
|
|
275
|
+
"skills": [
|
|
276
|
+
"test-driven-development",
|
|
277
|
+
"systematic-debugging",
|
|
278
|
+
"async-testing",
|
|
279
|
+
"performance-profiling",
|
|
280
|
+
"security-scanning",
|
|
281
|
+
"code-review",
|
|
282
|
+
"refactoring-patterns",
|
|
283
|
+
"git-workflow"
|
|
284
|
+
]
|
|
275
285
|
}
|
|
@@ -267,5 +267,15 @@
|
|
|
267
267
|
"composer>=2.7"
|
|
268
268
|
],
|
|
269
269
|
"optional": false
|
|
270
|
-
}
|
|
270
|
+
},
|
|
271
|
+
"skills": [
|
|
272
|
+
"test-driven-development",
|
|
273
|
+
"systematic-debugging",
|
|
274
|
+
"async-testing",
|
|
275
|
+
"performance-profiling",
|
|
276
|
+
"security-scanning",
|
|
277
|
+
"code-review",
|
|
278
|
+
"refactoring-patterns",
|
|
279
|
+
"git-workflow"
|
|
280
|
+
]
|
|
271
281
|
}
|
|
@@ -368,5 +368,15 @@
|
|
|
368
368
|
"python3.12+"
|
|
369
369
|
],
|
|
370
370
|
"optional": false
|
|
371
|
-
}
|
|
371
|
+
},
|
|
372
|
+
"skills": [
|
|
373
|
+
"test-driven-development",
|
|
374
|
+
"systematic-debugging",
|
|
375
|
+
"async-testing",
|
|
376
|
+
"performance-profiling",
|
|
377
|
+
"security-scanning",
|
|
378
|
+
"code-review",
|
|
379
|
+
"refactoring-patterns",
|
|
380
|
+
"git-workflow"
|
|
381
|
+
]
|
|
372
382
|
}
|
|
@@ -224,5 +224,15 @@
|
|
|
224
224
|
"npm"
|
|
225
225
|
],
|
|
226
226
|
"optional": false
|
|
227
|
-
}
|
|
227
|
+
},
|
|
228
|
+
"skills": [
|
|
229
|
+
"test-driven-development",
|
|
230
|
+
"systematic-debugging",
|
|
231
|
+
"async-testing",
|
|
232
|
+
"performance-profiling",
|
|
233
|
+
"security-scanning",
|
|
234
|
+
"code-review",
|
|
235
|
+
"refactoring-patterns",
|
|
236
|
+
"git-workflow"
|
|
237
|
+
]
|
|
228
238
|
}
|
|
@@ -266,5 +266,15 @@
|
|
|
266
266
|
"bundler>=2.5"
|
|
267
267
|
],
|
|
268
268
|
"optional": false
|
|
269
|
-
}
|
|
269
|
+
},
|
|
270
|
+
"skills": [
|
|
271
|
+
"test-driven-development",
|
|
272
|
+
"systematic-debugging",
|
|
273
|
+
"async-testing",
|
|
274
|
+
"performance-profiling",
|
|
275
|
+
"security-scanning",
|
|
276
|
+
"code-review",
|
|
277
|
+
"refactoring-patterns",
|
|
278
|
+
"git-workflow"
|
|
279
|
+
]
|
|
270
280
|
}
|
|
@@ -256,5 +256,15 @@
|
|
|
256
256
|
"cargo>=1.75"
|
|
257
257
|
],
|
|
258
258
|
"optional": false
|
|
259
|
-
}
|
|
259
|
+
},
|
|
260
|
+
"skills": [
|
|
261
|
+
"test-driven-development",
|
|
262
|
+
"systematic-debugging",
|
|
263
|
+
"async-testing",
|
|
264
|
+
"performance-profiling",
|
|
265
|
+
"security-scanning",
|
|
266
|
+
"code-review",
|
|
267
|
+
"refactoring-patterns",
|
|
268
|
+
"git-workflow"
|
|
269
|
+
]
|
|
260
270
|
}
|
|
@@ -271,5 +271,15 @@
|
|
|
271
271
|
"npm>=10"
|
|
272
272
|
],
|
|
273
273
|
"optional": false
|
|
274
|
-
}
|
|
274
|
+
},
|
|
275
|
+
"skills": [
|
|
276
|
+
"test-driven-development",
|
|
277
|
+
"systematic-debugging",
|
|
278
|
+
"async-testing",
|
|
279
|
+
"performance-profiling",
|
|
280
|
+
"security-scanning",
|
|
281
|
+
"code-review",
|
|
282
|
+
"refactoring-patterns",
|
|
283
|
+
"git-workflow"
|
|
284
|
+
]
|
|
275
285
|
}
|
|
@@ -401,5 +401,12 @@
|
|
|
401
401
|
"environment": "https://api.vercel.com/v10/projects/{projectId}/env",
|
|
402
402
|
"teams": "https://api.vercel.com/v2/teams"
|
|
403
403
|
}
|
|
404
|
-
}
|
|
404
|
+
},
|
|
405
|
+
"skills": [
|
|
406
|
+
"docker-containerization",
|
|
407
|
+
"database-migration",
|
|
408
|
+
"security-scanning",
|
|
409
|
+
"git-workflow",
|
|
410
|
+
"systematic-debugging"
|
|
411
|
+
]
|
|
405
412
|
}
|