بنقرة واحدة
react-implementation
Sossbar React/Next.js 구현 패턴 스킬. implementer 에이전트가 컴포넌트, 훅, API 함수, Zod 스키마를 작성할 때 사용.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Sossbar React/Next.js 구현 패턴 스킬. implementer 에이전트가 컴포넌트, 훅, API 함수, Zod 스키마를 작성할 때 사용.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Sossbar 도메인 배치 및 파일 구조 계획 스킬. planner 에이전트가 feature 요청을 받아 어디에 무엇을 만들지 결정할 때 사용.
MUST READ for all code authoring. 코드를 작성·구조화·리뷰할 때 항상 이 원칙을 판단 기준으로 삼는다. 응집도·결합도·의존성·추상화·인터페이스·비즈니스 로직 분리·DRY·YAGNI·네이밍·레이어 의존성 방향 — 모든 설계 결정의 근거가 여기에 있다. 요청이 설계 관련이든 구현 관련이든 상관없이 적용한다.
Sossbar Git Flow 워크플로우 실행 스킬. "이슈 만들어줘", "브랜치 만들어줘", "PR 만들어줘", "feature 시작해줘", "hotfix 시작해줘", "작업 시작해줘", "이슈 번호 {N}으로 브랜치 만들어줘", "커밋하고 PR 올려줘" 등 Git Flow 관련 작업 요청이면 반드시 이 스킬을 사용할 것. 이슈 생성 → 브랜치 생성 → PR 생성의 전체 워크플로우 또는 개별 단계도 처리한다.
Sossbar 코드 품질 검증 스킬. guardian 에이전트가 구현된 코드의 타입, 린트, 아키텍처 규칙을 검증하고 수정할 때 사용.
Sossbar feature 구현 오케스트레이터. "~기능 만들어줘", "~컴포넌트 추가해줘", "~페이지 구현해줘", "~훅 만들어줘", "~API 연동해줘", "~도메인에 추가해줘", "기능 구현해줘", "feature 추가" 등 새 기능 구현 요청이면 반드시 이 스킬을 사용할 것. "다시 해줘", "수정해줘", "보완해줘", "이전 결과 개선해줘" 등 재실행 요청에도 트리거된다.
| name | react-implementation |
| description | Sossbar React/Next.js 구현 패턴 스킬. implementer 에이전트가 컴포넌트, 훅, API 함수, Zod 스키마를 작성할 때 사용. |
// 화살표 함수 + named export (default export 금지)
import type { ComponentProps } from 'react';
import { cn } from '@/shared/lib/cn';
import { cva } from 'class-variance-authority';
const cardVariants = cva('base-class', {
variants: {
size: { sm: 'p-2', md: 'p-4' },
},
defaultVariants: { size: 'md' },
});
interface ProfileCardProps extends ComponentProps<'div'> {
userId: string;
size?: 'sm' | 'md';
}
export const ProfileCard = ({ userId, size, className, ...props }: ProfileCardProps) => {
return <div className={cn(cardVariants({ size }), className)} {...props} />;
};
// query-keys.ts
export const profileKeys = {
all: ['profile'] as const,
byId: (id: string) => [...profileKeys.all, id] as const,
};
// queries.ts
import { queryOptions } from '@tanstack/react-query';
import { fetchProfileById } from './fetch-profile-by-id';
export const profileByIdQueryOptions = (id: string) =>
queryOptions({
queryKey: profileKeys.byId(id),
queryFn: () => fetchProfileById(id),
});
// use-profile.ts
import { useSuspenseQuery } from '@tanstack/react-query';
import { profileByIdQueryOptions } from '../api/queries';
export const useProfile = (id: string) => {
return useSuspenseQuery(profileByIdQueryOptions(id));
};
// fetch-profile-by-id.ts
import { apiClient } from '@/shared/lib/api';
import { profileSchema } from '../types/profile.types';
export const fetchProfileById = async (id: string) => {
const res = await apiClient.get(`/profiles/${id}`);
return profileSchema.parse(res.data);
};
// profile.types.ts
import { z } from 'zod';
export const profileSchema = z.object({
id: z.string(),
name: z.string(),
bio: z.string().optional(),
});
export type Profile = z.infer<typeof profileSchema>;
// mutations.ts
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { updateProfile } from './update-profile';
import { profileKeys } from './query-keys';
export const useUpdateProfile = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: updateProfile,
onSuccess: (_, variables) => {
queryClient.invalidateQueries({ queryKey: profileKeys.byId(variables.id) });
},
});
};
@/shared/components/button — Button 컴포넌트@/shared/components/input — Input 컴포넌트@/shared/components/dialog — Dialog 컴포넌트@/shared/lib/cn — cn() 유틸@/shared/lib/url — URL 유틸@/shared/lib/login-modal — 로그인 모달 유틸// 1. builtin
// 2. external (react, next, @tanstack 등)
// 3. internal (@/features, @/shared, @/app)
// 4. type imports
import type { ... } from '...';
// 5. index imports
// 6. unknown
| 주제 | 파일 | 읽어야 할 때 |
|---|---|---|
| TanStack Query SSR 기본 | references/tanstack-query-ssr.md | Hydration API, prefetch + dehydrate/hydrate 패턴 구현 시 |
| TanStack Query Advanced SSR | references/tanstack-query-advanced-ssr.md | Server Component에서 프리페치, 스트리밍, pending 쿼리 dehydrate 구현 시 |
| Next.js App Router | references/nextjs-app-router.md | Server/Client Component 경계 설계, 데이터 페칭, Suspense, 파일 컨벤션 확인 시 |