shadcn-detection

SkillAI & models

Use when determining which primitive (Radix UI or Base UI) a shadcn/ui project uses, before any component work or migration.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the shadcn-detection skill

What this skill tells your AI

The instructions your AI receives, as published by fusengine/agents in plugins/shadcn-expert/skills/shadcn-detection/SKILL.md and read by ahel’s review.

Produces a Radix / Base UI / Mixed (migration needed) / None (fresh setup) verdict that gates every downstream shadcn component or migration task.

shadcn Detection

Agent Workflow (MANDATORY)

Before detection, spawn agents in parallel, one Agent call each with a name:

  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

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

Signals

GitHub stars
25
Forks
4
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
shadcn-detection
Source
github.com/fusengine/agents