@nebutra/next-unicorn-skill 1.0.0 → 1.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.
Files changed (34) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +48 -12
  3. package/SKILL.md +87 -256
  4. package/dist/analyzer/pattern-catalog.d.ts +11 -8
  5. package/dist/analyzer/pattern-catalog.d.ts.map +1 -1
  6. package/dist/analyzer/pattern-catalog.js +273 -67
  7. package/dist/analyzer/pattern-catalog.js.map +1 -1
  8. package/dist/analyzer/scanner.d.ts +0 -1
  9. package/dist/analyzer/scanner.d.ts.map +1 -1
  10. package/dist/analyzer/scanner.js +70 -61
  11. package/dist/analyzer/scanner.js.map +1 -1
  12. package/dist/auditor/ux-auditor.d.ts +4 -1
  13. package/dist/auditor/ux-auditor.d.ts.map +1 -1
  14. package/dist/auditor/ux-auditor.js +25 -47
  15. package/dist/auditor/ux-auditor.js.map +1 -1
  16. package/dist/index.d.ts +40 -8
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +37 -24
  19. package/dist/index.js.map +1 -1
  20. package/dist/planner/migration-planner.d.ts +7 -2
  21. package/dist/planner/migration-planner.d.ts.map +1 -1
  22. package/dist/planner/migration-planner.js +16 -4
  23. package/dist/planner/migration-planner.js.map +1 -1
  24. package/dist/pr-creator/pr-description-builder.js +1 -1
  25. package/dist/pr-creator/pr-description-builder.js.map +1 -1
  26. package/dist/scorer/impact-scorer.d.ts +28 -2
  27. package/dist/scorer/impact-scorer.d.ts.map +1 -1
  28. package/dist/scorer/impact-scorer.js +46 -111
  29. package/dist/scorer/impact-scorer.js.map +1 -1
  30. package/dist/verifier/context7.d.ts +15 -4
  31. package/dist/verifier/context7.d.ts.map +1 -1
  32. package/dist/verifier/context7.js +12 -9
  33. package/dist/verifier/context7.js.map +1 -1
  34. package/package.json +12 -14
@@ -1,6 +1,9 @@
1
1
  /**
2
- * Returns the full pattern catalog covering all Vibe Coding domains.
3
- * Each domain has at least 1–2 patterns.
2
+ * Returns the full pattern catalog covering Vibe Coding domains.
3
+ * Each covered domain has 2–3 patterns for hand-rolled code detection.
4
+ *
5
+ * The catalog defines WHAT to detect, not WHAT to recommend.
6
+ * Library recommendations are generated dynamically by the AI agent.
4
7
  */
5
8
  export function getPatternCatalog() {
6
9
  return [
@@ -16,9 +19,6 @@ export function getPatternCatalog() {
16
19
  /count\s*[=!]==?\s*1\s*\?\s*['"`].*['"`]\s*:\s*['"`].*['"`]/,
17
20
  /\.length\s*[=!]==?\s*1\s*\?\s*['"`].*['"`]\s*:\s*['"`].*['"`]/,
18
21
  ],
19
- suggestedLibrary: 'i18next',
20
- suggestedVersion: '^23.0.0',
21
- license: 'MIT',
22
22
  confidenceBase: 0.7,
23
23
  },
24
24
  {
@@ -31,9 +31,6 @@ export function getPatternCatalog() {
31
31
  /accept-language/i,
32
32
  /toLocaleDateString\s*\(/,
33
33
  ],
34
- suggestedLibrary: 'react-i18next',
35
- suggestedVersion: '^14.0.0',
36
- license: 'MIT',
37
34
  confidenceBase: 0.65,
38
35
  },
39
36
  // -----------------------------------------------------------------------
@@ -49,9 +46,6 @@ export function getPatternCatalog() {
49
46
  /document\s*\.\s*head\s*\.\s*appendChild/,
50
47
  /document\s*\.\s*querySelector\s*\(\s*['"`]meta\[/,
51
48
  ],
52
- suggestedLibrary: 'next-seo',
53
- suggestedVersion: '^6.0.0',
54
- license: 'MIT',
55
49
  confidenceBase: 0.75,
56
50
  },
57
51
  {
@@ -64,13 +58,10 @@ export function getPatternCatalog() {
64
58
  /<urlset\s+xmlns/,
65
59
  /writeFileSync\s*\(.*sitemap/i,
66
60
  ],
67
- suggestedLibrary: 'next-sitemap',
68
- suggestedVersion: '^4.0.0',
69
- license: 'MIT',
70
61
  confidenceBase: 0.8,
71
62
  },
72
63
  // -----------------------------------------------------------------------
73
- // growth-hacking — A/B Testing, Analytics, Feature Flags, Funnel Tracking
64
+ // growth-hacking — A/B Testing, Analytics, Feature Flags
74
65
  // -----------------------------------------------------------------------
75
66
  {
76
67
  id: 'growth-manual-ab-test',
@@ -82,9 +73,6 @@ export function getPatternCatalog() {
82
73
  /variant\s*=\s*['"`][AB]['"`]/i,
83
74
  /experiment\s*[=:]\s*.*random/i,
84
75
  ],
85
- suggestedLibrary: 'posthog-js',
86
- suggestedVersion: '^1.100.0',
87
- license: 'MIT',
88
76
  confidenceBase: 0.7,
89
77
  },
90
78
  {
@@ -97,9 +85,6 @@ export function getPatternCatalog() {
97
85
  /featureFlags?\s*\[/,
98
86
  /isFeatureEnabled\s*\(/,
99
87
  ],
100
- suggestedLibrary: 'unleash-client',
101
- suggestedVersion: '^5.0.0',
102
- license: 'Apache-2.0',
103
88
  confidenceBase: 0.6,
104
89
  },
105
90
  // -----------------------------------------------------------------------
@@ -115,9 +100,6 @@ export function getPatternCatalog() {
115
100
  /f['"].*\{.*\}.*['"].*(?:prompt|model|completion)/i,
116
101
  /\.replace\s*\(\s*['"`]\{.*\}['"`]/,
117
102
  ],
118
- suggestedLibrary: 'langchain',
119
- suggestedVersion: '^0.2.0',
120
- license: 'MIT',
121
103
  confidenceBase: 0.65,
122
104
  },
123
105
  {
@@ -130,13 +112,10 @@ export function getPatternCatalog() {
130
112
  /axios\s*\.\s*post\s*\(\s*['"`].*(?:completions|chat|generate)/i,
131
113
  /requests\s*\.\s*post\s*\(\s*['"`].*(?:v1\/|api\/)/i,
132
114
  ],
133
- suggestedLibrary: 'ai',
134
- suggestedVersion: '^3.0.0',
135
- license: 'Apache-2.0',
136
115
  confidenceBase: 0.7,
137
116
  },
138
117
  // -----------------------------------------------------------------------
139
- // agent-architecture — MCP Integration, Tool Orchestration, Context, Memory
118
+ // agent-architecture — MCP Integration, Tool Orchestration, Context
140
119
  // -----------------------------------------------------------------------
141
120
  {
142
121
  id: 'agent-manual-tool-dispatch',
@@ -148,9 +127,6 @@ export function getPatternCatalog() {
148
127
  /if\s*\(\s*tool(?:Name|_name)\s*===?\s*['"`]/i,
149
128
  /tool_map\s*\[/i,
150
129
  ],
151
- suggestedLibrary: '@modelcontextprotocol/sdk',
152
- suggestedVersion: '^1.0.0',
153
- license: 'MIT',
154
130
  confidenceBase: 0.7,
155
131
  },
156
132
  {
@@ -163,9 +139,6 @@ export function getPatternCatalog() {
163
139
  /truncat(?:e|ion)\s*.*(?:context|message|prompt)/i,
164
140
  /maxTokens?\s*[=:]/i,
165
141
  ],
166
- suggestedLibrary: 'tiktoken',
167
- suggestedVersion: '^1.0.0',
168
- license: 'MIT',
169
142
  confidenceBase: 0.6,
170
143
  },
171
144
  // -----------------------------------------------------------------------
@@ -181,9 +154,6 @@ export function getPatternCatalog() {
181
154
  /\.replace\s*\(\s*\/\s*\\\*\\\*/,
182
155
  /\.split\s*\(\s*['"`]\\n['"`]\s*\)\s*\.\s*map/,
183
156
  ],
184
- suggestedLibrary: 'contentlayer',
185
- suggestedVersion: '^0.3.0',
186
- license: 'MIT',
187
157
  confidenceBase: 0.65,
188
158
  },
189
159
  {
@@ -196,9 +166,6 @@ export function getPatternCatalog() {
196
166
  /glob\s*\(.*\.mdx?\b/i,
197
167
  /frontmatter|gray-matter/i,
198
168
  ],
199
- suggestedLibrary: 'next-mdx-remote',
200
- suggestedVersion: '^4.0.0',
201
- license: 'MIT',
202
169
  confidenceBase: 0.6,
203
170
  },
204
171
  // -----------------------------------------------------------------------
@@ -214,9 +181,6 @@ export function getPatternCatalog() {
214
181
  /payment[_-]?intent/i,
215
182
  /charge\s*\.\s*create/i,
216
183
  ],
217
- suggestedLibrary: 'stripe',
218
- suggestedVersion: '^14.0.0',
219
- license: 'MIT',
220
184
  confidenceBase: 0.75,
221
185
  },
222
186
  {
@@ -229,13 +193,10 @@ export function getPatternCatalog() {
229
193
  /vat\s*[=:*]/i,
230
194
  /calculateTax\s*\(/i,
231
195
  ],
232
- suggestedLibrary: 'taxjar',
233
- suggestedVersion: '^5.0.0',
234
- license: 'MIT',
235
196
  confidenceBase: 0.65,
236
197
  },
237
198
  // -----------------------------------------------------------------------
238
- // observability — Logging, Tracing, Metrics, Error Tracking, CI/CD
199
+ // observability — Logging, Tracing, Metrics, Error Tracking
239
200
  // -----------------------------------------------------------------------
240
201
  {
241
202
  id: 'observability-manual-logging',
@@ -245,9 +206,6 @@ export function getPatternCatalog() {
245
206
  codePatterns: [
246
207
  /console\s*\.\s*(?:log|error|warn|info)\s*\(/,
247
208
  ],
248
- suggestedLibrary: 'pino',
249
- suggestedVersion: '^9.0.0',
250
- license: 'MIT',
251
209
  confidenceBase: 0.55,
252
210
  },
253
211
  {
@@ -260,13 +218,10 @@ export function getPatternCatalog() {
260
218
  /window\s*\.\s*onerror/,
261
219
  /process\s*\.\s*on\s*\(\s*['"`]uncaughtException['"`]/,
262
220
  ],
263
- suggestedLibrary: 'sentry',
264
- suggestedVersion: '^8.0.0',
265
- license: 'MIT',
266
221
  confidenceBase: 0.7,
267
222
  },
268
223
  // -----------------------------------------------------------------------
269
- // auth-security — Authentication, Authorization/RBAC, Secrets, Rate Limiting
224
+ // auth-security — Authentication, Authorization, Rate Limiting
270
225
  // -----------------------------------------------------------------------
271
226
  {
272
227
  id: 'auth-manual-jwt-handling',
@@ -279,9 +234,6 @@ export function getPatternCatalog() {
279
234
  /jwt\s*\.\s*sign\s*\(/i,
280
235
  /createHmac\s*\(/,
281
236
  ],
282
- suggestedLibrary: 'jose',
283
- suggestedVersion: '^5.0.0',
284
- license: 'MIT',
285
237
  confidenceBase: 0.75,
286
238
  },
287
239
  {
@@ -294,13 +246,10 @@ export function getPatternCatalog() {
294
246
  /rateLimi(?:t|ter)/i,
295
247
  /new\s+Map\s*\(\s*\).*(?:timestamp|count|window)/i,
296
248
  ],
297
- suggestedLibrary: 'rate-limiter-flexible',
298
- suggestedVersion: '^5.0.0',
299
- license: 'ISC',
300
249
  confidenceBase: 0.65,
301
250
  },
302
251
  // -----------------------------------------------------------------------
303
- // ux-completeness — Accessibility, Error/Empty/Loading States, etc.
252
+ // ux-completeness — Forms, Loading States
304
253
  // -----------------------------------------------------------------------
305
254
  {
306
255
  id: 'ux-manual-form-validation',
@@ -312,9 +261,6 @@ export function getPatternCatalog() {
312
261
  /errors\s*\[\s*['"`]\w+['"`]\s*\]/,
313
262
  /validate\w*\s*=\s*\(\s*\)\s*=>/,
314
263
  ],
315
- suggestedLibrary: 'react-hook-form',
316
- suggestedVersion: '^7.50.0',
317
- license: 'MIT',
318
264
  confidenceBase: 0.7,
319
265
  },
320
266
  {
@@ -326,11 +272,271 @@ export function getPatternCatalog() {
326
272
  /isLoading\s*\?\s*.*(?:Loading|Spinner|\.\.\.)/i,
327
273
  /useState\s*<\s*boolean\s*>\s*\(\s*(?:true|false)\s*\).*loading/i,
328
274
  ],
329
- suggestedLibrary: 'react-loading-skeleton',
330
- suggestedVersion: '^3.4.0',
331
- license: 'MIT',
332
275
  confidenceBase: 0.55,
333
276
  },
277
+ // -----------------------------------------------------------------------
278
+ // state-management — Manual state chains, Redux boilerplate
279
+ // -----------------------------------------------------------------------
280
+ {
281
+ id: 'state-manual-usestate-chain',
282
+ domain: 'state-management',
283
+ description: 'Multiple related useState hooks that should be a single store',
284
+ filePatterns: ['**/*.tsx', '**/*.jsx'],
285
+ codePatterns: [
286
+ /useState\s*\(.*\);\s*\n\s*const\s*\[.*\]\s*=\s*useState\s*\(.*\);\s*\n\s*const\s*\[.*\]\s*=\s*useState/,
287
+ /const\s*\[\w+,\s*set\w+\]\s*=\s*useState[\s\S]{0,100}const\s*\[\w+,\s*set\w+\]\s*=\s*useState[\s\S]{0,100}const\s*\[\w+,\s*set\w+\]\s*=\s*useState/,
288
+ ],
289
+ confidenceBase: 0.6,
290
+ },
291
+ {
292
+ id: 'state-manual-context-provider',
293
+ domain: 'state-management',
294
+ description: 'Hand-rolled React Context for global state management',
295
+ filePatterns: ['**/*.tsx', '**/*.jsx', '**/*.ts', '**/*.js'],
296
+ codePatterns: [
297
+ /createContext\s*<[\s\S]*>\s*\(/,
298
+ /useReducer\s*\(\s*\w+Reducer/,
299
+ /Provider\s+value\s*=\s*\{[\s\S]*dispatch/,
300
+ ],
301
+ confidenceBase: 0.55,
302
+ },
303
+ {
304
+ id: 'state-manual-redux-boilerplate',
305
+ domain: 'state-management',
306
+ description: 'Redux boilerplate without Redux Toolkit (manual action creators, reducers)',
307
+ filePatterns: ['**/*.ts', '**/*.js'],
308
+ codePatterns: [
309
+ /type\s*:\s*['"`][A-Z_]+['"`]\s*,\s*payload/,
310
+ /switch\s*\(\s*action\s*\.\s*type\s*\)/,
311
+ /const\s+\w+\s*=\s*\(\s*state\s*=\s*initialState\s*,\s*action\s*\)/,
312
+ ],
313
+ confidenceBase: 0.75,
314
+ },
315
+ // -----------------------------------------------------------------------
316
+ // data-fetching-caching — Manual fetch + useEffect patterns
317
+ // -----------------------------------------------------------------------
318
+ {
319
+ id: 'data-fetch-useeffect',
320
+ domain: 'data-fetching-caching',
321
+ description: 'Manual data fetching with fetch/axios inside useEffect',
322
+ filePatterns: ['**/*.tsx', '**/*.jsx'],
323
+ codePatterns: [
324
+ /useEffect\s*\(\s*\(\s*\)\s*=>\s*\{[\s\S]{0,200}fetch\s*\(/,
325
+ /useEffect\s*\(\s*\(\s*\)\s*=>\s*\{[\s\S]{0,200}axios\s*\.\s*get/,
326
+ /useEffect\s*\(\s*\(\s*\)\s*=>\s*\{[\s\S]{0,100}setLoading\s*\(\s*true\s*\)/,
327
+ ],
328
+ confidenceBase: 0.7,
329
+ },
330
+ {
331
+ id: 'data-fetch-manual-cache',
332
+ domain: 'data-fetching-caching',
333
+ description: 'Hand-rolled client-side data cache with Map or object',
334
+ filePatterns: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'],
335
+ codePatterns: [
336
+ /new\s+Map\s*<.*,.*>\s*\(\s*\)[\s\S]{0,200}\.set\s*\([\s\S]{0,100}\.get\s*\(/,
337
+ /cache\s*\[\s*\w+\s*\]\s*=[\s\S]{0,100}cache\s*\[\s*\w+\s*\]/,
338
+ /const\s+cache\s*=\s*(?:new\s+Map|{})/,
339
+ ],
340
+ confidenceBase: 0.6,
341
+ },
342
+ {
343
+ id: 'data-fetch-manual-retry',
344
+ domain: 'data-fetching-caching',
345
+ description: 'Hand-rolled fetch retry logic with loops or recursion',
346
+ filePatterns: ['**/*.ts', '**/*.js'],
347
+ codePatterns: [
348
+ /retry\s*[<>=]\s*\d+[\s\S]{0,200}fetch\s*\(/i,
349
+ /for\s*\(\s*let\s+\w+\s*=\s*0[\s\S]{0,200}fetch\s*\(/,
350
+ /attempts?\s*[+\-]=\s*1[\s\S]{0,100}(?:fetch|axios)/i,
351
+ ],
352
+ confidenceBase: 0.7,
353
+ },
354
+ // -----------------------------------------------------------------------
355
+ // forms-ux — Manual form state and validation
356
+ // -----------------------------------------------------------------------
357
+ {
358
+ id: 'forms-manual-state-tracking',
359
+ domain: 'forms-ux',
360
+ description: 'Multiple useState hooks for individual form fields',
361
+ filePatterns: ['**/*.tsx', '**/*.jsx'],
362
+ codePatterns: [
363
+ /const\s*\[\s*\w+,\s*set\w+\s*\]\s*=\s*useState\s*\(\s*['"`]{2}\s*\)[\s\S]{0,200}onChange/,
364
+ /e\s*\.\s*target\s*\.\s*value[\s\S]{0,50}set\w+\s*\(\s*e\s*\.\s*target\s*\.\s*value\s*\)/,
365
+ ],
366
+ confidenceBase: 0.65,
367
+ },
368
+ {
369
+ id: 'forms-manual-submit-handler',
370
+ domain: 'forms-ux',
371
+ description: 'Hand-rolled form submission with manual preventDefault and state collection',
372
+ filePatterns: ['**/*.tsx', '**/*.jsx'],
373
+ codePatterns: [
374
+ /handleSubmit[\s\S]{0,100}preventDefault\s*\(\s*\)[\s\S]{0,200}fetch\s*\(/,
375
+ /onSubmit[\s\S]{0,100}e\s*\.\s*preventDefault[\s\S]{0,200}(?:setLoading|setError)/,
376
+ ],
377
+ confidenceBase: 0.6,
378
+ },
379
+ // -----------------------------------------------------------------------
380
+ // error-handling-resilience — Error boundaries, Result types
381
+ // -----------------------------------------------------------------------
382
+ {
383
+ id: 'error-manual-error-boundary',
384
+ domain: 'error-handling-resilience',
385
+ description: 'Hand-rolled error boundary class component',
386
+ filePatterns: ['**/*.tsx', '**/*.jsx', '**/*.ts', '**/*.js'],
387
+ codePatterns: [
388
+ /componentDidCatch\s*\(/,
389
+ /getDerivedStateFromError\s*\(/,
390
+ /class\s+\w*ErrorBoundary\s+extends\s+(?:React\.)?Component/,
391
+ ],
392
+ confidenceBase: 0.8,
393
+ },
394
+ {
395
+ id: 'error-manual-result-type',
396
+ domain: 'error-handling-resilience',
397
+ description: 'Hand-rolled Result/Either type for error handling',
398
+ filePatterns: ['**/*.ts', '**/*.js'],
399
+ codePatterns: [
400
+ /type\s+Result\s*<[\s\S]*>\s*=\s*\{?\s*(?:success|ok|data|error)/i,
401
+ /interface\s+(?:Result|Either)\s*<[\s\S]*>\s*\{/i,
402
+ /\{\s*ok\s*:\s*true[\s\S]{0,50}data\s*:[\s\S]{0,100}\{\s*ok\s*:\s*false[\s\S]{0,50}error\s*:/,
403
+ ],
404
+ confidenceBase: 0.65,
405
+ },
406
+ // -----------------------------------------------------------------------
407
+ // a11y-accessibility — Missing ARIA, keyboard navigation
408
+ // -----------------------------------------------------------------------
409
+ {
410
+ id: 'a11y-manual-click-handler-div',
411
+ domain: 'a11y-accessibility',
412
+ description: 'Clickable div/span without keyboard accessibility',
413
+ filePatterns: ['**/*.tsx', '**/*.jsx'],
414
+ codePatterns: [
415
+ /<div\s[^>]*onClick\s*=\s*\{/,
416
+ /<span\s[^>]*onClick\s*=\s*\{/,
417
+ ],
418
+ confidenceBase: 0.6,
419
+ },
420
+ {
421
+ id: 'a11y-manual-focus-management',
422
+ domain: 'a11y-accessibility',
423
+ description: 'Hand-rolled focus management and keyboard trap',
424
+ filePatterns: ['**/*.tsx', '**/*.jsx', '**/*.ts', '**/*.js'],
425
+ codePatterns: [
426
+ /\.focus\s*\(\s*\)[\s\S]{0,200}(?:tabIndex|keyCode|keyDown)/i,
427
+ /addEventListener\s*\(\s*['"`]keydown['"`][\s\S]{0,200}(?:Tab|Escape|27|9)\b/,
428
+ /document\s*\.\s*activeElement/,
429
+ ],
430
+ confidenceBase: 0.55,
431
+ },
432
+ // -----------------------------------------------------------------------
433
+ // file-upload-media — Manual FileReader, drag-and-drop
434
+ // -----------------------------------------------------------------------
435
+ {
436
+ id: 'upload-manual-filereader',
437
+ domain: 'file-upload-media',
438
+ description: 'Hand-rolled file reading with FileReader API',
439
+ filePatterns: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'],
440
+ codePatterns: [
441
+ /new\s+FileReader\s*\(\s*\)/,
442
+ /readAsDataURL\s*\(/,
443
+ /readAsArrayBuffer\s*\(/,
444
+ ],
445
+ confidenceBase: 0.6,
446
+ },
447
+ {
448
+ id: 'upload-manual-drag-drop',
449
+ domain: 'file-upload-media',
450
+ description: 'Hand-rolled drag-and-drop file upload handling',
451
+ filePatterns: ['**/*.tsx', '**/*.jsx', '**/*.ts', '**/*.js'],
452
+ codePatterns: [
453
+ /addEventListener\s*\(\s*['"`](?:dragover|dragenter|drop)['"`]/,
454
+ /onDrop\s*=\s*\{[\s\S]{0,200}dataTransfer\s*\.\s*files/,
455
+ /e\s*\.\s*dataTransfer\s*\.\s*files/,
456
+ ],
457
+ confidenceBase: 0.65,
458
+ },
459
+ // -----------------------------------------------------------------------
460
+ // database-orm-migrations — Raw SQL, manual migrations
461
+ // -----------------------------------------------------------------------
462
+ {
463
+ id: 'db-manual-raw-sql',
464
+ domain: 'database-orm-migrations',
465
+ description: 'Hand-rolled raw SQL queries with string interpolation',
466
+ filePatterns: ['**/*.ts', '**/*.js'],
467
+ codePatterns: [
468
+ /`SELECT\s[\s\S]*FROM\s[\s\S]*\$\{/i,
469
+ /`INSERT\s+INTO\s[\s\S]*\$\{/i,
470
+ /`UPDATE\s[\s\S]*SET\s[\s\S]*\$\{/i,
471
+ /query\s*\(\s*['"`](?:SELECT|INSERT|UPDATE|DELETE)\b/i,
472
+ ],
473
+ confidenceBase: 0.7,
474
+ },
475
+ {
476
+ id: 'db-manual-migration-script',
477
+ domain: 'database-orm-migrations',
478
+ description: 'Hand-rolled database migration with CREATE TABLE / ALTER TABLE',
479
+ filePatterns: ['**/*.ts', '**/*.js', '**/*.sql'],
480
+ codePatterns: [
481
+ /CREATE\s+TABLE\s+(?:IF\s+NOT\s+EXISTS\s+)?\w+/i,
482
+ /ALTER\s+TABLE\s+\w+\s+(?:ADD|DROP|MODIFY)/i,
483
+ /\.exec\s*\(\s*['"`](?:CREATE|ALTER|DROP)\s/i,
484
+ ],
485
+ confidenceBase: 0.65,
486
+ },
487
+ // -----------------------------------------------------------------------
488
+ // logging-tracing-metrics — Structured logging, OpenTelemetry
489
+ // -----------------------------------------------------------------------
490
+ {
491
+ id: 'metrics-manual-timing',
492
+ domain: 'logging-tracing-metrics',
493
+ description: 'Hand-rolled performance timing with Date.now() or performance.now()',
494
+ filePatterns: ['**/*.ts', '**/*.js', '**/*.tsx', '**/*.jsx'],
495
+ codePatterns: [
496
+ /const\s+\w*[Ss]tart\w*\s*=\s*(?:Date|performance)\s*\.\s*now\s*\(\s*\)/,
497
+ /(?:Date|performance)\s*\.\s*now\s*\(\s*\)\s*-\s*\w*[Ss]tart/,
498
+ /console\s*\.\s*time\s*\(/,
499
+ ],
500
+ confidenceBase: 0.55,
501
+ },
502
+ {
503
+ id: 'metrics-manual-structured-log',
504
+ domain: 'logging-tracing-metrics',
505
+ description: 'Hand-rolled structured logging with JSON.stringify',
506
+ filePatterns: ['**/*.ts', '**/*.js'],
507
+ codePatterns: [
508
+ /console\s*\.\s*(?:log|info)\s*\(\s*JSON\s*\.\s*stringify\s*\(/,
509
+ /console\s*\.\s*(?:log|info)\s*\(\s*\{[\s\S]{0,200}(?:timestamp|level|message)/i,
510
+ ],
511
+ confidenceBase: 0.7,
512
+ },
513
+ // -----------------------------------------------------------------------
514
+ // testing-strategy — Manual test utilities
515
+ // -----------------------------------------------------------------------
516
+ {
517
+ id: 'test-manual-assertions',
518
+ domain: 'testing-strategy',
519
+ description: 'Hand-rolled test assertions without a test framework',
520
+ filePatterns: ['**/*.test.ts', '**/*.test.js', '**/*.spec.ts', '**/*.spec.js'],
521
+ codePatterns: [
522
+ /if\s*\([\s\S]{0,50}!==[\s\S]{0,50}\)\s*throw\s+new\s+Error/,
523
+ /assert\s*\.\s*(?:equal|strictEqual|deepEqual)\s*\(/,
524
+ /console\s*\.\s*assert\s*\(/,
525
+ ],
526
+ confidenceBase: 0.7,
527
+ },
528
+ {
529
+ id: 'test-manual-mocks',
530
+ domain: 'testing-strategy',
531
+ description: 'Hand-rolled mock/stub implementations',
532
+ filePatterns: ['**/*.test.ts', '**/*.test.js', '**/*.spec.ts', '**/*.spec.js'],
533
+ codePatterns: [
534
+ /const\s+mock\w+\s*=\s*\(\s*\)\s*=>\s*(?:Promise\s*\.\s*resolve|{)/i,
535
+ /jest\s*\.\s*fn\s*\(\s*\)/,
536
+ /sinon\s*\.\s*stub\s*\(/,
537
+ ],
538
+ confidenceBase: 0.5,
539
+ },
334
540
  ];
335
541
  }
336
542
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"pattern-catalog.js","sourceRoot":"","sources":["../../src/analyzer/pattern-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pattern-catalog.js","sourceRoot":"","sources":["../../src/analyzer/pattern-catalog.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,6 @@ export interface Detection {
7
7
  };
8
8
  patternCategory: string;
9
9
  confidenceScore: number;
10
- suggestedLibrary: string;
11
10
  domain: string;
12
11
  }
13
12
  export interface WorkspaceScan {
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/analyzer/scanner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAO9D,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAmTD;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAuB1E"}
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/analyzer/scanner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAO9D,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAmQD;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA8E1E"}