claude-mpm 4.15.2__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.

Files changed (85) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/templates/agentic-coder-optimizer.json +9 -2
  3. claude_mpm/agents/templates/api_qa.json +7 -1
  4. claude_mpm/agents/templates/clerk-ops.json +8 -1
  5. claude_mpm/agents/templates/code_analyzer.json +4 -1
  6. claude_mpm/agents/templates/dart_engineer.json +11 -1
  7. claude_mpm/agents/templates/data_engineer.json +11 -1
  8. claude_mpm/agents/templates/documentation.json +6 -1
  9. claude_mpm/agents/templates/engineer.json +13 -0
  10. claude_mpm/agents/templates/gcp_ops_agent.json +8 -1
  11. claude_mpm/agents/templates/golang_engineer.json +11 -1
  12. claude_mpm/agents/templates/java_engineer.json +12 -2
  13. claude_mpm/agents/templates/local_ops_agent.json +216 -37
  14. claude_mpm/agents/templates/nextjs_engineer.json +11 -1
  15. claude_mpm/agents/templates/ops.json +8 -1
  16. claude_mpm/agents/templates/php-engineer.json +11 -1
  17. claude_mpm/agents/templates/project_organizer.json +9 -2
  18. claude_mpm/agents/templates/prompt-engineer.json +5 -1
  19. claude_mpm/agents/templates/python_engineer.json +11 -1
  20. claude_mpm/agents/templates/qa.json +7 -1
  21. claude_mpm/agents/templates/react_engineer.json +11 -1
  22. claude_mpm/agents/templates/refactoring_engineer.json +8 -1
  23. claude_mpm/agents/templates/research.json +4 -1
  24. claude_mpm/agents/templates/ruby-engineer.json +11 -1
  25. claude_mpm/agents/templates/rust_engineer.json +11 -1
  26. claude_mpm/agents/templates/security.json +6 -1
  27. claude_mpm/agents/templates/ticketing.json +6 -1
  28. claude_mpm/agents/templates/typescript_engineer.json +11 -1
  29. claude_mpm/agents/templates/vercel_ops_agent.json +8 -1
  30. claude_mpm/agents/templates/version_control.json +8 -1
  31. claude_mpm/agents/templates/web_qa.json +7 -1
  32. claude_mpm/agents/templates/web_ui.json +11 -1
  33. claude_mpm/cli/commands/configure.py +164 -16
  34. claude_mpm/cli/commands/configure_agent_display.py +6 -6
  35. claude_mpm/cli/commands/configure_behavior_manager.py +8 -8
  36. claude_mpm/cli/commands/configure_navigation.py +20 -18
  37. claude_mpm/cli/commands/configure_startup_manager.py +14 -14
  38. claude_mpm/cli/commands/configure_template_editor.py +8 -8
  39. claude_mpm/cli/interactive/__init__.py +3 -0
  40. claude_mpm/cli/interactive/skills_wizard.py +491 -0
  41. claude_mpm/cli/startup.py +26 -0
  42. claude_mpm/core/enums.py +18 -0
  43. claude_mpm/core/types.py +2 -9
  44. claude_mpm/dashboard/static/js/dashboard.js +0 -14
  45. claude_mpm/dashboard/templates/index.html +3 -41
  46. claude_mpm/services/agents/deployment/validation/__init__.py +3 -1
  47. claude_mpm/services/agents/deployment/validation/validation_result.py +1 -9
  48. claude_mpm/services/core/models/health.py +1 -28
  49. claude_mpm/services/infrastructure/monitoring/__init__.py +1 -1
  50. claude_mpm/services/infrastructure/monitoring/aggregator.py +12 -12
  51. claude_mpm/services/infrastructure/monitoring/base.py +5 -13
  52. claude_mpm/services/infrastructure/monitoring/network.py +7 -6
  53. claude_mpm/services/infrastructure/monitoring/process.py +13 -12
  54. claude_mpm/services/infrastructure/monitoring/resources.py +7 -6
  55. claude_mpm/services/infrastructure/monitoring/service.py +16 -15
  56. claude_mpm/services/local_ops/__init__.py +1 -1
  57. claude_mpm/services/local_ops/crash_detector.py +1 -1
  58. claude_mpm/services/local_ops/health_checks/http_check.py +2 -1
  59. claude_mpm/services/local_ops/health_checks/process_check.py +2 -1
  60. claude_mpm/services/local_ops/health_checks/resource_check.py +2 -1
  61. claude_mpm/services/local_ops/health_manager.py +1 -1
  62. claude_mpm/services/local_ops/restart_manager.py +1 -1
  63. claude_mpm/services/shared/async_service_base.py +16 -27
  64. claude_mpm/services/shared/lifecycle_service_base.py +1 -14
  65. claude_mpm/services/socketio/handlers/__init__.py +5 -2
  66. claude_mpm/services/socketio/handlers/hook.py +10 -0
  67. claude_mpm/services/socketio/handlers/registry.py +4 -2
  68. claude_mpm/services/socketio/server/main.py +7 -7
  69. claude_mpm/skills/__init__.py +21 -0
  70. claude_mpm/skills/bundled/__init__.py +6 -0
  71. claude_mpm/skills/registry.py +198 -0
  72. claude_mpm/skills/skill_manager.py +310 -0
  73. {claude_mpm-4.15.2.dist-info → claude_mpm-4.15.6.dist-info}/METADATA +1 -1
  74. {claude_mpm-4.15.2.dist-info → claude_mpm-4.15.6.dist-info}/RECORD +78 -80
  75. claude_mpm/dashboard/static/css/code-tree.css +0 -1639
  76. claude_mpm/dashboard/static/js/components/code-tree/tree-breadcrumb.js +0 -353
  77. claude_mpm/dashboard/static/js/components/code-tree/tree-constants.js +0 -235
  78. claude_mpm/dashboard/static/js/components/code-tree/tree-search.js +0 -409
  79. claude_mpm/dashboard/static/js/components/code-tree/tree-utils.js +0 -435
  80. claude_mpm/dashboard/static/js/components/code-tree.js +0 -5869
  81. claude_mpm/dashboard/static/js/components/code-viewer.js +0 -1386
  82. {claude_mpm-4.15.2.dist-info → claude_mpm-4.15.6.dist-info}/WHEEL +0 -0
  83. {claude_mpm-4.15.2.dist-info → claude_mpm-4.15.6.dist-info}/entry_points.txt +0 -0
  84. {claude_mpm-4.15.2.dist-info → claude_mpm-4.15.6.dist-info}/licenses/LICENSE +0 -0
  85. {claude_mpm-4.15.2.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": ["process_info", "health_status", "resource_usage", "uptime", "restart_count"]
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": ["http_endpoint", "process_responsive", "resource_limits"]
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": [3000, 3001, 3002],
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": [8000, 5000, 8080],
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": [8080, 3000],
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": [8080, 8000],
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": [8080, 8443],
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": [3000, 9292],
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": [8000, 8080],
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": [8080],
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": ["/docs", "/openapi.json"],
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": ["/admin"],
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": ["/ping", "/ready"],
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": ["/health"],
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": ["/actuator/info"],
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": ["/health"],
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": ["/api/health"],
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": ["ERROR", "CRITICAL", "Exception", "Traceback", "Failed to"],
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": ["ERROR", "Error:", "Exception", "Unhandled", "ECONNREFUSED"],
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": ["ERROR", "FATAL", "panic", "thread .* panicked"],
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": ["ERROR", "FATAL", "panic:", "runtime error"],
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": ["ERROR", "SEVERE", "Exception", "java.lang.", "OutOfMemoryError"],
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": ["ERROR", "FATAL", "Exception"],
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": ["Fatal error", "Parse error", "Exception"],
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.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": ["FastAPI", "Django", "Flask"],
1627
- "nodejs": ["Express", "Next.js", "NestJS"],
1628
- "rust": ["Actix-web", "Rocket", "Axum"],
1629
- "go": ["Gin", "Echo", "Fiber"],
1630
- "java": ["Spring Boot"],
1631
- "ruby": ["Rails"],
1632
- "php": ["Laravel"],
1633
- "dart": ["Flutter Web"]
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
  }
@@ -174,5 +174,12 @@
174
174
  "git"
175
175
  ],
176
176
  "optional": false
177
- }
177
+ },
178
+ "skills": [
179
+ "docker-containerization",
180
+ "database-migration",
181
+ "security-scanning",
182
+ "git-workflow",
183
+ "systematic-debugging"
184
+ ]
178
185
  }
@@ -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
  }
@@ -129,5 +129,12 @@
129
129
  "token_usage": 8192,
130
130
  "success_rate": 0.9
131
131
  }
132
- }
133
- }
132
+ },
133
+ "skills": [
134
+ "docker-containerization",
135
+ "database-migration",
136
+ "security-scanning",
137
+ "git-workflow",
138
+ "systematic-debugging"
139
+ ]
140
+ }
@@ -729,5 +729,9 @@
729
729
  "Write succinct commit messages explaining WHAT changed and WHY",
730
730
  "Follow conventional commits format: feat/fix/docs/refactor/perf/test/chore"
731
731
  ]
732
- }
732
+ },
733
+ "skills": [
734
+ "systematic-debugging",
735
+ "code-review"
736
+ ]
733
737
  }
@@ -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
  }
@@ -232,5 +232,11 @@
232
232
  "git"
233
233
  ],
234
234
  "optional": false
235
- }
235
+ },
236
+ "skills": [
237
+ "test-driven-development",
238
+ "systematic-debugging",
239
+ "async-testing",
240
+ "performance-profiling"
241
+ ]
236
242
  }
@@ -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
  }
@@ -265,5 +265,12 @@
265
265
  "memory_usage": 500,
266
266
  "chunk_size": 200
267
267
  }
268
- }
268
+ },
269
+ "skills": [
270
+ "refactoring-patterns",
271
+ "code-review",
272
+ "systematic-debugging",
273
+ "performance-profiling",
274
+ "test-driven-development"
275
+ ]
269
276
  }
@@ -181,5 +181,8 @@
181
181
  "git"
182
182
  ],
183
183
  "optional": false
184
- }
184
+ },
185
+ "skills": [
186
+ "systematic-debugging"
187
+ ]
185
188
  }
@@ -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
  }
@@ -193,5 +193,10 @@
193
193
  "git"
194
194
  ],
195
195
  "optional": false
196
- }
196
+ },
197
+ "skills": [
198
+ "security-scanning",
199
+ "code-review",
200
+ "systematic-debugging"
201
+ ]
197
202
  }
@@ -168,5 +168,10 @@
168
168
  "git"
169
169
  ],
170
170
  "optional": false
171
- }
171
+ },
172
+ "skills": [
173
+ "api-documentation",
174
+ "code-review",
175
+ "git-workflow"
176
+ ]
172
177
  }
@@ -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
  }