CtrlK
BlogDocsLog inGet started
Tessl Logo

migrate-to-vinext

Migrates Next.js projects to vinext (Vite-based Next.js reimplementation). Load when asked to migrate, convert, or switch from Next.js to vinext. Handles compatibility scanning, package replacement, Vite config generation, ESM conversion, and deployment setup (Cloudflare Workers natively, other platforms via Nitro).

77

Quality

96%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

92%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-engineered migration runbook: phased workflow with validation checkpoints and failure fallbacks, fully executable commands and configs, and clean one-level-deep reference files. The only weakness is redundancy — the Cloudflare-bindings warning, the Nitro-vs-native recommendation, and the two identical minimal config blocks are each stated twice, which costs tokens without adding information.

Suggestions

State the "do not use getPlatformProxy()/custom worker entries — use cloudflare:workers" guidance once (either in Phase 4 or Anti-patterns) and cross-reference the other location instead of repeating it near-verbatim.

Collapse the identical Pages Router and App Router 'minimal' vite.config.ts blocks into one snippet with a note that the same config serves both (the App Router RSC plugin behavior is already explained in prose).

The Nitro-vs-native-Cloudflare recommendation appears in both Option B and Anti-patterns; keep the fuller version in one place and reference it from the other.

DimensionReasoningScore

Conciseness

The body is dense and assumes Claude's knowledge (no explanation of what Next.js or Vite is, lean tables throughout), but contains real duplication: the "Do not use getPlatformProxy()/custom worker entries" warning appears near-verbatim in both Phase 4 and Anti-patterns, the Nitro-vs-native-Cloudflare recommendation is stated twice, and the Pages Router and App Router 'minimal' vite.config.ts blocks are byte-identical duplicates. That is 'minor instances of over-explanation/duplication that could be trimmed' (score 4), not the fully lean score-5 body.

4 / 5

Actionability

Everything is copy-paste executable: the lockfile→package-manager table, exact install/uninstall commands, a before/after script-replacement table with flag-translation guidance, runnable vite.config.ts snippets, and exact NITRO_PRESET build commands. Concrete commands cover the common cases (npm/pnpm/yarn/bun, both routers, Cloudflare and Nitro targets), matching the score-5 anchor.

5 / 5

Workflow Clarity

The phase sequence has explicit checkpoints at every risky point: pre-flight verification ('If not found, STOP — this skill does not apply'), a scored compatibility report with 'inform the user before proceeding', a failure fallback ('If vinext init fails... continue to Phase 3'), and a dedicated Verify phase with error reporting routed to troubleshooting.md. The migration is explicitly framed as non-destructive, and error-recovery feedback loops are present, satisfying the score-5 anchor.

5 / 5

Progressive Disclosure

The SKILL.md is a well-navigable overview (216 lines of quick-reference tables and minimal configs) with three clearly signaled references — compatibility.md, config-examples.md, troubleshooting.md — each referenced at the point of need and each verified to exist, hold real content, and point to no further files (one level deep). Bulk detail (full compat matrices, config variants per target, error tables) is correctly externalized, matching the score-5 pattern; the small Known Limitations table overlapping compatibility.md is a quick-reference summary, not misplaced bulk content.

5 / 5

Total

19

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: concise third-person statement of capability, five concrete actions matching the skill's actual phases, and an explicit 'Load when...' trigger clause with natural synonyms. It scores at the top of every dimension with no over-claims or padding.

DimensionReasoningScore

Specificity

"Handles compatibility scanning, package replacement, Vite config generation, ESM conversion, and deployment setup (Cloudflare Workers natively, other platforms via Nitro)" lists multiple concrete actions that map one-to-one onto the skill's phases, in proper third-person voice. Coverage is comprehensive with no gaps, matching the score-5 anchor rather than the score-4 anchor (which requires 'minor gaps in coverage').

5 / 5

Completeness

Both questions are answered explicitly: 'what' via the concrete action list and 'when' via "Load when asked to migrate, convert, or switch from Next.js to vinext" — an explicit trigger clause with concrete phrases. This mirrors the score-5 exemplar; score 4 would require a less explicit 'when'.

5 / 5

Trigger Term Quality

"migrate, convert, or switch from Next.js to vinext" provides three natural verb synonyms a user would actually say, plus both product names. It reads as comprehensive natural-term coverage for this task rather than the score-4 anchor's 'a few natural terms missing'.

5 / 5

Distinctiveness Conflict Risk

The niche is narrow (Next.js → vinext migration only) with distinct, unambiguous triggers; it would not fire for generic Next.js work, general Vite setup, or unrelated migrations. Minimal conflict risk, matching the score-5 anchor.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
cloudflare/vinext
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.