taste-lint
CLI design and copy linter: mechanical checks block commits, while fuzzy taste checks go to Jev for probability-scored review notes.
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
| Type | Question | Answers |
|---|---|---|
| Yes / no | Is this error message vague?(inferred) | — |
| Yes / no | Does this empty state lack a next action?(inferred) | — |
| Yes / no | Is this confirm label bare (just 'Confirm')?(inferred) | — |
How it works
- Run taste-lint over files in the chosen profile.
- Mechanical checks run locally and can fail the build.
- Fuzzy checks go to Jev via the AI Gateway and return probabilities.
- 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-jevCLI that uses Jev probabilities on semantic taste checks to catch AI slop in UI, copy, and agent instructions before ship.
cobanov/awesome-jevCLI that uses Jev to catch AI slop in UI, copy, and agent instructions before ship (probabilities on semantic taste checks).
hellogumbo/awesome-jevDesign 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.
ProjectbetaPythonNode tool that crosschecks a folder of Markdown notes for contradictions and repeats, and ranks notes by any question, using Jev.
ProjectbetaJavaScriptProse linter for AI writing tells: regex handles 18, Jev judges 15 as Nouls in one call, shipped as a Claude Code Stop hook.
HookbetaPythonProse linter with local regex rules and Jev judgment rules per paragraph, as CLI, pre-commit hook, GitHub Action and Claude Code skill.
CLIbetaTypeScriptChinese controlled-writing agent skill for technical reports with nine rules, using static checks plus a Jev semantic gate for certainty.
Agent skillbetaDependency-light Go linter that applies natural-language rules to code and documents using decision models like Jev or Clef.
ProjectprototypeGo