scripts/check-ui-consistency.mjs. It runs every check of eslint/ui-consistency-plugin.mjs over src/**/*.tsx and compares the count per check and file with scripts/ui-baseline.json.
Commands
After a file is moved or renamed,
lint:ui:update needs the flag --allow-increase, which is the only way a number may rise.
What a check reads
A string counts as a class string only in a class position: JSXclassName, the arguments of cn, clsx and cva, properties named like a class and constants named like one. The vendored editor, ai-elements, magicui, animate-ui and tests are not checked.
Every report names the role to use instead.
Fix findings in bulk
A finding with a safe replacement is fixed by ESLint:Fix one check in a folder
Button, a menu or a card, because the right role depends on it. It never changes a condition or a text. The rest is left for a person.
Opt out of one line
Put a comment with the check and a reason on the same line or the line before:Opt-out comment
scripts/ui-selftest.mjs, and a selftest that misses a check fails.