SuperAPI AI 工具集

shadcn-agents-cva-validator

测试与质量

查看项目

更新于 10-15 22:18

技能介绍

用途:这是一个面向代码审查或提交前智能体的确定性校验清单,用于验证基于 cva 的 shadcn 组件写法是否正确。它是校验器而非教程;先阅读 shadcn-syntax-variant-cva,遇到 className 覆盖不生效时阅读 shadcn-errors-styling-conflicts。

主要能力:每次只回答某项检查 PASS 或 FAIL,不提出重构。7 项检查依次为:1)cva 首个位置参数是字符串或字符串数组;2)variants 每个值都是字符串或字符串数组,不能是函数、嵌套 cn() 或对象;3)compoundVariants 声明在 variants 之后;4)每个 variant 轴在 defaultVariants 中有条目或显式 null;5)导出 cva 返回值且在 props 类型中使用 VariantProps<typeof X>;6)className 使用 cn(xVariants({..., className})) 或 cn(xVariants({...}), className),禁止模板字符串或加号拼接;7)若有 asChild 则导入 Slot 并在 true 时渲染 Slot.Root(统一包)或 Slot(旧版),且两个分支共用同一 className 表达式。按声明顺序执行,首个 FAIL 即停止。多文件 diff 时逐组件文件独立执行。前 3 项覆盖实际项目中过半的 cva 回归。

使用方式:先搜索 diff 或文件中的 cva(,再依序运行 7 项检查。全部通过输出 VERDICT: PASS 与一行摘要;失败输出 VERDICT: FAIL、COMPONENT: <文件路径>:<cva 调用行号>、FAILED CHECK: <编号与名称>、REASON: <一句话>、CANONICAL FIX: references/examples.md § <章节名>,便于下游工具 grep。

适用场景:审查 cva 驱动的 shadcn 组件、LLM 刚生成 Button 类组件后的校验、预提交检查。

限制:无法检测 Tailwind v3 与 v4 类语义差异导致的运行时问题;Check 6 通过但覆盖仍不生效时须转 shadcn-errors-styling-conflicts。资料未提供安装命令、收费或价格信息。