Community编程与开发github.com

getedgehq/shadcn-first

>-

shadcn-first 是什么?

shadcn-first is a Claude Code agent skill that >-.

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/getedgehq/skills/tree/main/shadcn-first

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

shadcn-first 是做什么的?

Someone maintains this code after you. Every hand-written div with bespoke classes and every style={{}} is a thing they keep alive, and it drifts. Hand-rolled UI also silently drops the craft that comes free with the library: focus rings, hover and active states, keyboard navigation, skeletons, empty states, ARIA.

The order. Never skip a step.

  1. Block. ui.shadcn.com/blocks has whole sidebars, dashboards, logins, data tables. Install the block.
  2. Component. If no block fits, use a component from the registry.
  3. Compose two or three components.
  4. Write it yourself. Only here, and the commit message must name which block or component you evaluated and why it did not fit.

Adapt the design to the component, not the component to the design. Brand and visual language are reached through theme variables in one theme, never per-screen CSS beside the component.

Tools, and which to use

Two MCP servers are configured. They do different jobs.

shadcn-official (npx shadcn@latest mcp) is project-aware: it reads the repo's components.json. Use it for the real work.

ToolUse it to
get_project_registriesconfirm the project is initialised at all
search_items_in_registriesfind the component for the job, fuzzy
list_items_in_registriessee everything available
view_items_in_registriesread a component's actual source and deps before using it
get_item_examples_from_registriescopy a real usage example instead of guessing the API
get_add_command_for_itemsget the exact npx shadcn add … line, then run it
get_audit_checklistrun after writing code. This is the gate.

shadcn (@jpisnice/shadcn-ui-mcp-server) is registry-wide and knows blocks and themes: list_blocks, get_block, list_themes, get_theme, get_component_demo. Use it for step 1 and for theming.

If a project has no components.json, the official tools error. Run npx shadcn@latest init first, then continue.

For AI chat surfaces use prompt-kit (prompt-kit.com, shadcn-compatible): chat-container, message, prompt-input, scroll-button, markdown, code-block, loader. Same rule, install rather than rebuild.

Components people re-invent instead of installing

sidebar (collapsible, with footer user menu), command (Cmd+K palette), table + TanStack data-table block, tabs, sheet, dialog, alert-dialog, popover, tooltip, skeleton, sonner (toasts), form (react-hook-form + zod), breadcrumb, resizable, scroll-area, avatar, badge, separator, dropdown-menu, select, collapsible, chart.

If you catch yourself building any of these by hand, stop and install it.

Keyboard shortcuts

Use Cmd+K for the command palette; that is the cmdk convention the command component ships with. Cmd+L is reserved by the browser for the address bar and cannot be intercepted reliably in Chrome. If someone asks for Cmd+L, bind Cmd+K, add Cmd+L opportunistically, and say why.

Done means measured, not claimed

Before reporting done, run get_audit_checklist and report the numbers:

  • custom UI lines removed
  • blocks and components installed
  • remaining style={{}} occurrences (grep -rc 'style={{' src/)
  • per screen: elements from components/ui/ vs hand-written

Anything still hand-written must stand there with a stated reason, not be overlooked. A screenshot is the proof that the screen renders; the counts are the proof that the rule was followed. Both, or it is not done.

Do not

  • No emojis in UI. Real SVG icons (Lucide ships with shadcn).
  • No text-in-circles for brand logos. Source real SVG paths: SimpleIcons > svgl.app > gilbarbara/logos > favicon.
  • Max one or two accent colours. No coloured left borders on cards. No gradient on every element.
  • Do not fork a component to change a colour. Change the theme variable.

Individual skills in this repo

This repo contains 15 individual skills — each has its own dedicated page.

getedgehq/agent-evals

Build evals for an AI agent that already does real work. Use when someone asks "how do I know my agent is right", wants to test an agent before trusting it, compare models on cost versus quality, or turn production failures into tests. Walks from first tasks and yes/no verifiers, to isolated environments, to a trace-driven improvement loop.

getedgehq/cli-ux-review

Audit a command-line tool for user-friendliness — clear situation / next-step / options in every output, colour-highlighted runnable commands, no raw jargon, no silent hangs. Invoke for "CLI UX audit", "review my CLI", "is this CLI intuitive", or before any CLI release.

getedgehq/generate-image

Generate images with OpenAI GPT Image 2 via the Codex CLI, billed through the user's ChatGPT Plus subscription (no OpenAI API key, no per-image API cost). Use when the user asks to create, generate, or make an image, picture, illustration, icon, hero graphic, or concept art from a text prompt.

getedgehq/harness-first

Diagnose and fix an unreliable, expensive, or unsafe LLM agent by auditing its harness (golden set, judge, cost caps, data layer, action approvals, tracing) before blaming or swapping the model. Use when someone says an agent is "burning tokens", "hallucinating", "brittle", gives inconsistent answers, asks whether to switch to a cheaper/better model, or wants to ship an agent or prompt change to customers.

getedgehq/http-error-triage

Run before concluding anything from an HTTP error on a third-party API. Separates a real credential/entitlement problem from a CDN or WAF block, a wrong endpoint, or a client-signature ban. Use whenever an API returns 401/403/402/429 and you are about to say "the key is dead", "credits are exhausted", "the plan lacks access", or "we are rate limited".

getedgehq/linkedin-media-prep

Convert, crop, resize, and compress images and videos for optimal LinkedIn upload quality and file size. Use when the user wants to prepare a photo, image, or video for LinkedIn (profile picture, cover photo, post image, article featured image, post video, or video ad), optimize file size for LinkedIn, crop and resize for LinkedIn dimensions, convert HEIC/RAW/PNG/MOV to LinkedIn-ready JPEG or MP4, or mentions LinkedIn media requirements, specs, or limits.

getedgehq/monid

>-

getedgehq/opendraft

An 18-agent pipeline that turns one topic line into a drafted

getedgehq/people-search

Find and rank professional people for recruiting, partnerships, sales, or research from user-provided data, public web sources, an authenticated search session, or a connected provider. Use for people discovery, LinkedIn or Sales Navigator search design, profile-list ranking, or provider filter translation.

getedgehq/product-launch-video

Turn a product URL, launch brief, or approved script into a production-ready launch video. Use for product reveals, feature announcements, SaaS launches, and narrated product films; not for generic explainers or editing existing footage.

getedgehq/rocketlist

Turn a CV into a shortlist of live startup roles from Rocketlist's public job board, including adjacent job titles the person would never have searched for, each with its published salary, the evidence for the fit, and a direct apply link. Use for "find roles I would be a strong fit for", career pivots, remote or VC-backed job hunts, and salary-visible role discovery.

getedgehq/security-audit-checklist

Run a comprehensive security audit across application code, cloud infrastructure, containers, CI/CD pipelines, and infrastructure-as-code. Covers privacy compliance, OWASP basics, secret leakage, API security, IAM misconfigurations, storage exposure, Kubernetes hardening, and network security. Use when the user asks to audit, review, or harden app or cloud security, check for secrets, scan for XSS/SQLi, verify security headers, review Terraform/CloudFormation, audit AWS/GCP/Azure configs, or perform any security-focused review.

getedgehq/strip-image-ai-metadata

Strip C2PA and AI-generation metadata from images (PNG, JPEG, WebP) to remove "Generated by AI" / "ChatGPT" / "DALL-E" labels that platforms like LinkedIn, Instagram, and X display. Use when the user wants to clean AI-generated images before posting, remove AI attribution from photos, strip C2PA manifests, sanitize image metadata for professional use, or verify whether an image contains C2PA data.

getedgehq/top-down-comms

>-

getedgehq/workplan

Create, update, or close work plans for multi-step tasks. Use when starting refactors, bug lists, feature work, migrations, or any task with 2+ steps. Also use after auto-compaction to re-orient. Triggers: "workplan", "work plan", "create a plan", "what's the plan", "where was I", or when Claude detects

相关技能