Skip to content

Since the last run

Overall +9 points

vitejs/vite (opens in a new tab)

A mature, well-documented flagship project with excellent scaffolding and a clear path in—marred only by monorepo complexity and a learning curve that may trip up first-time contributors.

TypeScript★ 81,484716 open issuesMIT License
Overall score: 81 out of 100
Firm grip

last scored 2026-06-15

Readiness lenses

The same repo, two ways: how ready it is for an AI coding agent, and for a human newcomer. Switch lenses to see each one's score and checks.

How ready the repo is for an AI coding agent to read, build, and operate it.

19 of 34 checks passed across 6 categories.

  • Machine Orientation

    4 checks passed3 problems found

    • mediumAgent instructions file

      AGENTS.md / CLAUDE.md is the direct, machine-read channel for entry points and conventions.

      Fix: Add an AGENTS.md naming the entry points, the build/test commands, and the house conventions.

    • lowllms.txt present

      An llms.txt is the emerging machine-orientation standard — a curated map for LLMs.

      Fix: Add an llms.txt pointing at the key docs and entry points.

    • lowArchitecture doc

      An ARCHITECTURE doc hands an agent the module map instead of making it infer one.

      Fix: Add an ARCHITECTURE.md describing the major components and how they fit.

    • README present — An agent reconstructs what the repo is and how to work in it from the README first.
    • Repository description set — The one-line description is the fastest orientation signal an agent reads.
    • Topics set — GitHub topics situate the repo's domain and stack for an agent at a glance.
    • Contribution conventions are written down — A contributor guide is where an agent learns the branch, commit, and review conventions it must follow.
  • Reproducible Setup

    3 checks passed3 problems found

    • mediumContainer or dev-container

      A Dockerfile / compose / devcontainer removes 'works on my machine' from setup.

      Fix: Add a Dockerfile, a compose file, or a .devcontainer so the environment is declared, not assumed.

    • lowEnv template present

      A .env.example tells an agent which configuration keys it must supply to run.

      Fix: Ship a .env.example listing every required key with placeholder values.

    • lowDev container

      A .devcontainer gives an agent a one-command, fully-declared environment.

      Fix: Add a .devcontainer so the toolchain is declared, not assumed.

    • Lockfile committed — Without a lockfile two clones can resolve different dependency trees — the build isn't reproducible.
    • Runtime / toolchain pinned — An unpinned runtime makes an agent guess the version a clean environment needs.
    • Version pins are exact — A floating pin (a bare major, or a range) still drifts between installs.
  • Code Navigability

    1 check passed1 problem found

    • lowTypeScript strict mode on

      Strict typing gives an agent typed signatures to anchor an edit on, not guesses.

      Fix: Turn on `strict` in tsconfig.json.

    • Conventional source layout — A recognised src/ · lib/ · app/ layout lets an agent localise code without spelunking.
  • Verification Surface

    6 checks passed1 problem found

    • lowTask runner present

      A Makefile / Taskfile / justfile gives an agent a single index of the project's commands.

      Fix: Add a Makefile / Taskfile / justfile collecting the common commands.

    • Tests present — Runnable tests are the ground truth an agent checks its own edits against.
    • Test command defined — A `test` script is the documented, discoverable way to run the suite.
    • Lint command defined — A linter an agent can run catches a class of mistakes before they ship.
    • CI configured — Readable CI is the feedback loop an agent reads to know what 'green' means here.
    • Typecheck command — A typecheck script lets an agent catch type errors before they ship.
    • Build command — A documented build command is the discoverable way for an agent to produce artifacts.
  • Agent Safety

    4 checks passed4 problems found

    • highNo committed .env

      A tracked real .env hands secrets to anything — including an agent — that reads the repo.

      Fix: Remove the .env from history, gitignore it, and ship a .env.example instead.

    • medium.gitignore covers env files

      An ignore rule for .env is what keeps the next careless commit from leaking secrets.

      Fix: Add `.env` (and `.env.*`) to .gitignore.

    • lowCODEOWNERS present

      CODEOWNERS marks the 'don't touch without review' zones an agent should respect.

      Fix: Add a CODEOWNERS file marking the sensitive paths.

    • lowAutomated dependency updates

      Dependabot / Renovate keeps dependencies patched without a human in the loop.

      Fix: Enable Dependabot or Renovate.

    • No exposed secrets — Secret-shaped literals in tracked files are a live credential leak.
    • .gitignore present — A .gitignore is the first guard against an agent committing secrets or build junk.
    • Security policy — A SECURITY.md is where an autonomous security agent reads this repo's rules before acting on it.
    • License makes the code reusable — Without a license an agent cannot safely copy, redistribute, or vendor any of this code.
  • Context Economy

    1 check passed3 problems found

    • mediumDependencies not vendored in

      A committed node_modules / vendor tree drowns the real signal an agent needs.

      Fix: Remove the vendored dependency directory and gitignore it.

    • lowGenerated / vendored files marked

      A .gitattributes linguist marker tells tools (and agents) what to skip.

      Fix: Mark generated/vendored paths in .gitattributes (linguist-generated / linguist-vendored).

    • lowNo oversized source file

      A single file in the hundreds of KB blows past an agent's effective context window.

      Fix: Split the largest files along their natural seams.

    • Build output not committed — Generated dist/ · build/ output is noise an agent has to read past.

Where the grip slips

  1. highFinding Your Way+12 pts if fixed

    Monorepo structure not documented in CONTRIBUTING—newcomers must guess package layout.

    While the README lists three packages, CONTRIBUTING.md assumes knowledge of the monorepo layout and doesn't explain what's in packages/vite/src vs. packages/plugin-legacy vs. packages/create-vite. A newcomer cloning the repo has no mental map of where to find dev server code, build logic, or plugin system code, forcing them to explore blindly or ask for help.

    Fix: Add a 'Project Structure' or 'Monorepo Overview' section to CONTRIBUTING.md with a short description of each package's role (e.g., 'packages/vite: core dev server and build command; packages/plugin-legacy: IE11 compatibility plugin; packages/create-vite: scaffolding CLI') and a reference tree of key src/ directories.

  2. mediumGetting Running+8 pts if fixed

    Node and pnpm prerequisites scattered—no single source of truth for versions.

    Node version requirement (^20.19.0 || >=22.12.0) is only in package.json, not in CONTRIBUTING.md. pnpm version is in package.json but not called out prominently. A newcomer may run pnpm i with the wrong version and hit confusing errors, or miss the Corepack recommendation entirely.

    Fix: Add a 'Prerequisites' section at the top of CONTRIBUTING.md that explicitly states 'Node.js X.X.X or later' and 'pnpm 10.34.3 (or enable Corepack with `corepack enable`)' with a copy-paste version check command like `pnpm --version` to validate before proceeding.

  3. mediumPath To Contribute+7 pts if fixed

    No 'good first issue' or beginner-friendly issue labeling guidance.

    With 716 open issues and no visible guidance on how to find beginner-friendly contributions, a newcomer seeing the issue tracker will feel overwhelmed or uncertain where to start. The CONTRIBUTING guide mentions the repo is a monorepo and testing strategy but gives no pointer to issues marked for newcomers.

    Fix: Add a 'Finding Issues to Work On' subsection to CONTRIBUTING.md that explains how to filter GitHub issues by labels (e.g., 'good first issue', 'help wanted', 'status: needs-investigation') and what to expect for each category. Maintainers should also ensure a handful of issues carry these labels.

  4. lowGetting Running+5 pts if fixed

    No quick setup validation command in CONTRIBUTING—no way to confirm environment is ready.

    After running pnpm i and pnpm run build, a newcomer has no explicit test to verify the setup is correct before diving into development. They may have silently failed a step (e.g., missing Node.js feature) and not realize until they try to run a feature.

    Fix: Add a line to CONTRIBUTING.md after the three setup steps: 'To verify your setup is correct, run `pnpm run test-unit` (should pass at least one test suite) or `pnpm --filter=./packages/vite run dev` (should start the dev server without errors).'

  5. lowOpen Door+3 pts if fixed

    Code of Conduct not explicitly visible—only implied by sponsorship culture.

    While the snapshot shows sponsorship, team.md, and Discord links, there is no explicit CODE_OF_CONDUCT.md file mentioned in the file tree. This is a minor gap for a large project with 716 issues and multiple contributors.

    Fix: Add a CODE_OF_CONDUCT.md file (e.g., based on Contributor Covenant) in the root or .github/ folder, and link it prominently in CONTRIBUTING.md. Even a short, positive statement sets expectations.

Show your score

Latch badge
[![Latch score](https://latch.fyi/api/badge/38333c72-be59-4119-9df8-09cef9e658d5)](https://latch.fyi/vitejs/vite)

Share this analysis

https://latch.fyi/vitejs/vite

Fixed some issues? Re-analyze to measure your progress →

Copy the whole report

Grab the entire verdict in one go — a Markdown block for a README or an issue, plain text, or a prompt you can paste straight into an LLM.

Was this verdict fair?

One tap helps — or tell us more.