@nebutra/next-unicorn-skill 1.0.0

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 (119) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/LICENSE +21 -0
  3. package/README.md +316 -0
  4. package/SKILL.md +318 -0
  5. package/dist/analyzer/pattern-catalog.d.ts +35 -0
  6. package/dist/analyzer/pattern-catalog.d.ts.map +1 -0
  7. package/dist/analyzer/pattern-catalog.js +342 -0
  8. package/dist/analyzer/pattern-catalog.js.map +1 -0
  9. package/dist/analyzer/scanner.d.ts +33 -0
  10. package/dist/analyzer/scanner.d.ts.map +1 -0
  11. package/dist/analyzer/scanner.js +302 -0
  12. package/dist/analyzer/scanner.js.map +1 -0
  13. package/dist/auditor/ux-auditor.d.ts +26 -0
  14. package/dist/auditor/ux-auditor.d.ts.map +1 -0
  15. package/dist/auditor/ux-auditor.js +272 -0
  16. package/dist/auditor/ux-auditor.js.map +1 -0
  17. package/dist/checker/peer-dependency-checker.d.ts +62 -0
  18. package/dist/checker/peer-dependency-checker.d.ts.map +1 -0
  19. package/dist/checker/peer-dependency-checker.js +94 -0
  20. package/dist/checker/peer-dependency-checker.js.map +1 -0
  21. package/dist/index.d.ts +78 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +325 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/planner/migration-planner.d.ts +47 -0
  26. package/dist/planner/migration-planner.d.ts.map +1 -0
  27. package/dist/planner/migration-planner.js +144 -0
  28. package/dist/planner/migration-planner.js.map +1 -0
  29. package/dist/pr-creator/git-operations.d.ts +29 -0
  30. package/dist/pr-creator/git-operations.d.ts.map +1 -0
  31. package/dist/pr-creator/git-operations.js +10 -0
  32. package/dist/pr-creator/git-operations.js.map +1 -0
  33. package/dist/pr-creator/platform-client.d.ts +47 -0
  34. package/dist/pr-creator/platform-client.d.ts.map +1 -0
  35. package/dist/pr-creator/platform-client.js +9 -0
  36. package/dist/pr-creator/platform-client.js.map +1 -0
  37. package/dist/pr-creator/pr-description-builder.d.ts +23 -0
  38. package/dist/pr-creator/pr-description-builder.d.ts.map +1 -0
  39. package/dist/pr-creator/pr-description-builder.js +187 -0
  40. package/dist/pr-creator/pr-description-builder.js.map +1 -0
  41. package/dist/pr-creator/pr-executor.d.ts +30 -0
  42. package/dist/pr-creator/pr-executor.d.ts.map +1 -0
  43. package/dist/pr-creator/pr-executor.js +109 -0
  44. package/dist/pr-creator/pr-executor.js.map +1 -0
  45. package/dist/pr-creator/pr-strategy.d.ts +56 -0
  46. package/dist/pr-creator/pr-strategy.d.ts.map +1 -0
  47. package/dist/pr-creator/pr-strategy.js +125 -0
  48. package/dist/pr-creator/pr-strategy.js.map +1 -0
  49. package/dist/schemas/input.schema.d.ts +231 -0
  50. package/dist/schemas/input.schema.d.ts.map +1 -0
  51. package/dist/schemas/input.schema.js +159 -0
  52. package/dist/schemas/input.schema.js.map +1 -0
  53. package/dist/schemas/output.schema.d.ts +2543 -0
  54. package/dist/schemas/output.schema.d.ts.map +1 -0
  55. package/dist/schemas/output.schema.js +199 -0
  56. package/dist/schemas/output.schema.js.map +1 -0
  57. package/dist/scorer/impact-scorer.d.ts +45 -0
  58. package/dist/scorer/impact-scorer.d.ts.map +1 -0
  59. package/dist/scorer/impact-scorer.js +243 -0
  60. package/dist/scorer/impact-scorer.js.map +1 -0
  61. package/dist/security/osv-client.d.ts +72 -0
  62. package/dist/security/osv-client.d.ts.map +1 -0
  63. package/dist/security/osv-client.js +36 -0
  64. package/dist/security/osv-client.js.map +1 -0
  65. package/dist/security/vuln-report-builder.d.ts +18 -0
  66. package/dist/security/vuln-report-builder.d.ts.map +1 -0
  67. package/dist/security/vuln-report-builder.js +141 -0
  68. package/dist/security/vuln-report-builder.js.map +1 -0
  69. package/dist/security/vulnerability-scanner.d.ts +65 -0
  70. package/dist/security/vulnerability-scanner.d.ts.map +1 -0
  71. package/dist/security/vulnerability-scanner.js +140 -0
  72. package/dist/security/vulnerability-scanner.js.map +1 -0
  73. package/dist/updater/changelog-verifier.d.ts +29 -0
  74. package/dist/updater/changelog-verifier.d.ts.map +1 -0
  75. package/dist/updater/changelog-verifier.js +80 -0
  76. package/dist/updater/changelog-verifier.js.map +1 -0
  77. package/dist/updater/registry-client.d.ts +49 -0
  78. package/dist/updater/registry-client.d.ts.map +1 -0
  79. package/dist/updater/registry-client.js +10 -0
  80. package/dist/updater/registry-client.js.map +1 -0
  81. package/dist/updater/update-plan-builder.d.ts +23 -0
  82. package/dist/updater/update-plan-builder.d.ts.map +1 -0
  83. package/dist/updater/update-plan-builder.js +93 -0
  84. package/dist/updater/update-plan-builder.js.map +1 -0
  85. package/dist/updater/update-policy.d.ts +50 -0
  86. package/dist/updater/update-policy.d.ts.map +1 -0
  87. package/dist/updater/update-policy.js +118 -0
  88. package/dist/updater/update-policy.js.map +1 -0
  89. package/dist/updater/update-scorer.d.ts +51 -0
  90. package/dist/updater/update-scorer.d.ts.map +1 -0
  91. package/dist/updater/update-scorer.js +166 -0
  92. package/dist/updater/update-scorer.js.map +1 -0
  93. package/dist/utils/constraint-filter.d.ts +44 -0
  94. package/dist/utils/constraint-filter.d.ts.map +1 -0
  95. package/dist/utils/constraint-filter.js +69 -0
  96. package/dist/utils/constraint-filter.js.map +1 -0
  97. package/dist/utils/serializer.d.ts +17 -0
  98. package/dist/utils/serializer.d.ts.map +1 -0
  99. package/dist/utils/serializer.js +24 -0
  100. package/dist/utils/serializer.js.map +1 -0
  101. package/dist/utils/skill-parser.d.ts +29 -0
  102. package/dist/utils/skill-parser.d.ts.map +1 -0
  103. package/dist/utils/skill-parser.js +175 -0
  104. package/dist/utils/skill-parser.js.map +1 -0
  105. package/dist/verifier/context7.d.ts +48 -0
  106. package/dist/verifier/context7.d.ts.map +1 -0
  107. package/dist/verifier/context7.js +97 -0
  108. package/dist/verifier/context7.js.map +1 -0
  109. package/examples/backend-node/input.json +28 -0
  110. package/examples/backend-node/output.json +343 -0
  111. package/examples/frontend-nextjs/input.json +37 -0
  112. package/examples/frontend-nextjs/output.json +302 -0
  113. package/package.json +79 -0
  114. package/templates/deletion-checklist.md +42 -0
  115. package/templates/migration-plan.md +61 -0
  116. package/templates/prd-template.md +123 -0
  117. package/templates/summary-table.md +28 -0
  118. package/templates/update-plan.md +61 -0
  119. package/templates/vuln-report.md +50 -0
@@ -0,0 +1,56 @@
1
+ /**
2
+ * PR Strategy — plans which pull requests to create from analysis output.
3
+ *
4
+ * Strategy:
5
+ * 1. Security fixes -> separate PRs (highest priority)
6
+ * 2. Grouped dependency updates -> one PR per group
7
+ * 3. Individual dependency updates -> one PR per package
8
+ * 4. Migration PRs -> one PR per migration phase
9
+ *
10
+ * Requirements: 12.1, 12.2, 12.3, 12.5
11
+ */
12
+ import type { OutputSchema, UpdateItem, RecommendedChange, PRType } from '../schemas/output.schema.js';
13
+ export interface PRPolicy {
14
+ enabled: boolean;
15
+ maxOpenPRs: number;
16
+ groupUpdates: boolean;
17
+ separateSecurityPRs: boolean;
18
+ createMigrationPRs: boolean;
19
+ labels: string[];
20
+ reviewers: string[];
21
+ draft: boolean;
22
+ branchPrefix: string;
23
+ }
24
+ export type PRItemKind = {
25
+ kind: 'update';
26
+ update: UpdateItem;
27
+ } | {
28
+ kind: 'migration';
29
+ recommendation: RecommendedChange;
30
+ phaseNumber: number;
31
+ } | {
32
+ kind: 'security';
33
+ update: UpdateItem;
34
+ };
35
+ export interface PRPlan {
36
+ type: PRType;
37
+ /** Unique branch name (Property 26) */
38
+ branchName: string;
39
+ /** Items included in this PR */
40
+ items: PRItemKind[];
41
+ /** Priority: higher = create first */
42
+ priority: number;
43
+ }
44
+ export interface PRStrategyInput {
45
+ output: OutputSchema;
46
+ policy: PRPolicy;
47
+ }
48
+ /**
49
+ * Plan which PRs to create from the analysis output.
50
+ *
51
+ * Property 25: Security PRs separated when policy requires.
52
+ * Property 26: Branch name uniqueness.
53
+ * Property 27: Max open PRs respected.
54
+ */
55
+ export declare function planPRs(input: PRStrategyInput): PRPlan[];
56
+ //# sourceMappingURL=pr-strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-strategy.d.ts","sourceRoot":"","sources":["../../src/pr-creator/pr-strategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,MAAM,EACP,MAAM,6BAA6B,CAAC;AAMrC,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,cAAc,EAAE,iBAAiB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC7E;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAE7C,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,QAAQ,CAAC;CAClB;AAMD;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,EAAE,CA+GxD"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * PR Strategy — plans which pull requests to create from analysis output.
3
+ *
4
+ * Strategy:
5
+ * 1. Security fixes -> separate PRs (highest priority)
6
+ * 2. Grouped dependency updates -> one PR per group
7
+ * 3. Individual dependency updates -> one PR per package
8
+ * 4. Migration PRs -> one PR per migration phase
9
+ *
10
+ * Requirements: 12.1, 12.2, 12.3, 12.5
11
+ */
12
+ // ---------------------------------------------------------------------------
13
+ // planPRs
14
+ // ---------------------------------------------------------------------------
15
+ /**
16
+ * Plan which PRs to create from the analysis output.
17
+ *
18
+ * Property 25: Security PRs separated when policy requires.
19
+ * Property 26: Branch name uniqueness.
20
+ * Property 27: Max open PRs respected.
21
+ */
22
+ export function planPRs(input) {
23
+ const { output, policy } = input;
24
+ const plans = [];
25
+ const usedBranches = new Set();
26
+ // ---- 1. Security update PRs ----
27
+ if (output.updatePlan && policy.separateSecurityPRs) {
28
+ const securityUpdates = output.updatePlan.updates.filter((u) => u.urgency === 'critical' || u.urgency === 'urgent');
29
+ for (const update of securityUpdates) {
30
+ const branch = uniqueBranch(`${policy.branchPrefix}fix/${sanitize(update.packageName)}`, usedBranches);
31
+ plans.push({
32
+ type: 'security-update',
33
+ branchName: branch,
34
+ items: [{ kind: 'security', update }],
35
+ priority: update.urgency === 'critical' ? 100 : 90,
36
+ });
37
+ }
38
+ }
39
+ // ---- 2. Grouped dependency updates ----
40
+ if (output.updatePlan && policy.groupUpdates) {
41
+ const groups = output.updatePlan.groups;
42
+ for (const group of groups) {
43
+ // Skip items already handled as security PRs
44
+ const nonSecurityItems = policy.separateSecurityPRs
45
+ ? group.items.filter((i) => i.urgency !== 'critical' && i.urgency !== 'urgent')
46
+ : group.items;
47
+ if (nonSecurityItems.length === 0)
48
+ continue;
49
+ const branch = uniqueBranch(`${policy.branchPrefix}chore/${sanitize(group.groupKey)}`, usedBranches);
50
+ plans.push({
51
+ type: 'grouped-update',
52
+ branchName: branch,
53
+ items: nonSecurityItems.map((u) => ({ kind: 'update', update: u })),
54
+ priority: 50,
55
+ });
56
+ }
57
+ }
58
+ // ---- 3. Individual dependency updates (not in groups) ----
59
+ if (output.updatePlan) {
60
+ const groupedPackages = new Set(output.updatePlan.groups.flatMap((g) => g.items.map((i) => i.packageName)));
61
+ const securityPackages = new Set(policy.separateSecurityPRs
62
+ ? output.updatePlan.updates
63
+ .filter((u) => u.urgency === 'critical' || u.urgency === 'urgent')
64
+ .map((u) => u.packageName)
65
+ : []);
66
+ const individualUpdates = output.updatePlan.updates.filter((u) => !groupedPackages.has(u.packageName) && !securityPackages.has(u.packageName));
67
+ for (const update of individualUpdates) {
68
+ const branch = uniqueBranch(`${policy.branchPrefix}chore/${sanitize(update.packageName)}`, usedBranches);
69
+ plans.push({
70
+ type: 'dependency-update',
71
+ branchName: branch,
72
+ items: [{ kind: 'update', update }],
73
+ priority: 30,
74
+ });
75
+ }
76
+ }
77
+ // ---- 4. Migration PRs ----
78
+ if (policy.createMigrationPRs && output.migrationPlan.phases.length > 0) {
79
+ for (const phase of output.migrationPlan.phases) {
80
+ const branch = uniqueBranch(`${policy.branchPrefix}refactor/migration-phase-${phase.phase}`, usedBranches);
81
+ const items = phase.steps.map((step) => ({
82
+ kind: 'migration',
83
+ recommendation: output.recommendedChanges[step.recommendationIndex],
84
+ phaseNumber: phase.phase,
85
+ }));
86
+ plans.push({
87
+ type: 'migration',
88
+ branchName: branch,
89
+ items,
90
+ priority: 10,
91
+ });
92
+ }
93
+ }
94
+ // Sort by priority descending (security first)
95
+ plans.sort((a, b) => b.priority - a.priority);
96
+ // Enforce maxOpenPRs (Property 27)
97
+ return plans.slice(0, policy.maxOpenPRs);
98
+ }
99
+ // ---------------------------------------------------------------------------
100
+ // Helpers
101
+ // ---------------------------------------------------------------------------
102
+ /**
103
+ * Sanitize a package name for use in a branch name.
104
+ */
105
+ function sanitize(name) {
106
+ return name
107
+ .replace(/^@/, '')
108
+ .replace(/\//g, '-')
109
+ .replace(/[^a-zA-Z0-9._-]/g, '-')
110
+ .toLowerCase();
111
+ }
112
+ /**
113
+ * Ensure branch name uniqueness (Property 26).
114
+ */
115
+ function uniqueBranch(base, usedBranches) {
116
+ let branch = base;
117
+ let counter = 2;
118
+ while (usedBranches.has(branch)) {
119
+ branch = `${base}-${counter}`;
120
+ counter++;
121
+ }
122
+ usedBranches.add(branch);
123
+ return branch;
124
+ }
125
+ //# sourceMappingURL=pr-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-strategy.js","sourceRoot":"","sources":["../../src/pr-creator/pr-strategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,231 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * VibeCodingDomain — ISO 25010-aligned problem domains where hand-rolled code
4
+ * is most common and mature third-party libraries should be preferred.
5
+ *
6
+ * Classification principle: domains are NOT "tech stack" labels — they are
7
+ * "problem areas most likely to be hand-rolled and should use mature wheels".
8
+ *
9
+ * Covers two axes:
10
+ * - Product / Growth / UX (frontend code most likely to be hand-rolled)
11
+ * - Engineering / Architecture / Delivery (backend/platform code most likely unmaintainable)
12
+ *
13
+ * Maps to ISO 25010 quality characteristics:
14
+ * usability / performance / security / maintainability / reliability /
15
+ * compatibility / portability / functional suitability
16
+ *
17
+ * Naming: kebab-case throughout for README/API/TS type consistency.
18
+ */
19
+ export declare const VibeCodingDomain: z.ZodEnum<["ux-completeness", "ui-aesthetics", "design-system", "theming-dark-mode", "a11y-accessibility", "responsive-mobile-ux", "empty-loading-error-states", "forms-ux", "validation-feedback", "navigation-information-architecture", "notifications-inapp", "tables-data-grid-ux", "filters-sort-search-ux", "onboarding-guided-tour", "seo", "i18n", "localization-ux", "content-marketing", "landing-page-conversion", "growth-hacking", "analytics-tracking", "attribution-measurement", "ab-testing-experimentation", "product-led-growth", "retention-lifecycle-crm", "referrals-virality", "agent-architecture", "frontend-architecture", "state-management", "data-fetching-caching", "error-handling-resilience", "realtime-collaboration", "file-upload-media", "search-discovery", "api-design-contracts", "backend-architecture", "database-orm-migrations", "caching-rate-limit", "jobs-queue-scheduler", "webhooks-integrations", "feature-flags-config", "multi-tenancy-saas", "auth-security", "permissions-rbac-ux", "security-hardening", "privacy-compliance", "fraud-abuse-prevention", "observability", "logging-tracing-metrics", "error-monitoring", "alerting-incident-response", "testing-strategy", "ci-cd-release", "devex-tooling", "documentation-sop", "code-quality-linting", "dependency-management", "performance-web-vitals", "backend-performance", "cost-optimization", "ai-model-serving", "ai-evaluation-observability", "rag-vector-search", "cross-border-ecommerce", "payments-billing", "marketplace-platform"]>;
20
+ export type VibeCodingDomain = z.infer<typeof VibeCodingDomain>;
21
+ export declare const InputSchema: z.ZodObject<{
22
+ projectMetadata: z.ZodObject<{
23
+ repoPath: z.ZodString;
24
+ languages: z.ZodArray<z.ZodString, "many">;
25
+ packageManagers: z.ZodArray<z.ZodString, "many">;
26
+ currentLibraries: z.ZodRecord<z.ZodString, z.ZodString>;
27
+ }, "strip", z.ZodTypeAny, {
28
+ repoPath: string;
29
+ languages: string[];
30
+ packageManagers: string[];
31
+ currentLibraries: Record<string, string>;
32
+ }, {
33
+ repoPath: string;
34
+ languages: string[];
35
+ packageManagers: string[];
36
+ currentLibraries: Record<string, string>;
37
+ }>;
38
+ optimizationGoals: z.ZodArray<z.ZodString, "many">;
39
+ constraints: z.ZodObject<{
40
+ licenseAllowlist: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
41
+ excludedLibraries: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
42
+ maxDependencyCount: z.ZodOptional<z.ZodNumber>;
43
+ }, "strip", z.ZodTypeAny, {
44
+ licenseAllowlist: string[];
45
+ excludedLibraries: string[];
46
+ maxDependencyCount?: number | undefined;
47
+ }, {
48
+ licenseAllowlist?: string[] | undefined;
49
+ excludedLibraries?: string[] | undefined;
50
+ maxDependencyCount?: number | undefined;
51
+ }>;
52
+ priorityFocusAreas: z.ZodDefault<z.ZodArray<z.ZodEnum<["ux-completeness", "ui-aesthetics", "design-system", "theming-dark-mode", "a11y-accessibility", "responsive-mobile-ux", "empty-loading-error-states", "forms-ux", "validation-feedback", "navigation-information-architecture", "notifications-inapp", "tables-data-grid-ux", "filters-sort-search-ux", "onboarding-guided-tour", "seo", "i18n", "localization-ux", "content-marketing", "landing-page-conversion", "growth-hacking", "analytics-tracking", "attribution-measurement", "ab-testing-experimentation", "product-led-growth", "retention-lifecycle-crm", "referrals-virality", "agent-architecture", "frontend-architecture", "state-management", "data-fetching-caching", "error-handling-resilience", "realtime-collaboration", "file-upload-media", "search-discovery", "api-design-contracts", "backend-architecture", "database-orm-migrations", "caching-rate-limit", "jobs-queue-scheduler", "webhooks-integrations", "feature-flags-config", "multi-tenancy-saas", "auth-security", "permissions-rbac-ux", "security-hardening", "privacy-compliance", "fraud-abuse-prevention", "observability", "logging-tracing-metrics", "error-monitoring", "alerting-incident-response", "testing-strategy", "ci-cd-release", "devex-tooling", "documentation-sop", "code-quality-linting", "dependency-management", "performance-web-vitals", "backend-performance", "cost-optimization", "ai-model-serving", "ai-evaluation-observability", "rag-vector-search", "cross-border-ecommerce", "payments-billing", "marketplace-platform"]>, "many">>;
53
+ /** User-defined custom domains beyond the official enum — extensibility escape hatch */
54
+ customDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
55
+ impactWeights: z.ZodOptional<z.ZodObject<{
56
+ scalability: z.ZodNumber;
57
+ performance: z.ZodNumber;
58
+ security: z.ZodNumber;
59
+ maintainability: z.ZodNumber;
60
+ feature_richness: z.ZodNumber;
61
+ ux: z.ZodNumber;
62
+ ui_aesthetics: z.ZodNumber;
63
+ }, "strip", z.ZodTypeAny, {
64
+ scalability: number;
65
+ performance: number;
66
+ security: number;
67
+ maintainability: number;
68
+ feature_richness: number;
69
+ ux: number;
70
+ ui_aesthetics: number;
71
+ }, {
72
+ scalability: number;
73
+ performance: number;
74
+ security: number;
75
+ maintainability: number;
76
+ feature_richness: number;
77
+ ux: number;
78
+ ui_aesthetics: number;
79
+ }>>;
80
+ updatePolicy: z.ZodOptional<z.ZodObject<{
81
+ enabled: z.ZodDefault<z.ZodBoolean>;
82
+ defaultStrategy: z.ZodDefault<z.ZodEnum<["patch", "minor", "major", "all"]>>;
83
+ packageOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<["patch", "minor", "major", "all"]>>>;
84
+ maxUpdates: z.ZodDefault<z.ZodNumber>;
85
+ minAgeDays: z.ZodDefault<z.ZodNumber>;
86
+ groupRelatedPackages: z.ZodDefault<z.ZodBoolean>;
87
+ pinned: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
88
+ }, "strip", z.ZodTypeAny, {
89
+ enabled: boolean;
90
+ defaultStrategy: "patch" | "minor" | "major" | "all";
91
+ packageOverrides: Record<string, "patch" | "minor" | "major" | "all">;
92
+ maxUpdates: number;
93
+ minAgeDays: number;
94
+ groupRelatedPackages: boolean;
95
+ pinned: string[];
96
+ }, {
97
+ enabled?: boolean | undefined;
98
+ defaultStrategy?: "patch" | "minor" | "major" | "all" | undefined;
99
+ packageOverrides?: Record<string, "patch" | "minor" | "major" | "all"> | undefined;
100
+ maxUpdates?: number | undefined;
101
+ minAgeDays?: number | undefined;
102
+ groupRelatedPackages?: boolean | undefined;
103
+ pinned?: string[] | undefined;
104
+ }>>;
105
+ prPolicy: z.ZodOptional<z.ZodObject<{
106
+ enabled: z.ZodDefault<z.ZodBoolean>;
107
+ maxOpenPRs: z.ZodDefault<z.ZodNumber>;
108
+ groupUpdates: z.ZodDefault<z.ZodBoolean>;
109
+ separateSecurityPRs: z.ZodDefault<z.ZodBoolean>;
110
+ createMigrationPRs: z.ZodDefault<z.ZodBoolean>;
111
+ labels: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
112
+ reviewers: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
113
+ draft: z.ZodDefault<z.ZodBoolean>;
114
+ branchPrefix: z.ZodDefault<z.ZodString>;
115
+ platform: z.ZodDefault<z.ZodEnum<["github", "gitlab", "bitbucket"]>>;
116
+ }, "strip", z.ZodTypeAny, {
117
+ enabled: boolean;
118
+ maxOpenPRs: number;
119
+ groupUpdates: boolean;
120
+ separateSecurityPRs: boolean;
121
+ createMigrationPRs: boolean;
122
+ labels: string[];
123
+ reviewers: string[];
124
+ draft: boolean;
125
+ branchPrefix: string;
126
+ platform: "github" | "gitlab" | "bitbucket";
127
+ }, {
128
+ enabled?: boolean | undefined;
129
+ maxOpenPRs?: number | undefined;
130
+ groupUpdates?: boolean | undefined;
131
+ separateSecurityPRs?: boolean | undefined;
132
+ createMigrationPRs?: boolean | undefined;
133
+ labels?: string[] | undefined;
134
+ reviewers?: string[] | undefined;
135
+ draft?: boolean | undefined;
136
+ branchPrefix?: string | undefined;
137
+ platform?: "github" | "gitlab" | "bitbucket" | undefined;
138
+ }>>;
139
+ }, "strip", z.ZodTypeAny, {
140
+ projectMetadata: {
141
+ repoPath: string;
142
+ languages: string[];
143
+ packageManagers: string[];
144
+ currentLibraries: Record<string, string>;
145
+ };
146
+ optimizationGoals: string[];
147
+ constraints: {
148
+ licenseAllowlist: string[];
149
+ excludedLibraries: string[];
150
+ maxDependencyCount?: number | undefined;
151
+ };
152
+ priorityFocusAreas: ("ux-completeness" | "ui-aesthetics" | "design-system" | "theming-dark-mode" | "a11y-accessibility" | "responsive-mobile-ux" | "empty-loading-error-states" | "forms-ux" | "validation-feedback" | "navigation-information-architecture" | "notifications-inapp" | "tables-data-grid-ux" | "filters-sort-search-ux" | "onboarding-guided-tour" | "seo" | "i18n" | "localization-ux" | "content-marketing" | "landing-page-conversion" | "growth-hacking" | "analytics-tracking" | "attribution-measurement" | "ab-testing-experimentation" | "product-led-growth" | "retention-lifecycle-crm" | "referrals-virality" | "agent-architecture" | "frontend-architecture" | "state-management" | "data-fetching-caching" | "error-handling-resilience" | "realtime-collaboration" | "file-upload-media" | "search-discovery" | "api-design-contracts" | "backend-architecture" | "database-orm-migrations" | "caching-rate-limit" | "jobs-queue-scheduler" | "webhooks-integrations" | "feature-flags-config" | "multi-tenancy-saas" | "auth-security" | "permissions-rbac-ux" | "security-hardening" | "privacy-compliance" | "fraud-abuse-prevention" | "observability" | "logging-tracing-metrics" | "error-monitoring" | "alerting-incident-response" | "testing-strategy" | "ci-cd-release" | "devex-tooling" | "documentation-sop" | "code-quality-linting" | "dependency-management" | "performance-web-vitals" | "backend-performance" | "cost-optimization" | "ai-model-serving" | "ai-evaluation-observability" | "rag-vector-search" | "cross-border-ecommerce" | "payments-billing" | "marketplace-platform")[];
153
+ customDomains?: string[] | undefined;
154
+ impactWeights?: {
155
+ scalability: number;
156
+ performance: number;
157
+ security: number;
158
+ maintainability: number;
159
+ feature_richness: number;
160
+ ux: number;
161
+ ui_aesthetics: number;
162
+ } | undefined;
163
+ updatePolicy?: {
164
+ enabled: boolean;
165
+ defaultStrategy: "patch" | "minor" | "major" | "all";
166
+ packageOverrides: Record<string, "patch" | "minor" | "major" | "all">;
167
+ maxUpdates: number;
168
+ minAgeDays: number;
169
+ groupRelatedPackages: boolean;
170
+ pinned: string[];
171
+ } | undefined;
172
+ prPolicy?: {
173
+ enabled: boolean;
174
+ maxOpenPRs: number;
175
+ groupUpdates: boolean;
176
+ separateSecurityPRs: boolean;
177
+ createMigrationPRs: boolean;
178
+ labels: string[];
179
+ reviewers: string[];
180
+ draft: boolean;
181
+ branchPrefix: string;
182
+ platform: "github" | "gitlab" | "bitbucket";
183
+ } | undefined;
184
+ }, {
185
+ projectMetadata: {
186
+ repoPath: string;
187
+ languages: string[];
188
+ packageManagers: string[];
189
+ currentLibraries: Record<string, string>;
190
+ };
191
+ optimizationGoals: string[];
192
+ constraints: {
193
+ licenseAllowlist?: string[] | undefined;
194
+ excludedLibraries?: string[] | undefined;
195
+ maxDependencyCount?: number | undefined;
196
+ };
197
+ priorityFocusAreas?: ("ux-completeness" | "ui-aesthetics" | "design-system" | "theming-dark-mode" | "a11y-accessibility" | "responsive-mobile-ux" | "empty-loading-error-states" | "forms-ux" | "validation-feedback" | "navigation-information-architecture" | "notifications-inapp" | "tables-data-grid-ux" | "filters-sort-search-ux" | "onboarding-guided-tour" | "seo" | "i18n" | "localization-ux" | "content-marketing" | "landing-page-conversion" | "growth-hacking" | "analytics-tracking" | "attribution-measurement" | "ab-testing-experimentation" | "product-led-growth" | "retention-lifecycle-crm" | "referrals-virality" | "agent-architecture" | "frontend-architecture" | "state-management" | "data-fetching-caching" | "error-handling-resilience" | "realtime-collaboration" | "file-upload-media" | "search-discovery" | "api-design-contracts" | "backend-architecture" | "database-orm-migrations" | "caching-rate-limit" | "jobs-queue-scheduler" | "webhooks-integrations" | "feature-flags-config" | "multi-tenancy-saas" | "auth-security" | "permissions-rbac-ux" | "security-hardening" | "privacy-compliance" | "fraud-abuse-prevention" | "observability" | "logging-tracing-metrics" | "error-monitoring" | "alerting-incident-response" | "testing-strategy" | "ci-cd-release" | "devex-tooling" | "documentation-sop" | "code-quality-linting" | "dependency-management" | "performance-web-vitals" | "backend-performance" | "cost-optimization" | "ai-model-serving" | "ai-evaluation-observability" | "rag-vector-search" | "cross-border-ecommerce" | "payments-billing" | "marketplace-platform")[] | undefined;
198
+ customDomains?: string[] | undefined;
199
+ impactWeights?: {
200
+ scalability: number;
201
+ performance: number;
202
+ security: number;
203
+ maintainability: number;
204
+ feature_richness: number;
205
+ ux: number;
206
+ ui_aesthetics: number;
207
+ } | undefined;
208
+ updatePolicy?: {
209
+ enabled?: boolean | undefined;
210
+ defaultStrategy?: "patch" | "minor" | "major" | "all" | undefined;
211
+ packageOverrides?: Record<string, "patch" | "minor" | "major" | "all"> | undefined;
212
+ maxUpdates?: number | undefined;
213
+ minAgeDays?: number | undefined;
214
+ groupRelatedPackages?: boolean | undefined;
215
+ pinned?: string[] | undefined;
216
+ } | undefined;
217
+ prPolicy?: {
218
+ enabled?: boolean | undefined;
219
+ maxOpenPRs?: number | undefined;
220
+ groupUpdates?: boolean | undefined;
221
+ separateSecurityPRs?: boolean | undefined;
222
+ createMigrationPRs?: boolean | undefined;
223
+ labels?: string[] | undefined;
224
+ reviewers?: string[] | undefined;
225
+ draft?: boolean | undefined;
226
+ branchPrefix?: string | undefined;
227
+ platform?: "github" | "gitlab" | "bitbucket" | undefined;
228
+ } | undefined;
229
+ }>;
230
+ export type InputSchema = z.infer<typeof InputSchema>;
231
+ //# sourceMappingURL=input.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/input.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gBAAgB,i+CAwF3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IActB,wFAAwF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDxF,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC"}
@@ -0,0 +1,159 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * VibeCodingDomain — ISO 25010-aligned problem domains where hand-rolled code
4
+ * is most common and mature third-party libraries should be preferred.
5
+ *
6
+ * Classification principle: domains are NOT "tech stack" labels — they are
7
+ * "problem areas most likely to be hand-rolled and should use mature wheels".
8
+ *
9
+ * Covers two axes:
10
+ * - Product / Growth / UX (frontend code most likely to be hand-rolled)
11
+ * - Engineering / Architecture / Delivery (backend/platform code most likely unmaintainable)
12
+ *
13
+ * Maps to ISO 25010 quality characteristics:
14
+ * usability / performance / security / maintainability / reliability /
15
+ * compatibility / portability / functional suitability
16
+ *
17
+ * Naming: kebab-case throughout for README/API/TS type consistency.
18
+ */
19
+ export const VibeCodingDomain = z.enum([
20
+ // A. UX Completeness & Design System (Usability / UI quality)
21
+ 'ux-completeness',
22
+ 'ui-aesthetics',
23
+ 'design-system',
24
+ 'theming-dark-mode',
25
+ 'a11y-accessibility',
26
+ 'responsive-mobile-ux',
27
+ 'empty-loading-error-states',
28
+ 'forms-ux',
29
+ 'validation-feedback',
30
+ 'navigation-information-architecture',
31
+ 'notifications-inapp',
32
+ 'tables-data-grid-ux',
33
+ 'filters-sort-search-ux',
34
+ 'onboarding-guided-tour',
35
+ // B. SEO / i18n / Content (Discoverability / Global-ready)
36
+ 'seo',
37
+ 'i18n',
38
+ 'localization-ux',
39
+ 'content-marketing',
40
+ 'landing-page-conversion',
41
+ // C. Growth & Data (Experimentation / Analytics)
42
+ 'growth-hacking',
43
+ 'analytics-tracking',
44
+ 'attribution-measurement',
45
+ 'ab-testing-experimentation',
46
+ 'product-led-growth',
47
+ 'retention-lifecycle-crm',
48
+ 'referrals-virality',
49
+ // D. App / Frontend Architecture (Maintainability / Modularity)
50
+ 'agent-architecture',
51
+ 'frontend-architecture',
52
+ 'state-management',
53
+ 'data-fetching-caching',
54
+ 'error-handling-resilience',
55
+ 'realtime-collaboration',
56
+ 'file-upload-media',
57
+ 'search-discovery',
58
+ // E. Backend / Platform (Scalability / Reliability / Compatibility)
59
+ 'api-design-contracts',
60
+ 'backend-architecture',
61
+ 'database-orm-migrations',
62
+ 'caching-rate-limit',
63
+ 'jobs-queue-scheduler',
64
+ 'webhooks-integrations',
65
+ 'feature-flags-config',
66
+ 'multi-tenancy-saas',
67
+ // F. Security / Compliance (Security)
68
+ 'auth-security',
69
+ 'permissions-rbac-ux',
70
+ 'security-hardening',
71
+ 'privacy-compliance',
72
+ 'fraud-abuse-prevention',
73
+ // G. Observability / Ops (Reliability / Operability)
74
+ 'observability',
75
+ 'logging-tracing-metrics',
76
+ 'error-monitoring',
77
+ 'alerting-incident-response',
78
+ // H. Delivery / Quality / DevEx (Maintainability / DevEx)
79
+ 'testing-strategy',
80
+ 'ci-cd-release',
81
+ 'devex-tooling',
82
+ 'documentation-sop',
83
+ 'code-quality-linting',
84
+ 'dependency-management',
85
+ // I. Performance / Cost (Performance efficiency)
86
+ 'performance-web-vitals',
87
+ 'backend-performance',
88
+ 'cost-optimization',
89
+ // J. AI Engineering
90
+ 'ai-model-serving',
91
+ 'ai-evaluation-observability',
92
+ 'rag-vector-search',
93
+ // K. Business domains (optional — marketing tags, may not participate in rules)
94
+ 'cross-border-ecommerce',
95
+ 'payments-billing',
96
+ 'marketplace-platform',
97
+ ]);
98
+ export const InputSchema = z.object({
99
+ projectMetadata: z.object({
100
+ repoPath: z.string().min(1),
101
+ languages: z.array(z.string()).min(1),
102
+ packageManagers: z.array(z.string()).min(1),
103
+ currentLibraries: z.record(z.string(), z.string()), // name -> version
104
+ }),
105
+ optimizationGoals: z.array(z.string()).min(1),
106
+ constraints: z.object({
107
+ licenseAllowlist: z.array(z.string()).default([]),
108
+ excludedLibraries: z.array(z.string()).default([]),
109
+ maxDependencyCount: z.number().int().positive().optional(),
110
+ }),
111
+ priorityFocusAreas: z.array(VibeCodingDomain).default([]),
112
+ /** User-defined custom domains beyond the official enum — extensibility escape hatch */
113
+ customDomains: z.array(z.string().min(1)).optional(),
114
+ impactWeights: z
115
+ .object({
116
+ scalability: z.number().min(0).max(1),
117
+ performance: z.number().min(0).max(1),
118
+ security: z.number().min(0).max(1),
119
+ maintainability: z.number().min(0).max(1),
120
+ feature_richness: z.number().min(0).max(1),
121
+ ux: z.number().min(0).max(1),
122
+ ui_aesthetics: z.number().min(0).max(1),
123
+ })
124
+ .optional(),
125
+ // -------------------------------------------------------------------------
126
+ // Phase 2: Auto-Update Policy
127
+ // -------------------------------------------------------------------------
128
+ updatePolicy: z
129
+ .object({
130
+ enabled: z.boolean().default(false),
131
+ defaultStrategy: z.enum(['patch', 'minor', 'major', 'all']).default('minor'),
132
+ packageOverrides: z
133
+ .record(z.string(), z.enum(['patch', 'minor', 'major', 'all']))
134
+ .default({}),
135
+ maxUpdates: z.number().int().positive().default(50),
136
+ minAgeDays: z.number().int().nonnegative().default(3),
137
+ groupRelatedPackages: z.boolean().default(true),
138
+ pinned: z.array(z.string()).default([]),
139
+ })
140
+ .optional(),
141
+ // -------------------------------------------------------------------------
142
+ // Phase 2: PR Auto-Creation Policy
143
+ // -------------------------------------------------------------------------
144
+ prPolicy: z
145
+ .object({
146
+ enabled: z.boolean().default(false),
147
+ maxOpenPRs: z.number().int().positive().default(10),
148
+ groupUpdates: z.boolean().default(true),
149
+ separateSecurityPRs: z.boolean().default(true),
150
+ createMigrationPRs: z.boolean().default(false),
151
+ labels: z.array(z.string()).default(['next-unicorn', 'dependencies']),
152
+ reviewers: z.array(z.string()).default([]),
153
+ draft: z.boolean().default(true),
154
+ branchPrefix: z.string().default('next-unicorn/'),
155
+ platform: z.enum(['github', 'gitlab', 'bitbucket']).default('github'),
156
+ })
157
+ .optional(),
158
+ });
159
+ //# sourceMappingURL=input.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.schema.js","sourceRoot":"","sources":["../../src/schemas/input.schema.ts"],"names":[],"mappings":"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"}