Skip to content

taste-lint

CLI design and copy linter: mechanical checks block commits, while fuzzy taste checks go to Jev for probability-scored review notes.

CLIbetaMIT

Overview

Taste Lint is a Node CLI that runs design review on every commit using rules from the author's Taste Training and Agent Skills collections. Mechanical checks cover motion (for example transition-all or long transitions), copy patterns, typography, search metadata and, in a code profile, issues such as N+1 queries, empty tests and secrets in logs. Profiles scope runs to product UI, writing, agent instructions, code or everything.

The fuzzier checks, such as vague error messages, empty states with no action, bare Confirm labels and unsupported claims, are sent to Jev through Vercel's AI Gateway, which answers each with a probability and produces review notes. Per the README, 28 checks block a run and 177 more only report, because they are either unproven pattern ports or Jev questions not yet promoted by a labelled corpus. Mechanical checks need no key; Jev checks bill the user's gateway key, are cached between runs and can be previewed with a dry run.

What the decision model decides

TypeQuestionAnswers
Yes / noIs this error message vague?(inferred)—
Yes / noDoes this empty state lack a next action?(inferred)—
Yes / noIs this confirm label bare (just 'Confirm')?(inferred)—

How it works

  1. Run taste-lint over files in the chosen profile.
  2. Mechanical checks run locally and can fail the build.
  3. Fuzzy checks go to Jev via the AI Gateway and return probabilities.
  4. Jev findings appear as advisory review notes unless promoted.

Strengths

  • Mechanical checks work with no key or account.
  • Jev checks are cached and costs can be previewed.
  • Clear split between blocking and advisory checks.

Caveats

  • Jev-backed checks are advisory until validated on a labelled corpus.
  • Requires Node 24.11+ and a Vercel AI Gateway key for Jev.

Getting started

npx taste-lint@latest init, then npm run taste -- --dry-run.

At a glance

Type
CLI
Status
beta
Language
TypeScript
Runtime
Node CLI
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Writing / UI: CLI that uses Jev probabilities on semantic taste checks to catch AI slop in UI, copy, and agent instructions before ship; measurable rules stay local and active findings can fail a run.

    yibie/awesome-jev
  • CLI that uses Jev probabilities on semantic taste checks to catch AI slop in UI, copy, and agent instructions before ship.

    cobanov/awesome-jev
  • CLI that uses Jev to catch AI slop in UI, copy, and agent instructions before ship (probabilities on semantic taste checks).

    hellogumbo/awesome-jev
  • Design review on every commit: 28 blocking checks and more advisory ones, with the fuzzy ones — vague errors, bare confirm labels, empty states — sent to Jev through Vercel's AI Gateway as review notes.

    MrJev/awesome-jev

Frequently asked questions

What does Jev check?

Fuzzy UI and copy issues such as vague errors, empty states without an action and bare confirm labels, returning a probability per check.

Can it block commits?

Yes, the 28 mechanical blocking checks can fail a run; Jev checks report but do not block yet.

Do I need a key?

Only for Jev checks, through a Vercel AI Gateway key; mechanical checks run without one.

Related projects

  • Ruff-style prose linter whose semantic rules each ask Jev a yes/no question about a paragraph, title or section, with tunable thresholds.

    ProjectbetaPython
  • Node tool that crosschecks a folder of Markdown notes for contradictions and repeats, and ranks notes by any question, using Jev.

    ProjectbetaJavaScript
  • Prose linter for AI writing tells: regex handles 18, Jev judges 15 as Nouls in one call, shipped as a Claude Code Stop hook.

    HookbetaPython
  • Prose linter with local regex rules and Jev judgment rules per paragraph, as CLI, pre-commit hook, GitHub Action and Claude Code skill.

    CLIbetaTypeScript
  • Chinese controlled-writing agent skill for technical reports with nine rules, using static checks plus a Jev semantic gate for certainty.

    Agent skillbeta
  • Dependency-light Go linter that applies natural-language rules to code and documents using decision models like Jev or Clef.

    ProjectprototypeGo