원클릭으로
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: