@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,4 +1,3 @@
1
- import type { Detection } from '../analyzer/scanner.js';
2
1
  /**
3
2
  * Result of verifying a single library recommendation against Context7 MCP.
4
3
  */
@@ -37,12 +36,24 @@ export interface Context7Client {
37
36
  */
38
37
  export declare function verifyRecommendation(client: Context7Client, libraryName: string, useCase: string): Promise<VerificationResult>;
39
38
  /**
40
- * Verify all library recommendations from scanner detections.
39
+ * Item describing a library recommendation to verify.
40
+ * The libraryName and useCase come from the AI agent's recommendation,
41
+ * NOT from hardcoded catalog data.
42
+ */
43
+ export interface VerificationItem {
44
+ libraryName: string;
45
+ useCase: string;
46
+ }
47
+ /**
48
+ * Verify all library recommendations provided by the AI agent (or caller).
49
+ *
50
+ * Each item in the array corresponds to a detection by index. Items that are
51
+ * `null` are skipped (detection had no recommendation from the agent).
41
52
  *
42
- * Processes each detection independently — a failure for one library does
53
+ * Processes each item independently — a failure for one library does
43
54
  * not affect others. Returns a Map keyed by detection index.
44
55
  *
45
56
  * Requirements: 2.1, 2.2, 2.3, 2.4, 2.5, 9.5
46
57
  */
47
- export declare function verifyAllRecommendations(client: Context7Client, detections: Detection[]): Promise<Map<number, VerificationResult>>;
58
+ export declare function verifyAllRecommendations(client: Context7Client, items: Array<VerificationItem | null>): Promise<Map<number, VerificationResult>>;
48
59
  //# sourceMappingURL=context7.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context7.d.ts","sourceRoot":"","sources":["../../src/verifier/context7.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMxD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,aAAa,CAAC;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9D,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CACrD;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,kBAAkB,CAAC,CA0D7B;AAMD;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,SAAS,EAAE,GACtB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAc1C"}
1
+ {"version":3,"file":"context7.d.ts","sourceRoot":"","sources":["../../src/verifier/context7.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,aAAa,CAAC;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9D,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CACrD;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,kBAAkB,CAAC,CA0D7B;AAMD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,GACpC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAe1C"}
@@ -1,3 +1,4 @@
1
+ // No longer depends on Detection — recommendations come from the AI agent
1
2
  // ---------------------------------------------------------------------------
2
3
  // Single recommendation verification (with retry-once logic)
3
4
  // ---------------------------------------------------------------------------
@@ -74,22 +75,24 @@ export async function verifyRecommendation(client, libraryName, useCase) {
74
75
  version: docs.version,
75
76
  };
76
77
  }
77
- // ---------------------------------------------------------------------------
78
- // Batch verification for all detections
79
- // ---------------------------------------------------------------------------
80
78
  /**
81
- * Verify all library recommendations from scanner detections.
79
+ * Verify all library recommendations provided by the AI agent (or caller).
80
+ *
81
+ * Each item in the array corresponds to a detection by index. Items that are
82
+ * `null` are skipped (detection had no recommendation from the agent).
82
83
  *
83
- * Processes each detection independently — a failure for one library does
84
+ * Processes each item independently — a failure for one library does
84
85
  * not affect others. Returns a Map keyed by detection index.
85
86
  *
86
87
  * Requirements: 2.1, 2.2, 2.3, 2.4, 2.5, 9.5
87
88
  */
88
- export async function verifyAllRecommendations(client, detections) {
89
+ export async function verifyAllRecommendations(client, items) {
89
90
  const results = new Map();
90
- for (let i = 0; i < detections.length; i++) {
91
- const detection = detections[i];
92
- const result = await verifyRecommendation(client, detection.suggestedLibrary, detection.patternCategory);
91
+ for (let i = 0; i < items.length; i++) {
92
+ const item = items[i];
93
+ if (!item)
94
+ continue;
95
+ const result = await verifyRecommendation(client, item.libraryName, item.useCase);
93
96
  results.set(i, result);
94
97
  }
95
98
  return results;
@@ -1 +1 @@
1
- {"version":3,"file":"context7.js","sourceRoot":"","sources":["../../src/verifier/context7.ts"],"names":[],"mappings":"AA8BA,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAE9E;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAsB,EACtB,WAAmB,EACnB,OAAe;IAEf,0DAA0D;IAC1D,IAAI,SAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,aAAa;QACb,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,MAAM,EAAE,aAAa;gBACrB,IAAI,EAAE,6CAA6C,WAAW,eAAe;aAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,YAAY,WAAW,yBAAyB;SACvD,CAAC;IACJ,CAAC;IAED,wDAAwD;IACxD,IAAI,IAA6C,CAAC;IAClD,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,aAAa;QACb,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,MAAM,EAAE,aAAa;gBACrB,SAAS;gBACT,IAAI,EAAE,6CAA6C,WAAW,eAAe;aAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,SAAS;YACT,IAAI,EAAE,sBAAsB,WAAW,gCAAgC,OAAO,GAAG;SAClF,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,SAAS;QACT,gBAAgB,EAAE,IAAI,CAAC,GAAG;QAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,wCAAwC;AACxC,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAsB,EACtB,UAAuB;IAEvB,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,MAAM,EACN,SAAS,CAAC,gBAAgB,EAC1B,SAAS,CAAC,eAAe,CAC1B,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"context7.js","sourceRoot":"","sources":["../../src/verifier/context7.ts"],"names":[],"mappings":"AAAA,0EAA0E;AA8B1E,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAE9E;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAsB,EACtB,WAAmB,EACnB,OAAe;IAEf,0DAA0D;IAC1D,IAAI,SAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,aAAa;QACb,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,MAAM,EAAE,aAAa;gBACrB,IAAI,EAAE,6CAA6C,WAAW,eAAe;aAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,YAAY,WAAW,yBAAyB;SACvD,CAAC;IACJ,CAAC;IAED,wDAAwD;IACxD,IAAI,IAA6C,CAAC;IAClD,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,aAAa;QACb,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,MAAM,EAAE,aAAa;gBACrB,SAAS;gBACT,IAAI,EAAE,6CAA6C,WAAW,eAAe;aAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,SAAS;YACT,IAAI,EAAE,sBAAsB,WAAW,gCAAgC,OAAO,GAAG;SAClF,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,SAAS;QACT,gBAAgB,EAAE,IAAI,CAAC,GAAG;QAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;AACJ,CAAC;AAgBD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAsB,EACtB,KAAqC;IAErC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,MAAM,EACN,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,OAAO,CACb,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nebutra/next-unicorn-skill",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Stop Vibe Coding debt: audit your codebase, replace reinvented wheels with unicorn-grade libraries, scan vulnerabilities, auto-update deps, and auto-create PRs — all verified via Context7 MCP.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -19,13 +19,6 @@
19
19
  "LICENSE",
20
20
  "CHANGELOG.md"
21
21
  ],
22
- "scripts": {
23
- "build": "tsc",
24
- "test": "vitest run",
25
- "test:watch": "vitest",
26
- "typecheck": "tsc --noEmit",
27
- "prepublishOnly": "pnpm typecheck && pnpm test && pnpm build"
28
- },
29
22
  "keywords": [
30
23
  "skill",
31
24
  "mcp",
@@ -52,18 +45,17 @@
52
45
  "license": "MIT",
53
46
  "repository": {
54
47
  "type": "git",
55
- "url": "https://github.com/TsekaLuk/Next-Unicorn-Skill.git"
48
+ "url": "https://github.com/Nebutra/Next-Unicorn-Skill.git"
56
49
  },
57
- "homepage": "https://github.com/TsekaLuk/Next-Unicorn-Skill#readme",
50
+ "homepage": "https://github.com/Nebutra/Next-Unicorn-Skill#readme",
58
51
  "bugs": {
59
- "url": "https://github.com/TsekaLuk/Next-Unicorn-Skill/issues"
52
+ "url": "https://github.com/Nebutra/Next-Unicorn-Skill/issues"
60
53
  },
61
54
  "engines": {
62
55
  "node": ">=18"
63
56
  },
64
57
  "publishConfig": {
65
- "access": "public",
66
- "registry": "https://registry.npmjs.org"
58
+ "access": "public"
67
59
  },
68
60
  "dependencies": {
69
61
  "semver": "^7.7.4",
@@ -75,5 +67,11 @@
75
67
  "fast-check": "^4.4.0",
76
68
  "typescript": "^5.7.0",
77
69
  "vitest": "^4.0.18"
70
+ },
71
+ "scripts": {
72
+ "build": "tsc",
73
+ "test": "vitest run",
74
+ "test:watch": "vitest",
75
+ "typecheck": "tsc --noEmit"
78
76
  }
79
- }
77
+ }