@ngxtm/devkit 2.0.0 → 2.0.1
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/cli/config.js +149 -84
- package/package.json +1 -1
package/cli/config.js
CHANGED
|
@@ -8,130 +8,188 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
// Core skills that are always installed with --minimal
|
|
11
|
-
//
|
|
11
|
+
// Using exact directory names for accurate matching
|
|
12
12
|
const MINIMAL_SKILLS = [
|
|
13
13
|
// Best practices
|
|
14
14
|
'react-best-practices',
|
|
15
|
-
'typescript-
|
|
15
|
+
'typescript-expert',
|
|
16
|
+
'typescript-pro',
|
|
16
17
|
'postgres-best-practices',
|
|
17
18
|
'api-security-best-practices',
|
|
19
|
+
'nodejs-best-practices',
|
|
18
20
|
// Core workflows
|
|
19
|
-
'git-commit',
|
|
20
21
|
'code-review',
|
|
21
22
|
'debugging',
|
|
22
|
-
'testing',
|
|
23
|
-
'refactoring',
|
|
23
|
+
'testing-patterns',
|
|
24
|
+
'code-refactoring',
|
|
24
25
|
// Architecture
|
|
25
26
|
'api-patterns',
|
|
26
27
|
'architecture',
|
|
27
28
|
'clean-code',
|
|
29
|
+
'software-architecture',
|
|
28
30
|
// Operations
|
|
29
|
-
'documentation',
|
|
30
|
-
'
|
|
31
|
-
'logging',
|
|
32
|
-
'performance-optimization',
|
|
33
|
-
'security-best-practices',
|
|
31
|
+
'code-documentation',
|
|
32
|
+
'performance-profiling',
|
|
34
33
|
// AI/MCP
|
|
35
34
|
'mcp-management',
|
|
36
|
-
'sequential-thinking'
|
|
35
|
+
'sequential-thinking',
|
|
36
|
+
// Git
|
|
37
|
+
'git-pushing'
|
|
37
38
|
];
|
|
38
39
|
|
|
39
40
|
// Skill categories for --category option
|
|
41
|
+
// Using patterns that match actual directory names
|
|
40
42
|
const SKILL_CATEGORIES = {
|
|
41
43
|
'react': [
|
|
42
44
|
'react-best-practices',
|
|
43
|
-
'react-
|
|
44
|
-
'
|
|
45
|
-
'
|
|
46
|
-
'
|
|
47
|
-
'react-
|
|
48
|
-
'
|
|
49
|
-
'
|
|
50
|
-
'
|
|
45
|
+
'react-expert',
|
|
46
|
+
'react-patterns',
|
|
47
|
+
'react-ui-patterns',
|
|
48
|
+
'react-native-expert',
|
|
49
|
+
'react-flow-node',
|
|
50
|
+
'nextjs-best-practices',
|
|
51
|
+
'nextjs-developer',
|
|
52
|
+
'nextjs-supabase-auth',
|
|
53
|
+
'expo-app-design',
|
|
54
|
+
'expo-deployment'
|
|
51
55
|
],
|
|
52
56
|
'typescript': [
|
|
53
|
-
'typescript-
|
|
54
|
-
'typescript-
|
|
55
|
-
'typescript
|
|
56
|
-
'
|
|
57
|
+
'typescript-expert',
|
|
58
|
+
'typescript-pro',
|
|
59
|
+
'javascript-typescript',
|
|
60
|
+
'javascript-mastery',
|
|
61
|
+
'javascript-pro'
|
|
57
62
|
],
|
|
58
63
|
'node': [
|
|
59
|
-
'nodejs',
|
|
60
|
-
'nestjs',
|
|
61
|
-
'
|
|
62
|
-
'
|
|
63
|
-
'prisma',
|
|
64
|
-
'
|
|
64
|
+
'nodejs-best-practices',
|
|
65
|
+
'nestjs-expert',
|
|
66
|
+
'fastapi-expert',
|
|
67
|
+
'fastapi-router',
|
|
68
|
+
'prisma-expert',
|
|
69
|
+
'bullmq-specialist',
|
|
70
|
+
'bun-development'
|
|
71
|
+
],
|
|
72
|
+
'python': [
|
|
73
|
+
'python-development',
|
|
74
|
+
'python-patterns',
|
|
75
|
+
'python-pro',
|
|
76
|
+
'django-expert',
|
|
77
|
+
'fastapi-expert',
|
|
78
|
+
'pydantic-models',
|
|
79
|
+
'pandas-pro'
|
|
65
80
|
],
|
|
66
81
|
'database': [
|
|
67
82
|
'postgres-best-practices',
|
|
68
|
-
'
|
|
69
|
-
'
|
|
70
|
-
'
|
|
71
|
-
'database-
|
|
83
|
+
'postgres-pro',
|
|
84
|
+
'neon-postgres',
|
|
85
|
+
'database-design',
|
|
86
|
+
'database-optimizer',
|
|
87
|
+
'databases',
|
|
88
|
+
'nosql-expert',
|
|
89
|
+
'sql-pro'
|
|
72
90
|
],
|
|
73
91
|
'devops': [
|
|
74
|
-
'docker',
|
|
75
|
-
'kubernetes',
|
|
76
|
-
'
|
|
77
|
-
'github-
|
|
78
|
-
'
|
|
79
|
-
'aws',
|
|
80
|
-
'
|
|
92
|
+
'docker-expert',
|
|
93
|
+
'kubernetes-specialist',
|
|
94
|
+
'terraform-engineer',
|
|
95
|
+
'github-workflow-automation',
|
|
96
|
+
'aws-serverless',
|
|
97
|
+
'aws-cdk-development',
|
|
98
|
+
'aws-cost-operations',
|
|
99
|
+
'gcp-cloud-run',
|
|
100
|
+
'cloudflare-expert',
|
|
101
|
+
'vercel-deploy',
|
|
102
|
+
'vercel-deployment',
|
|
103
|
+
'devops',
|
|
104
|
+
'devops-engineer'
|
|
81
105
|
],
|
|
82
106
|
'testing': [
|
|
83
|
-
'testing',
|
|
84
|
-
'
|
|
85
|
-
'
|
|
86
|
-
'
|
|
87
|
-
'
|
|
88
|
-
'test-
|
|
107
|
+
'testing-patterns',
|
|
108
|
+
'test-driven-development',
|
|
109
|
+
'tdd-workflow',
|
|
110
|
+
'playwright-expert',
|
|
111
|
+
'playwright-skill',
|
|
112
|
+
'test-master',
|
|
113
|
+
'test-fixing',
|
|
114
|
+
'qa-regression'
|
|
89
115
|
],
|
|
90
116
|
'security': [
|
|
91
|
-
'security-best-practices',
|
|
92
117
|
'api-security-best-practices',
|
|
93
|
-
'
|
|
94
|
-
'
|
|
95
|
-
'
|
|
118
|
+
'secure-code-guardian',
|
|
119
|
+
'security-reviewer',
|
|
120
|
+
'ethical-hacking-methodology',
|
|
121
|
+
'pentest-checklist',
|
|
122
|
+
'pentest-commands',
|
|
123
|
+
'aws-penetration-testing',
|
|
124
|
+
'cloud-penetration-testing',
|
|
125
|
+
'top-web-vulnerabilities'
|
|
96
126
|
],
|
|
97
127
|
'ai': [
|
|
98
128
|
'ai-agents-architect',
|
|
99
129
|
'ai-product',
|
|
130
|
+
'ai-multimodal',
|
|
100
131
|
'mcp-management',
|
|
132
|
+
'mcp-developer',
|
|
133
|
+
'mcp-builder',
|
|
101
134
|
'prompt-engineering',
|
|
102
|
-
'
|
|
103
|
-
'
|
|
135
|
+
'prompt-engineer',
|
|
136
|
+
'langgraph',
|
|
137
|
+
'langfuse',
|
|
138
|
+
'crewai',
|
|
139
|
+
'rag-architect',
|
|
140
|
+
'rag-engineer',
|
|
141
|
+
'rag-implementation',
|
|
142
|
+
'llm-application-dev',
|
|
143
|
+
'llm-app-patterns',
|
|
144
|
+
'sequential-thinking',
|
|
145
|
+
'agent-memory-mcp',
|
|
146
|
+
'agent-memory-systems',
|
|
147
|
+
'autonomous-agent-patterns'
|
|
104
148
|
],
|
|
105
149
|
'mobile': [
|
|
106
|
-
'react-native',
|
|
107
|
-
'flutter',
|
|
108
|
-
'
|
|
109
|
-
'
|
|
110
|
-
'mobile-
|
|
150
|
+
'react-native-expert',
|
|
151
|
+
'flutter-expert',
|
|
152
|
+
'expo-app-design',
|
|
153
|
+
'expo-deployment',
|
|
154
|
+
'mobile-design',
|
|
155
|
+
'mobile-development',
|
|
156
|
+
'swift-expert',
|
|
157
|
+
'kotlin-specialist'
|
|
111
158
|
],
|
|
112
159
|
'frontend': [
|
|
113
|
-
'
|
|
114
|
-
'
|
|
115
|
-
'
|
|
116
|
-
'
|
|
117
|
-
'
|
|
118
|
-
'
|
|
160
|
+
'frontend-development',
|
|
161
|
+
'frontend-design',
|
|
162
|
+
'frontend-dev-guidelines',
|
|
163
|
+
'tailwind-patterns',
|
|
164
|
+
'ui-design-system',
|
|
165
|
+
'ui-styling',
|
|
166
|
+
'ui-ux-pro-max',
|
|
167
|
+
'web-design-guidelines',
|
|
168
|
+
'web-performance-optimization',
|
|
169
|
+
'threejs',
|
|
170
|
+
'vue-expert',
|
|
171
|
+
'angular-architect'
|
|
119
172
|
],
|
|
120
173
|
'backend': [
|
|
174
|
+
'backend-development',
|
|
175
|
+
'backend-dev-guidelines',
|
|
121
176
|
'api-patterns',
|
|
122
|
-
'
|
|
123
|
-
'
|
|
124
|
-
'
|
|
125
|
-
'
|
|
126
|
-
'
|
|
177
|
+
'api-designer',
|
|
178
|
+
'microservices-architect',
|
|
179
|
+
'graphql',
|
|
180
|
+
'graphql-architect',
|
|
181
|
+
'websocket-engineer'
|
|
127
182
|
],
|
|
128
183
|
'tools': [
|
|
129
|
-
'git-
|
|
184
|
+
'git-pushing',
|
|
130
185
|
'code-review',
|
|
131
186
|
'debugging',
|
|
132
|
-
'
|
|
133
|
-
'
|
|
134
|
-
'
|
|
187
|
+
'debugging-wizard',
|
|
188
|
+
'code-refactoring',
|
|
189
|
+
'code-documentation',
|
|
190
|
+
'repomix',
|
|
191
|
+
'browser-automation',
|
|
192
|
+
'cli-developer'
|
|
135
193
|
]
|
|
136
194
|
};
|
|
137
195
|
|
|
@@ -157,30 +215,37 @@ function getSkillsForCategories(categories) {
|
|
|
157
215
|
// Check if a skill matches the filter
|
|
158
216
|
function shouldIncludeSkill(skillName, options = {}) {
|
|
159
217
|
const { minimal, categories, selectedSkills } = options;
|
|
218
|
+
const lowerSkillName = skillName.toLowerCase();
|
|
160
219
|
|
|
161
220
|
// If specific skills are selected, check against that list
|
|
162
221
|
if (selectedSkills && selectedSkills.length > 0) {
|
|
163
|
-
return selectedSkills.some(s =>
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
222
|
+
return selectedSkills.some(s => {
|
|
223
|
+
const lowerS = s.toLowerCase();
|
|
224
|
+
return lowerSkillName === lowerS ||
|
|
225
|
+
lowerSkillName.includes(lowerS) ||
|
|
226
|
+
lowerS.includes(lowerSkillName);
|
|
227
|
+
});
|
|
167
228
|
}
|
|
168
229
|
|
|
169
230
|
// If minimal mode, only include minimal skills
|
|
170
231
|
if (minimal) {
|
|
171
|
-
return MINIMAL_SKILLS.some(s =>
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
232
|
+
return MINIMAL_SKILLS.some(s => {
|
|
233
|
+
const lowerS = s.toLowerCase();
|
|
234
|
+
return lowerSkillName === lowerS ||
|
|
235
|
+
lowerSkillName.includes(lowerS) ||
|
|
236
|
+
lowerS.includes(lowerSkillName);
|
|
237
|
+
});
|
|
175
238
|
}
|
|
176
239
|
|
|
177
240
|
// If categories specified, check against category skills
|
|
178
241
|
if (categories && categories.length > 0) {
|
|
179
242
|
const categorySkills = getSkillsForCategories(categories);
|
|
180
|
-
return categorySkills.some(s =>
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
243
|
+
return categorySkills.some(s => {
|
|
244
|
+
const lowerS = s.toLowerCase();
|
|
245
|
+
return lowerSkillName === lowerS ||
|
|
246
|
+
lowerSkillName.includes(lowerS) ||
|
|
247
|
+
lowerS.includes(lowerSkillName);
|
|
248
|
+
});
|
|
184
249
|
}
|
|
185
250
|
|
|
186
251
|
// Default: include all
|