Enforce Tailwind CSS Design Tokens in Vue with @shadcn/lint Shadcn released @shadcn/lint, an ESLint-based tool built for AI agents that write UI code, enforcing design-system rules such as no-raw-colors and no-restyle in Vue components. In a hands-on lab, the linter flagged a BaseButton using bg-red-500 with two findings and suggested the existing variant="danger" API, listing the component's primary, secondary, ghost, and danger variants and pointing to src/components/ui/BaseButton.vue. The package turns design-system contracts into checks developers and coding agents can run and re-run after edits. Tailwind is awesome. I like having the styling next to the markup. I can read a component and understand its layout without jumping between files. But there’s a huge gap between using Tailwind and automatically verifying that code follows a design system. This becomes especially obvious when AI agents write the UI. An agent can produce valid Tailwind while ignoring the tokens and component variants already in your project. Telling it to follow the design system gives it instructions. It also needs a way to check its work. Take this button: