ワンクリックで
component-generator
Generate Shadcn/ui components following project conventions
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Generate Shadcn/ui components following project conventions
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Automated PR review, fixing, CI monitoring, and merging with hybrid batch/individual strategy
Test and validate Genkit AI flows with sample inputs
Implements top 3-5 priority GitHub issues in parallel using git worktrees and separate subagents, then creates PRs for each. Use when you want to tackle multiple issues simultaneously.
Analyzes open GitHub issues, prioritizes them by roadmap impact, determines parallel workability with git worktrees, and creates a plan to work on multiple issues simultaneously using sub-agents. Use when planning parallel development work.
| name | component-generator |
| description | Generate Shadcn/ui components following project conventions |
| argument-hint | [component-type] [--variant VARIANT] [--props PROPS] [--path PATH] |
| allowed-tools | Bash, Read, Write, Glob |
Generate Shadcn/ui and custom components following Planar Nexus conventions.
/component-generator button
/component-generator card --variant outlined
/component-generator input --props "label,placeholder,onChange,value"
/component-generator deck-list --path src/components/deck-builder
import { Button } from "@/components/ui/button";
import { cn } from "@/lib/utils";
interface CustomButtonProps {
variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link";
size?: "default" | "sm" | "lg" | "icon";
children: React.ReactNode;
onClick?: () => void;
className?: string;
disabled?: boolean;
}
export function CustomButton({
variant = "default",
size = "default",
children,
onClick,
className,
disabled,
}: CustomButtonProps) {
return (
<Button
variant={variant}
size={size}
onClick={onClick}
className={cn(className)}
disabled={disabled}
>
{children}
</Button>
);
}
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { cn } from "@/lib/utils";
interface CustomCardProps {
title?: string;
description?: string;
children: React.ReactNode;
footer?: React.ReactNode;
className?: string;
}
export function CustomCard({
title,
description,
children,
footer,
className,
}: CustomCardProps) {
return (
<Card className={cn(className)}>
{(title || description) && (
<CardHeader>
{title && <CardTitle>{title}</CardTitle>}
{description && <CardDescription>{description}</CardDescription>}
</CardHeader>
)}
<CardContent>{children}</CardContent>
{footer && <CardFooter>{footer}</CardFooter>}
</Card>
);
}
/src/components/ui/@/ path aliasescn() utility for class name mergingIf component doesn't exist, offers to install:
npx shadcn@latest add <component>
src/components/
├── ui/ # Shadcn/ui primitives
├── deck-builder/ # Feature-specific components
├── game/ # Game-related components
└── layout/ # Layout components
// Shadcn/ui components
import { Button } from "@/components/ui/button";
// Custom components
import { CardDisplay } from "@/components/game/card-display";
// Utilities
import { cn } from "@/lib/utils";
interface over type for component propsCardDisplayPropsclassName?: string for all wrapper componentschildren: React.ReactNode for content slotscn() for conditional classes/component-generator deck-stats --props "deck,format,curve" --path src/components/deck-builder
/component-generator popover
# If not exists, will suggest: npx shadcn@latest add popover
/component-generator combat-stack --path src/components/game
Generated components include:
Skill will detect existing components and offer to:
ButtonOutlined)Will suggest running:
npx shadcn@latest add <component>
Verifies path aliases in tsconfig.json:
{
"compilerOptions": {
"paths": {
"@/*": ["./src/*"]
}
}
}