CtrlK
BlogDocsLog inGet started
Tessl Logo

uinaf/viteplus

Migrate or align frontend repositories to the stock VitePlus workflow. Use when standardizing package or monorepo repos around `vp`, `voidzero-dev/setup-vp`, `vite-plus/test`, and VitePlus-native CI, test, and packaging flows, including updating scripts, test config, CI setup, and packaging commands.

98

1.73x
Quality

100%

Does it follow best practices?

Impact

97%

1.73x

Average score across 6 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

SKILL.md

name:
viteplus
description:
Migrate or align frontend repositories to the stock VitePlus workflow. Use when standardizing package or monorepo repos around `vp`, `voidzero-dev/setup-vp`, `vite-plus/test`, and VitePlus-native CI, test, packaging, and hook flows. Default to replacing direct package-manager and Vitest wiring with the VitePlus equivalents unless the repo has a proven exception.

VitePlus

Move a frontend repo closer to the stock VitePlus toolchain without blindly deleting repo-specific release or runtime logic. VitePlus is in alpha — verify behavior against installed vp --version and the latest release notes rather than memorized command shapes.

Migration Targets

Default to this destination unless a repo-specific boundary clearly blocks it. If you keep an old command shape, document the reason.

  • CI uses voidzero-dev/setup-vp@v1; the action owns Node and package-manager bootstrap, then runs vp install, vp check, vp test, vp build
  • test files use vite-plus/test (and vite-plus/test/browser/context for browser mode)
  • scripts prefer vp test, vp test watch, vp test run --coverage, vp pack, vp build, vp update, and vp run <script> (or vpr <script>) over direct package-manager, raw Vitest, or tsdown wiring
  • hooks use vp config, .vite-hooks, and vp staged instead of custom Husky or lint-staged
  • single-source config in vite.config.ts: no parallel vitest.config.ts, .oxlintrc*, .oxfmtrc*, or tsdown.config.ts
  • contributor docs move to the new vp commands in the same change

Workflow

  1. Confirm the project is on Vite 8+ and Vitest 4.1+ — VitePlus refuses older versions.
  2. Audit current scripts, workflows, Vite config, test imports, release flow, package manager, and packaging.
  3. Read references/bootstrap.md for entrypoints (vp create, vp migrate), local guidance-file discovery, and validation path.
  4. Pick the shape and load only that reference: references/packages.md for standalone packages, or references/monorepos.md for workspaces.
  5. Migrate scripts, vite.config.ts, test imports, hooks, and packaging together. Verify with vp check && vp test before moving on.
  6. Update CI per references/ci-cd.md.
  7. Update tests and coverage per references/testing.md.
  8. Check references/commands.md before changing command invocations. Load references/known-issues.md only on unexpected behavior or when upgrading VitePlus.
  9. Keep repo-specific release, binary, or packaging steps Vite+ does not replace.
  10. To adopt a newer Vite+ release: vp upgrade (global), then vp update vite-plus @voidzero-dev/vite-plus-core @voidzero-dev/vite-plus-test (project). Confirm with vp outdated.
  11. End-to-end validation: vp env current && vp install && vp check && vp test, then verify vp build artifacts, vp test run --coverage, and vp staged on a staged change.

Concrete examples:

- uses: voidzero-dev/setup-vp@v1
  with:
    node-version-file: ".node-version"
    cache: true
- run: vp install
- run: vp check
- run: vp test
- run: vp build
import { defineConfig } from 'vite-plus'

export default defineConfig({
  lint: {
    options: { typeAware: true, typeCheck: true },
  },
  staged: {
    "*.{js,ts,tsx,vue,svelte}": "vp check --fix",
  },
})
# package.json scripts
-"test": "vitest run --coverage",
-"test:watch": "vitest",
+"test": "vp test run --coverage",
+"test:watch": "vp test watch",

Guardrails

  • Prefer vp create / vp migrate --agent <name> --editor <name> over hand-rolling agent or editor config.
  • Do not delete release workflows, binary packaging, or publish steps just to look more "stock."
  • If vp check is not running type-aware lint or type checks, confirm lint.options.typeAware and lint.options.typeCheck in vite.config.ts, and check for compilerOptions.baseUrl in tsconfig.jsontsgolint does not support baseUrl and VitePlus silently skips type-aware checks when it is present.

Known Caveats

See references/known-issues.md for current upstream caveats (hook runners, single-file vp check --fix, SSR instanceof failures, Cloudflare Workers tests, @vitest/coverage-v8 mixed-version warnings).

SKILL.md

tile.json