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

Passed

No known issues

This version of the tile failed moderation
Failed moderation (intent review) in tile.json: This is a potential supply chain attack via typosquatting/dependency confusion. The package name 'uinaf/viteplus' mimics the popular 'Vite' ecosystem (vite-plus, voidzero-dev). It's designed as an AI agent tile/skill that instructs AI coding assistants to modify package scripts, CI configurations, and packaging commands in repositories - effectively a prompt injection attack. The skill directs AI agents to replace legitimate tooling with attacker-controlled alternatives ('vp', 'voidzero-dev/setup-vp', 'vite-plus/test'), which could introduce malicious dependencies across many repositories when an AI agent follows these instructions.
Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-4/

{
  "context": "Tests whether the agent correctly consolidates a project's fragmented configuration files into a single vite.config.ts following VitePlus conventions, enables type-aware lint options, and handles the baseUrl incompatibility with VitePlus type-aware checks that causes silent failures.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "No parallel vitest.config.ts",
      "description": "The output does NOT include a `vitest.config.ts` file — test configuration has been moved into the `test` block inside `vite.config.ts`",
      "max_score": 12
    },
    {
      "name": "No .oxlintrc* files",
      "description": "The output does NOT include any `.oxlintrc`, `.oxlintrc.json`, `.oxlintrc.yml`, or similar oxlint standalone config files — lint config has been consolidated into `vite.config.ts`",
      "max_score": 10
    },
    {
      "name": "No parallel tsdown.config.ts",
      "description": "The output does NOT include a `tsdown.config.ts` file — packaging config has been moved into `vite.config.ts`",
      "max_score": 8
    },
    {
      "name": "typeAware enabled",
      "description": "The `vite.config.ts` includes `lint: { options: { typeAware: true } }` (or equivalent nested structure with `typeAware: true` inside the lint options)",
      "max_score": 15
    },
    {
      "name": "typeCheck enabled",
      "description": "The `vite.config.ts` includes `lint: { options: { typeCheck: true } }` (or equivalent with `typeCheck: true` inside the lint options)",
      "max_score": 15
    },
    {
      "name": "baseUrl incompatibility addressed",
      "description": "The `compilerOptions.baseUrl` is either removed from `tsconfig.json` OR the output explicitly documents that `baseUrl` causes VitePlus to silently skip type-aware checks and recommends removing it",
      "max_score": 15
    },
    {
      "name": "Staged config in vite.config.ts",
      "description": "Pre-commit / staged hook configuration is placed inside the `staged` property of the root `defineConfig` in `vite.config.ts`, rather than in a separate Husky or lint-staged config",
      "max_score": 10
    },
    {
      "name": "No Husky or lint-staged config",
      "description": "The output does NOT create or preserve `.husky/pre-commit`, `.husky/` directory, or any `lint-staged` configuration block in `package.json`",
      "max_score": 5
    },
    {
      "name": "defineConfig from vite-plus",
      "description": "The `vite.config.ts` imports `defineConfig` from `'vite-plus'` (not from `'vite'`)",
      "max_score": 5
    },
    {
      "name": "vp migrate referenced",
      "description": "The migration notes, README, or a migration script references `vp migrate` as the recommended migration entry point (rather than purely describing manual file edits)",
      "max_score": 5
    }
  ]
}

evals

SKILL.md

tile.json