원클릭으로
react
Writes React components and hooks using TypeScript. Use when creating or modifying React components, hooks, or JSX.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Writes React components and hooks using TypeScript. Use when creating or modifying React components, hooks, or JSX.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Use when executing implementation plans with independent tasks in the current session
Use when you have a spec or requirements for a multi-step task, before touching code
Fast, MVP-focused grilling session for plans, prototypes, designs, or feature ideas. Use when the user wants to stress-test direction, clarify assumptions, reduce scope, or get challenged without a long decision-tree interview.
Execute and orchestrate multiple AI agent CLIs (agy, Codex, Cursor, Claude Code, Pi) for getting alternative opinions, comparing approaches, or leveraging different AI models' strengths. Use when the user explicitly mentions agent names like "ask agy", "ask cursor", "ask codex", "ask pi", "use composer", "use pi", "try grok", or when needing diverse perspectives on complex problems, alternative implementation approaches, or multi-agent collaboration.
Summarize a video (URL or local path) by pulling captions first, falling back to audio-only transcription, and optionally extracting frames for visual summaries. Use when the user pastes a YouTube/Vimeo/X/etc URL, points at a local video file, or asks to summarize, watch, or extract takeaways from a video. Triggers on "summarize this video", "what's in this video", "watch this", URLs ending in /watch, /shorts, common video extensions (.mp4/.mov/.mkv/.webm).
| name | react |
| description | Writes React components and hooks using TypeScript. Use when creating or modifying React components, hooks, or JSX. |
import React from 'react' — import individuallyReact.* namespace (e.g., React.useState, React.ReactNode)// ✓ Good
import { useState, type ReactNode } from 'react';
export default function MyComponent() {
return <div>Hello</div>;
}
// ✗ Bad
import React from 'react';
function MyComponent(): JSX.Element { ... }
export default MyComponent;
useState generic only for unions/complex types (not for string, boolean,
number)useCallback for same-component functionsuseCallback acceptable for functions returned from custom hooks// ✓ Good
const [name, setName] = useState(''); // no generic needed
const [status, setStatus] = useState<'a' | 'b'>('a'); // union needs generic
useEffect(() => {
async function fetchData() {
const res = await fetch('/api');
}
void fetchData();
}, []);
displayName only for forwardRef components<> only for multiple siblings// ✓ forwardRef with displayName
const MyInput = forwardRef<HTMLInputElement, Props>((props, ref) => (
<input ref={ref} {...props} />
));
MyInput.displayName = 'MyInput';
// ✓ Fragment for siblings
return (
<>
<div>First</div>
<div>Second</div>
</>
);
// ✗ Unnecessary fragment
return (
<>
<div>Only child</div>
</>
);