@nebutra/next-unicorn-skill 2.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.
- package/CHANGELOG.md +57 -0
- package/LICENSE +21 -0
- package/README.md +316 -0
- package/SKILL.md +318 -0
- package/dist/analyzer/pattern-catalog.d.ts +35 -0
- package/dist/analyzer/pattern-catalog.d.ts.map +1 -0
- package/dist/analyzer/pattern-catalog.js +342 -0
- package/dist/analyzer/pattern-catalog.js.map +1 -0
- package/dist/analyzer/scanner.d.ts +33 -0
- package/dist/analyzer/scanner.d.ts.map +1 -0
- package/dist/analyzer/scanner.js +302 -0
- package/dist/analyzer/scanner.js.map +1 -0
- package/dist/auditor/ux-auditor.d.ts +26 -0
- package/dist/auditor/ux-auditor.d.ts.map +1 -0
- package/dist/auditor/ux-auditor.js +272 -0
- package/dist/auditor/ux-auditor.js.map +1 -0
- package/dist/checker/peer-dependency-checker.d.ts +62 -0
- package/dist/checker/peer-dependency-checker.d.ts.map +1 -0
- package/dist/checker/peer-dependency-checker.js +94 -0
- package/dist/checker/peer-dependency-checker.js.map +1 -0
- package/dist/index.d.ts +78 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +325 -0
- package/dist/index.js.map +1 -0
- package/dist/planner/migration-planner.d.ts +47 -0
- package/dist/planner/migration-planner.d.ts.map +1 -0
- package/dist/planner/migration-planner.js +144 -0
- package/dist/planner/migration-planner.js.map +1 -0
- package/dist/pr-creator/git-operations.d.ts +29 -0
- package/dist/pr-creator/git-operations.d.ts.map +1 -0
- package/dist/pr-creator/git-operations.js +10 -0
- package/dist/pr-creator/git-operations.js.map +1 -0
- package/dist/pr-creator/platform-client.d.ts +47 -0
- package/dist/pr-creator/platform-client.d.ts.map +1 -0
- package/dist/pr-creator/platform-client.js +9 -0
- package/dist/pr-creator/platform-client.js.map +1 -0
- package/dist/pr-creator/pr-description-builder.d.ts +23 -0
- package/dist/pr-creator/pr-description-builder.d.ts.map +1 -0
- package/dist/pr-creator/pr-description-builder.js +187 -0
- package/dist/pr-creator/pr-description-builder.js.map +1 -0
- package/dist/pr-creator/pr-executor.d.ts +30 -0
- package/dist/pr-creator/pr-executor.d.ts.map +1 -0
- package/dist/pr-creator/pr-executor.js +109 -0
- package/dist/pr-creator/pr-executor.js.map +1 -0
- package/dist/pr-creator/pr-strategy.d.ts +56 -0
- package/dist/pr-creator/pr-strategy.d.ts.map +1 -0
- package/dist/pr-creator/pr-strategy.js +125 -0
- package/dist/pr-creator/pr-strategy.js.map +1 -0
- package/dist/schemas/input.schema.d.ts +231 -0
- package/dist/schemas/input.schema.d.ts.map +1 -0
- package/dist/schemas/input.schema.js +159 -0
- package/dist/schemas/input.schema.js.map +1 -0
- package/dist/schemas/output.schema.d.ts +2543 -0
- package/dist/schemas/output.schema.d.ts.map +1 -0
- package/dist/schemas/output.schema.js +199 -0
- package/dist/schemas/output.schema.js.map +1 -0
- package/dist/scorer/impact-scorer.d.ts +45 -0
- package/dist/scorer/impact-scorer.d.ts.map +1 -0
- package/dist/scorer/impact-scorer.js +243 -0
- package/dist/scorer/impact-scorer.js.map +1 -0
- package/dist/security/osv-client.d.ts +72 -0
- package/dist/security/osv-client.d.ts.map +1 -0
- package/dist/security/osv-client.js +36 -0
- package/dist/security/osv-client.js.map +1 -0
- package/dist/security/vuln-report-builder.d.ts +18 -0
- package/dist/security/vuln-report-builder.d.ts.map +1 -0
- package/dist/security/vuln-report-builder.js +141 -0
- package/dist/security/vuln-report-builder.js.map +1 -0
- package/dist/security/vulnerability-scanner.d.ts +65 -0
- package/dist/security/vulnerability-scanner.d.ts.map +1 -0
- package/dist/security/vulnerability-scanner.js +140 -0
- package/dist/security/vulnerability-scanner.js.map +1 -0
- package/dist/updater/changelog-verifier.d.ts +29 -0
- package/dist/updater/changelog-verifier.d.ts.map +1 -0
- package/dist/updater/changelog-verifier.js +80 -0
- package/dist/updater/changelog-verifier.js.map +1 -0
- package/dist/updater/registry-client.d.ts +49 -0
- package/dist/updater/registry-client.d.ts.map +1 -0
- package/dist/updater/registry-client.js +10 -0
- package/dist/updater/registry-client.js.map +1 -0
- package/dist/updater/update-plan-builder.d.ts +23 -0
- package/dist/updater/update-plan-builder.d.ts.map +1 -0
- package/dist/updater/update-plan-builder.js +93 -0
- package/dist/updater/update-plan-builder.js.map +1 -0
- package/dist/updater/update-policy.d.ts +50 -0
- package/dist/updater/update-policy.d.ts.map +1 -0
- package/dist/updater/update-policy.js +118 -0
- package/dist/updater/update-policy.js.map +1 -0
- package/dist/updater/update-scorer.d.ts +51 -0
- package/dist/updater/update-scorer.d.ts.map +1 -0
- package/dist/updater/update-scorer.js +166 -0
- package/dist/updater/update-scorer.js.map +1 -0
- package/dist/utils/constraint-filter.d.ts +44 -0
- package/dist/utils/constraint-filter.d.ts.map +1 -0
- package/dist/utils/constraint-filter.js +69 -0
- package/dist/utils/constraint-filter.js.map +1 -0
- package/dist/utils/serializer.d.ts +17 -0
- package/dist/utils/serializer.d.ts.map +1 -0
- package/dist/utils/serializer.js +24 -0
- package/dist/utils/serializer.js.map +1 -0
- package/dist/utils/skill-parser.d.ts +29 -0
- package/dist/utils/skill-parser.d.ts.map +1 -0
- package/dist/utils/skill-parser.js +175 -0
- package/dist/utils/skill-parser.js.map +1 -0
- package/dist/verifier/context7.d.ts +48 -0
- package/dist/verifier/context7.d.ts.map +1 -0
- package/dist/verifier/context7.js +97 -0
- package/dist/verifier/context7.js.map +1 -0
- package/examples/backend-node/input.json +28 -0
- package/examples/backend-node/output.json +343 -0
- package/examples/frontend-nextjs/input.json +37 -0
- package/examples/frontend-nextjs/output.json +302 -0
- package/package.json +78 -0
- package/templates/deletion-checklist.md +42 -0
- package/templates/migration-plan.md +61 -0
- package/templates/prd-template.md +123 -0
- package/templates/summary-table.md +28 -0
- package/templates/update-plan.md +61 -0
- package/templates/vuln-report.md +50 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [2.0.0] - 2026-02-08
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Vulnerability Scanning** — scans current AND recommended deps via OSV database
|
|
13
|
+
- Prevents "upgrade into a vulnerability" scenarios (unique to Next-Unicorn)
|
|
14
|
+
- SARIF output for GitHub Code Scanning CI/CD integration
|
|
15
|
+
- Severity filtering, fixable/unfixable classification
|
|
16
|
+
- **Auto-Update Existing Dependencies** — impact-scored version upgrades
|
|
17
|
+
- Configurable update policy (patch/minor/major, pinned packages, min-age window)
|
|
18
|
+
- Context7-powered breaking change detection via changelog verification
|
|
19
|
+
- 7-dimension scoring + urgency classification (routine/recommended/urgent/critical)
|
|
20
|
+
- Related package grouping (e.g. all `@babel/*` together)
|
|
21
|
+
- **PR Auto-Creation** — creates GitHub/GitLab PRs for updates and migrations
|
|
22
|
+
- Conventional commit titles (`fix(deps):`, `chore(deps):`, `refactor(domain):`)
|
|
23
|
+
- Rich markdown PR descriptions with impact tables, vulnerability details, reviewer checklists
|
|
24
|
+
- Migration PRs with adapter code scaffolding for high-risk items
|
|
25
|
+
- Existing PR deduplication (update instead of duplicate)
|
|
26
|
+
- 15 new property-based tests (Properties 15–29), bringing total to 29
|
|
27
|
+
- New Zod schemas: `VulnFindingSchema`, `UpdateItemSchema`, `PRResultSchema`, and more
|
|
28
|
+
- New templates: `vuln-report.md`, `update-plan.md`
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
|
|
32
|
+
- Extended `InputSchema` with optional `updatePolicy` and `prPolicy` fields
|
|
33
|
+
- Extended `OutputSchema` with optional `vulnerabilityReport`, `updatePlan`, `pullRequests` sections
|
|
34
|
+
- Orchestrator pipeline expanded from 10 to 13 steps
|
|
35
|
+
- All new external clients (OSV, Registry, GitHub API) use injectable interfaces — zero new runtime deps
|
|
36
|
+
- Version bumped to 2.0.0
|
|
37
|
+
|
|
38
|
+
## [1.0.0] - 2026-02-05
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
|
|
42
|
+
- Initial release
|
|
43
|
+
- Pattern-based scanning across 68 Vibe Coding Domains (ISO 25010-aligned)
|
|
44
|
+
- Context7 MCP verification for every library recommendation
|
|
45
|
+
- 7-dimension impact scoring (scalability, performance, security, maintainability, feature richness, UX, UI aesthetics)
|
|
46
|
+
- Phased migration plans with adapter strategies for high-risk changes
|
|
47
|
+
- Deletion checklists with estimated lines saved
|
|
48
|
+
- UX completeness audit (8 categories: A11y, error/empty/loading states, form validation, etc.)
|
|
49
|
+
- Monorepo support (npm, pip, cargo, go)
|
|
50
|
+
- License compliance filtering
|
|
51
|
+
- Dependency conflict detection
|
|
52
|
+
- Peer dependency checking with semver validation
|
|
53
|
+
- 14 property-based tests with fast-check
|
|
54
|
+
- Serializer with JSON round-trip guarantee
|
|
55
|
+
- SKILL.md parser with YAML frontmatter round-trip
|
|
56
|
+
- Complete examples (frontend-nextjs, backend-node)
|
|
57
|
+
- Reusable templates (summary table, migration plan, deletion checklist, PRD)
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 TsekaLuk
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<h1 align="center">Next-Unicorn</h1>
|
|
3
|
+
<p align="center">
|
|
4
|
+
Stop Vibe Coding debt. Audit your codebase, replace reinvented wheels with<br/>
|
|
5
|
+
unicorn-grade libraries, and ship a migration plan + "delete-code" checklist.
|
|
6
|
+
</p>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://github.com/TsekaLuk/Next-Unicorn-Skill/actions/workflows/ci.yml"><img src="https://github.com/TsekaLuk/Next-Unicorn-Skill/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
|
|
11
|
+
<a href="https://www.npmjs.com/package/@nebutra/next-unicorn-skill"><img src="https://img.shields.io/npm/v/@nebutra/next-unicorn-skill.svg?color=blue" alt="npm version" /></a>
|
|
12
|
+
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License" /></a>
|
|
13
|
+
<a href="https://www.typescriptlang.org/"><img src="https://img.shields.io/badge/TypeScript-strict-blue.svg" alt="TypeScript" /></a>
|
|
14
|
+
<a href="./tests/"><img src="https://img.shields.io/badge/tests-191%20passed-brightgreen.svg" alt="Tests" /></a>
|
|
15
|
+
<a href="./tests/"><img src="https://img.shields.io/badge/properties-29%20verified-purple.svg" alt="Property Tests" /></a>
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
<p align="center">
|
|
19
|
+
<a href="#quick-start">Quick Start</a> •
|
|
20
|
+
<a href="#features">Features</a> •
|
|
21
|
+
<a href="#how-it-works">How It Works</a> •
|
|
22
|
+
<a href="#comparison">Comparison</a> •
|
|
23
|
+
<a href="#api">API</a> •
|
|
24
|
+
<a href="#examples">Examples</a> •
|
|
25
|
+
<a href="#contributing">Contributing</a>
|
|
26
|
+
</p>
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Why Next-Unicorn?
|
|
31
|
+
|
|
32
|
+
Every codebase accumulates hand-rolled implementations that should be mature libraries. Custom date formatters, DIY loggers, bespoke state machines, ad-hoc i18n — **Vibe Coding debt**.
|
|
33
|
+
|
|
34
|
+
Snyk, Dependabot, and Renovate manage your *existing* dependencies. They can't find code you wrote that *should become* a dependency.
|
|
35
|
+
|
|
36
|
+
**Next-Unicorn does both** — and verifies every recommendation against real documentation via [Context7 MCP](https://context7.com).
|
|
37
|
+
|
|
38
|
+
## Quick Start
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# npm
|
|
42
|
+
npm install @nebutra/next-unicorn-skill
|
|
43
|
+
|
|
44
|
+
# pnpm
|
|
45
|
+
pnpm add @nebutra/next-unicorn-skill
|
|
46
|
+
|
|
47
|
+
# bun
|
|
48
|
+
bun add @nebutra/next-unicorn-skill
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
import { analyze } from '@nebutra/next-unicorn-skill';
|
|
53
|
+
|
|
54
|
+
const result = await analyze({
|
|
55
|
+
input: {
|
|
56
|
+
projectMetadata: {
|
|
57
|
+
repoPath: './my-project',
|
|
58
|
+
languages: ['typescript'],
|
|
59
|
+
packageManagers: ['pnpm'],
|
|
60
|
+
currentLibraries: { react: '18.2.0', next: '14.1.0' },
|
|
61
|
+
},
|
|
62
|
+
optimizationGoals: ['reduce custom code', 'improve maintainability'],
|
|
63
|
+
constraints: {
|
|
64
|
+
licenseAllowlist: ['MIT', 'Apache-2.0', 'ISC'],
|
|
65
|
+
},
|
|
66
|
+
priorityFocusAreas: ['i18n', 'observability', 'auth-security'],
|
|
67
|
+
},
|
|
68
|
+
context7Client: myContext7Client,
|
|
69
|
+
// Optional Phase 2 clients:
|
|
70
|
+
vulnClient: myOsvClient, // vulnerability scanning
|
|
71
|
+
registryClient: myRegistryClient, // auto-update
|
|
72
|
+
platformClient: myGitHubClient, // PR creation
|
|
73
|
+
gitOps: myGitOperations, // PR creation
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
if (result.success) {
|
|
77
|
+
console.log(result.prettyJson);
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Or use as an **MCP SKILL** — provide [`SKILL.md`](./SKILL.md) to your AI agent (Claude Code, Kiro, etc.).
|
|
82
|
+
|
|
83
|
+
## Features
|
|
84
|
+
|
|
85
|
+
### Core Analysis
|
|
86
|
+
|
|
87
|
+
| Feature | Description |
|
|
88
|
+
|---------|-------------|
|
|
89
|
+
| **Pattern-based scanning** | Detects hand-rolled code across 68 Vibe Coding Domains (ISO 25010-aligned) |
|
|
90
|
+
| **Context7 verification** | Every recommendation verified against real, version-correct documentation |
|
|
91
|
+
| **7-dimension impact scoring** | Scalability, performance, security, maintainability, feature richness, UX, UI aesthetics |
|
|
92
|
+
| **Phased migration plans** | Low / medium / high risk phases with adapter strategies |
|
|
93
|
+
| **Deletion checklists** | Every file and line range to remove, with estimated lines saved |
|
|
94
|
+
| **UX completeness audit** | A11y, error/empty/loading states, form validation, design system alignment |
|
|
95
|
+
| **Monorepo support** | Detects npm, pip, cargo, go workspaces independently |
|
|
96
|
+
|
|
97
|
+
### Dependency Management (v2.0)
|
|
98
|
+
|
|
99
|
+
| Feature | Description |
|
|
100
|
+
|---------|-------------|
|
|
101
|
+
| **Vulnerability scanning** | Scans current AND recommended deps via OSV — prevents "upgrade into a vuln" |
|
|
102
|
+
| **Auto-update deps** | Impact-scored version upgrades with Context7-powered breaking change detection |
|
|
103
|
+
| **PR auto-creation** | GitHub/GitLab PRs with conventional commit titles, impact tables, reviewer checklists |
|
|
104
|
+
| **Migration PRs** | PRs with adapter code scaffolding for hand-rolled code replacement |
|
|
105
|
+
|
|
106
|
+
## How It Works
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
Input ─> Validator ─> Scanner ─> Context7 Verifier ─> Impact Scorer
|
|
110
|
+
─> Conflict Detection ─> Vuln Scanner ─> License Filter
|
|
111
|
+
─> Migration Planner ─> UX Auditor ─> Auto-Updater
|
|
112
|
+
─> Serializer ─> PR Creator ─> Output
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Each stage is a pure function with structured I/O. All external dependencies (Context7, OSV, npm registry, GitHub API) are **injected via interfaces** for testability.
|
|
116
|
+
|
|
117
|
+
### Before / After
|
|
118
|
+
|
|
119
|
+
<table>
|
|
120
|
+
<tr><th>Before (hand-rolled)</th><th>After (recommended)</th></tr>
|
|
121
|
+
<tr>
|
|
122
|
+
<td>
|
|
123
|
+
|
|
124
|
+
```tsx
|
|
125
|
+
// Custom i18n across 47 files
|
|
126
|
+
const translations = {
|
|
127
|
+
en: { greeting: 'Hello' },
|
|
128
|
+
es: { greeting: 'Hola' },
|
|
129
|
+
};
|
|
130
|
+
function t(key, locale) {
|
|
131
|
+
return translations[locale]?.[key] ?? key;
|
|
132
|
+
}
|
|
133
|
+
// No plurals, no interpolation, no RTL
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
</td>
|
|
137
|
+
<td>
|
|
138
|
+
|
|
139
|
+
```tsx
|
|
140
|
+
// next-intl — Context7 verified, MIT
|
|
141
|
+
// Impact: 9.2/10 composite
|
|
142
|
+
// Migration risk: low | Effort: 8h
|
|
143
|
+
import { useTranslations } from 'next-intl';
|
|
144
|
+
|
|
145
|
+
export default function Page() {
|
|
146
|
+
const t = useTranslations('common');
|
|
147
|
+
return <h1>{t('greeting')}</h1>;
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
</td>
|
|
152
|
+
</tr>
|
|
153
|
+
<tr>
|
|
154
|
+
<td>
|
|
155
|
+
|
|
156
|
+
```typescript
|
|
157
|
+
// Custom logger with console.log
|
|
158
|
+
function logRequest(req) {
|
|
159
|
+
console.log(JSON.stringify({
|
|
160
|
+
time: new Date().toISOString(),
|
|
161
|
+
method: req.method,
|
|
162
|
+
url: req.url,
|
|
163
|
+
}));
|
|
164
|
+
}
|
|
165
|
+
// No levels, no redaction, no rotation
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
</td>
|
|
169
|
+
<td>
|
|
170
|
+
|
|
171
|
+
```typescript
|
|
172
|
+
// pino — Context7 verified, MIT
|
|
173
|
+
// Impact: 9.0/10 composite
|
|
174
|
+
// Migration risk: low | Effort: 4h
|
|
175
|
+
import pino from 'pino';
|
|
176
|
+
const logger = pino({
|
|
177
|
+
level: 'info',
|
|
178
|
+
redact: ['req.headers.authorization'],
|
|
179
|
+
});
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
</td>
|
|
183
|
+
</tr>
|
|
184
|
+
</table>
|
|
185
|
+
|
|
186
|
+
## Comparison
|
|
187
|
+
|
|
188
|
+
| Feature | Next-Unicorn | Snyk | Dependabot | Renovate |
|
|
189
|
+
|---------|:---:|:---:|:---:|:---:|
|
|
190
|
+
| Finds hand-rolled code to replace | **Yes** | | | |
|
|
191
|
+
| Recommends new libraries | **Yes** | | | |
|
|
192
|
+
| 7-dimension impact scoring | **Yes** | | | |
|
|
193
|
+
| Context7 doc verification | **Yes** | | | |
|
|
194
|
+
| Phased migration plans | **Yes** | | | |
|
|
195
|
+
| UX completeness audit | **Yes** | | | |
|
|
196
|
+
| Deletion checklists | **Yes** | | | |
|
|
197
|
+
| Vulnerability scanning | **Yes** | Yes | Yes | |
|
|
198
|
+
| Scans *recommended* libs for vulns | **Yes** | | | |
|
|
199
|
+
| Auto-update existing deps | **Yes** | | Yes | Yes |
|
|
200
|
+
| Impact-scored updates | **Yes** | | | |
|
|
201
|
+
| PR auto-creation | **Yes** | Yes | Yes | Yes |
|
|
202
|
+
| Migration PRs with adapter code | **Yes** | | | |
|
|
203
|
+
| License compliance | **Yes** | Yes | | |
|
|
204
|
+
| Monorepo support | **Yes** | Yes | Yes | Yes |
|
|
205
|
+
|
|
206
|
+
## API
|
|
207
|
+
|
|
208
|
+
### `analyze(options): Promise<AnalyzeResult>`
|
|
209
|
+
|
|
210
|
+
| Option | Type | Required | Description |
|
|
211
|
+
|--------|------|:--------:|-------------|
|
|
212
|
+
| `input` | `InputSchema` | Yes | Project metadata, goals, constraints, focus areas |
|
|
213
|
+
| `context7Client` | `Context7Client` | Yes | Context7 MCP client for doc verification |
|
|
214
|
+
| `vulnClient` | `VulnerabilityClient` | No | OSV client for vulnerability scanning |
|
|
215
|
+
| `registryClient` | `RegistryClient` | No | Package registry client for auto-update |
|
|
216
|
+
| `platformClient` | `PlatformClient` | No | GitHub/GitLab client for PR creation |
|
|
217
|
+
| `gitOps` | `GitOperations` | No | Git CLI operations for PR creation |
|
|
218
|
+
|
|
219
|
+
### Output Structure
|
|
220
|
+
|
|
221
|
+
```jsonc
|
|
222
|
+
{
|
|
223
|
+
"recommendedChanges": [...], // Recommendations with impact scores
|
|
224
|
+
"filesToDelete": [...], // Files to remove after migration
|
|
225
|
+
"linesSavedEstimate": 1250, // Total lines saved
|
|
226
|
+
"uxAudit": [...], // UX completeness (8 categories)
|
|
227
|
+
"migrationPlan": { // Phased plan
|
|
228
|
+
"phases": [...], // low → medium → high risk
|
|
229
|
+
"deletionChecklist": [...] // Detailed items with reasons
|
|
230
|
+
},
|
|
231
|
+
"vulnerabilityReport": {...}, // (optional) Vuln findings + SARIF
|
|
232
|
+
"updatePlan": {...}, // (optional) Scored dep updates
|
|
233
|
+
"pullRequests": {...} // (optional) Created PR results
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## Vibe Coding Domains
|
|
238
|
+
|
|
239
|
+
68 domains across 11 categories, aligned with ISO/IEC 25010:
|
|
240
|
+
|
|
241
|
+
| Category | Count | Examples |
|
|
242
|
+
|----------|:-----:|---------|
|
|
243
|
+
| UX / Design | 14 | `ux-completeness`, `a11y-accessibility`, `forms-ux`, `design-system` |
|
|
244
|
+
| SEO / i18n | 5 | `seo`, `i18n`, `content-marketing` |
|
|
245
|
+
| Growth / Data | 7 | `analytics-tracking`, `ab-testing-experimentation` |
|
|
246
|
+
| Frontend Arch | 8 | `state-management`, `data-fetching-caching`, `agent-architecture` |
|
|
247
|
+
| Backend / Platform | 8 | `database-orm-migrations`, `jobs-queue-scheduler`, `feature-flags-config` |
|
|
248
|
+
| Security | 5 | `auth-security`, `permissions-rbac-ux`, `fraud-abuse-prevention` |
|
|
249
|
+
| Observability | 4 | `logging-tracing-metrics`, `error-monitoring` |
|
|
250
|
+
| Delivery / DevEx | 6 | `testing-strategy`, `ci-cd-release`, `dependency-management` |
|
|
251
|
+
| Performance | 3 | `performance-web-vitals`, `cost-optimization` |
|
|
252
|
+
| AI Engineering | 3 | `ai-model-serving`, `rag-vector-search` |
|
|
253
|
+
| Business | 3 | `payments-billing`, `marketplace-platform` |
|
|
254
|
+
|
|
255
|
+
> Extensible via `customDomains` in the input schema.
|
|
256
|
+
|
|
257
|
+
## Testing
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
pnpm test # 191 tests (vitest + fast-check)
|
|
261
|
+
pnpm typecheck # TypeScript strict mode
|
|
262
|
+
pnpm build # Compile to dist/
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
**29 property-based tests** verify correctness invariants:
|
|
266
|
+
|
|
267
|
+
- Schema round-trip guarantees (Properties 1–3)
|
|
268
|
+
- Detection completeness (Property 4)
|
|
269
|
+
- Context7 verification correctness (Property 5)
|
|
270
|
+
- Scoring range and composite correctness (Properties 6–7)
|
|
271
|
+
- Migration phase ordering and adapter mandates (Properties 8–10)
|
|
272
|
+
- UX audit completeness (Property 11)
|
|
273
|
+
- Constraint filtering (Properties 12–13)
|
|
274
|
+
- JSON indentation (Property 14)
|
|
275
|
+
- Vulnerability scanning (Properties 15–18)
|
|
276
|
+
- Update policy and scoring (Properties 19–24)
|
|
277
|
+
- PR strategy and formatting (Properties 25–29)
|
|
278
|
+
|
|
279
|
+
## Examples
|
|
280
|
+
|
|
281
|
+
| Scenario | Input | Output |
|
|
282
|
+
|----------|-------|--------|
|
|
283
|
+
| Next.js Frontend | [`examples/frontend-nextjs/input.json`](./examples/frontend-nextjs/input.json) | [`output.json`](./examples/frontend-nextjs/output.json) |
|
|
284
|
+
| Node.js Backend | [`examples/backend-node/input.json`](./examples/backend-node/input.json) | [`output.json`](./examples/backend-node/output.json) |
|
|
285
|
+
|
|
286
|
+
## Templates
|
|
287
|
+
|
|
288
|
+
| Template | Purpose |
|
|
289
|
+
|----------|---------|
|
|
290
|
+
| [`summary-table.md`](./templates/summary-table.md) | Comparison table for stakeholders |
|
|
291
|
+
| [`migration-plan.md`](./templates/migration-plan.md) | Phased migration plan |
|
|
292
|
+
| [`deletion-checklist.md`](./templates/deletion-checklist.md) | Files to delete after migration |
|
|
293
|
+
| [`vuln-report.md`](./templates/vuln-report.md) | Vulnerability scan report |
|
|
294
|
+
| [`update-plan.md`](./templates/update-plan.md) | Dependency update plan |
|
|
295
|
+
| [`prd-template.md`](./templates/prd-template.md) | PRD for stakeholder presentation |
|
|
296
|
+
|
|
297
|
+
## Contributing
|
|
298
|
+
|
|
299
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md) for development setup, architecture overview, and contribution guidelines.
|
|
300
|
+
|
|
301
|
+
## Releasing
|
|
302
|
+
|
|
303
|
+
Releases are automated via GitHub Actions:
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
# Tag a new version
|
|
307
|
+
git tag v2.0.0
|
|
308
|
+
git push origin v2.0.0
|
|
309
|
+
# → CI runs tests → creates GitHub Release → publishes to npm
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
See [CHANGELOG.md](./CHANGELOG.md) for version history.
|
|
313
|
+
|
|
314
|
+
## License
|
|
315
|
+
|
|
316
|
+
[MIT](./LICENSE) © [TsekaLuk](https://github.com/TsekaLuk)
|