AgentSkillsCN

shadcn-detection

检测项目是否使用 Radix UI 或 Base UI 作为 shadcn/ui 原语。通过分析 package.json、components.json、导入语句及数据属性来确定所使用的原语库。

SKILL.md
--- frontmatter
name: shadcn-detection
description: Detect whether a project uses Radix UI or Base UI as shadcn/ui primitives. Analyzes package.json, components.json, imports, and data attributes to determine the primitive library in use.
versions:
  shadcn-ui: "2.x"
  radix-ui: "1.x"
  base-ui: "1.x"
user-invocable: true
allowed-tools: Read, Glob, Grep, Bash
references: references/radix-patterns.md, references/baseui-patterns.md, references/detection-algorithm.md, references/templates/detection-script.md
related-skills: shadcn-components, shadcn-migration

shadcn Detection

Agent Workflow (MANDATORY)

Before detection, use TeamCreate to spawn agents:

  1. fuse-ai-pilot:explore-codebase - Scan project structure
  2. fuse-ai-pilot:research-expert - Verify latest primitive patterns

After: Use results to configure component workflow.


Overview

FeatureDescription
Package scanDetect @radix-ui/* or @base-ui/react
Config checkAnalyze components.json style field
Import analysisScan source for import patterns
Attribute scanCheck data-state vs data-[open]
Package managerDetect bun/npm/pnpm/yarn via lockfile

Critical Rules

  1. ALWAYS run detection before any component work
  2. CHECK all 5 signals for maximum accuracy
  3. HANDLE mixed state as migration case, never ignore
  4. CACHE result for session duration, no re-detection needed
  5. DETECT package manager via lockfile priority order

Architecture

code
project/
├── package.json            # Step 1: deps scan
├── components.json         # Step 2: style field
├── bun.lockb|pnpm-lock.yaml|yarn.lock|package-lock.json  # Step 5: PM
└── src/|components/|app/   # Step 3-4: imports + attrs

→ See detection-script.md for complete example


5-Step Detection Algorithm

StepSignalWeight
1package.json deps (@radix-ui/*, @base-ui/react)40%
2components.json style field20%
3Import patterns in source files25%
4Data attributes (data-state vs data-[open])15%
5Package manager (lockfile → bunx/npx/pnpm dlx/yarn dlx)-

Decision Table

Radix ScoreBase UI ScoreResultAction
>500RadixUse Radix patterns
0>50Base UIUse Base UI patterns
>0>0MixedMigration needed
00NoneFresh setup

Best Practices

DO

  • Run detection BEFORE any component work
  • Check all 5 signals for accuracy
  • Handle "mixed" state as migration case

DON'T

  • Assume Radix without checking
  • Skip components.json analysis
  • Ignore data-attribute signals

Reference Guide

Concepts

TopicReferenceWhen to Consult
Radix Patternsradix-patterns.mdIdentifying Radix UI signals
Base UI Patternsbaseui-patterns.mdIdentifying Base UI signals
Algorithmdetection-algorithm.mdUnderstanding scoring logic

Templates

TemplateWhen to Use
detection-script.mdRunning detection on a project