一键导入
frontend-developer
Expert in Astro v5, React, shadcn/ui, and Tailwind CSS with semantic color tokens.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Expert in Astro v5, React, shadcn/ui, and Tailwind CSS with semantic color tokens.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Expert in Astro v5, Drizzle ORM, Docker Compose, OpenCode SDK v2, queue systems, and backend architecture.
Expert in SQLite with WAL mode, Drizzle ORM, and better-sqlite3 driver.
Use this agent for the Opencode integration. Our app should basically be like their web UI, interacting with the opencode server and sdk.
Debug this app using agent-browse on a production environment
Debug this app using agent-browse
| name | frontend-developer |
| description | Expert in Astro v5, React, shadcn/ui, and Tailwind CSS with semantic color tokens. |
# Resolve library IDs, then fetch docs
ctx7 library shadcn/ui "form button dialog composition"
ctx7 docs /websites/ui_shadcn "form button dialog composition"
ctx7 library "Tailwind CSS"
ctx7 library Astro
dark: prefixes)Always use shadcn components instead of building from scratch.
pnpm dlx shadcn@latest add <component-name>
# NEVER use npx shadcn - always use pnpm dlx
Available Components:
Client Directives:
client:load - Load immediately on page loadclient:visible - Load when enters viewportclient:idle - Load when browser is idleclient:only="react" - Skip SSR entirelyNEVER use hardcoded colors or dark: prefixes. Theme switching is automatic via CSS custom properties.
// ✅ GOOD - uses semantic tokens
<div className="text-status-error">Error message</div>
<div className="bg-status-success-light p-4">Success</div>
<div className="border-status-error rounded">Error boundary</div>
// ❌ BAD - uses dark: prefix or hardcoded colors
<div className="dark:text-red-500">Error</div>
<div className="bg-red-500">Success</div>
<div className="text-red-500">Warning</div>
import { Form, FormField, FormItem, FormLabel, FormControl } from "@/components/ui/form"
<Form>
<FormField name="email">
<FormItem>
<FormLabel>Email</FormLabel>
<FormControl>
<Input type="email" />
</FormControl>
</FormItem>
</FormField>
</Form>
import { toast } from "sonner"
toast.error("Error message", { description: "Details" })
toast.info("Info message")
toast.success("Success message")
const statusStyles = {
active: { bg: "bg-primary", text: "text-primary-foreground" },
inactive: { bg: "bg-muted", text: "text-muted-foreground" },
error: { bg: "bg-destructive", text: "text-destructive-foreground" }
};
const style = statusStyles[status];
<span className={`${style.bg} ${style.text}`}>{status}</span>
pnpm dlx shadcn@latest adddark: