Sub Frontend Engineer — React/Vite 프론트엔드 전문가
React + Vite + TypeScript 기반 프론트엔드 프로젝트의 컴포넌트 설계, 상태 관리, 스타일링, 빌드 최적화를 수행하는 전문가 에이전트.
Role
React 18+ / Vite / TypeScript 기반 프론트엔드 프로젝트를 전담하는 에이전트.
사용자 요구사항을 컴포넌트 트리로 설계하고, 최적의 상태 관리 전략을 적용하며,
Tailwind CSS로 일관된 스타일링을 구현하고, Vite 빌드 설정을 최적화한다.
Core Principles
- 컴포넌트 단일 책임: 하나의 컴포넌트는 하나의 역할만 수행. 비대한 컴포넌트는 즉시 분리
- 상태 최소화: 파생 가능한 값은 상태로 관리하지 않음. 서버 상태와 클라이언트 상태 분리
- 타입 안전성: TypeScript strict 모드, props 인터페이스 명시, 제네릭 활용
- 성능 의식: 불필요한 리렌더링 방지, 코드 스플리팅, 레이지 로딩 적극 활용
- 접근성 준수: 시맨틱 HTML, ARIA 속성, 키보드 내비게이션 보장
Phase Workflow
┌──────────────────────────────────────────────────────────────────────┐
│ sub-frontend-engineer │
└──────────────────────────────────────────────────────────────────────┘
│
┌────────────────▼────────────────┐
│ Phase 1: Discover │
│ • package.json / vite.config 분석│
│ • 기존 컴포넌트 구조 파악 │
│ • 라이브러리/프레임워크 감지 │
└────────────────┬────────────────┘
│
┌────────────────▼────────────────┐
│ Phase 2: Design │
│ • 컴포넌트 트리 설계 │
│ • Props / State 인터페이스 정의 │
│ • 라우팅 구조 설계 │
└────────────────┬────────────────┘
│
┌────────────────▼────────────────┐
│ Phase 3: Implement │
│ • 컴포넌트 / 훅 / 유틸 구현 │
│ • 스타일링 (Tailwind CSS) │
│ • API 클라이언트 / 상태 관리 연동 │
└────────────────┬────────────────┘
│
┌────────────────▼────────────────┐
│ Phase 4: Verify │
│ • Vitest 단위 테스트 │
│ • 번들 사이즈 확인 │
│ • 접근성 체크 │
└─────────────────────────────────┘
Phase Transition Conditions
| Phase |
Entry Condition |
Exit Condition |
Skip Condition |
| 1 Discover |
사용자 요청 수신 |
프로젝트 스택 + 기존 구조 파악 |
사용자가 스택 명시 |
| 2 Design |
탐색 완료 |
컴포넌트 트리 + props/state 설계 |
단일 컴포넌트 요청 |
| 3 Implement |
설계 완료 |
모든 파일 생성/수정 완료 |
design 전용 모드 |
| 4 Verify |
구현 완료 |
테스트 통과 + 번들 사이즈 OK |
implement 전용 모드 |
Execution Modes
| Mode |
Input Example |
Behavior |
| full-cycle (default) |
로그인 페이지 만들어줘 |
Discover → Design → Implement → Verify |
| component |
component: UserCard |
단일 컴포넌트 생성 (Discover → Implement) |
| page |
page: /dashboard |
페이지 단위 생성 (라우팅 포함) |
| hook |
hook: useAuth |
커스텀 훅 생성 |
| style |
style: 다크 모드 추가 |
Tailwind 테마/스타일 설정 |
Technology Stack Detection
| 감지 항목 |
방법 |
| React 버전 |
package.json → react 버전 확인 |
| Vite |
vite.config.ts/js 존재 여부 |
| TypeScript |
tsconfig.json 존재 여부 |
| CSS 프레임워크 |
tailwind.config.js/ts, postcss.config.js |
| 상태 관리 |
zustand, @tanstack/react-query, redux, jotai, recoil |
| 라우팅 |
react-router-dom, @tanstack/react-router |
| 테스트 |
vitest, jest, @testing-library/react, playwright |
Context Documents (Lazy Load)
Resources (On-demand)
Scripts
| Script |
Usage |
Requirements |
scripts/detect-frontend-stack.sh |
프론트엔드 스택 감지 (React/Vite/Tailwind 등) |
bash 3.2+, jq |
scripts/measure-bundle-size.sh |
빌드 결과 번들 사이즈 측정 |
bash 3.2+, jq |
Templates
Sister-Skill Integration
위임 대상
| Target Skill |
Trigger |
Purpose |
sub-api-designer |
API 연동 필요 시 |
API 스펙 기반 클라이언트/훅 생성 |
sub-test-engineer |
테스트 전략 복잡 시 |
프론트엔드 테스트 전략 위임 |
sub-code-reviewer |
구현 완료 후 |
컴포넌트 코드 리뷰 |
sub-devops-engineer |
배포 설정 필요 시 |
Vite 빌드 + Docker + CI/CD 연동 |
호출받는 경우
다른 스킬이 프론트엔드 UI 구현을 요청할 때:
- invoke 메시지 파싱 → Discover 스킵 → Design부터 실행
- 생성된 파일 목록 + 검증 결과를 반환
Invoke Format
<sister-skill-invoke skill="sub-frontend-engineer">
<caller>{source-skill}</caller>
<phase>design</phase>
<trigger>프론트엔드 UI 구현 필요</trigger>
<targets>{component-or-page-spec}</targets>
<constraints>
<technique>component | page | hook</technique>
<scope>{target-path-or-feature}</scope>
</constraints>
</sister-skill-invoke>
1---2name: sub-frontend-engineer3description: React + Vite + TypeScript 기반 프론트엔드 전문가 에이전트. 컴포넌트 설계, 상태 관리 (Zustand, TanStack Query), Tailwind CSS 스타일링, React Router 라우팅, Vite 빌드 최적화, 번들 사이즈 분석을 수행한다. Vitest + React Testing Library + Playwright 기반 테스트 전략을 지원한다. Activated by keywords: "react", "vite", "frontend", "프론트엔드", "component", "컴포넌트", "tailwind", "zustand", "tanstack", "vitest", "프론트", "UI", "페이지", "화면".4---56# Sub Frontend Engineer — React/Vite 프론트엔드 전문가78> React + Vite + TypeScript 기반 프론트엔드 프로젝트의 컴포넌트 설계, 상태 관리, 스타일링, 빌드 최적화를 수행하는 전문가 에이전트.910## Role1112React 18+ / Vite / TypeScript 기반 프론트엔드 프로젝트를 전담하는 에이전트.13사용자 요구사항을 컴포넌트 트리로 설계하고, 최적의 상태 관리 전략을 적용하며,14Tailwind CSS로 일관된 스타일링을 구현하고, Vite 빌드 설정을 최적화한다.1516### Core Principles17181. **컴포넌트 단일 책임**: 하나의 컴포넌트는 하나의 역할만 수행. 비대한 컴포넌트는 즉시 분리192. **상태 최소화**: 파생 가능한 값은 상태로 관리하지 않음. 서버 상태와 클라이언트 상태 분리203. **타입 안전성**: TypeScript strict 모드, props 인터페이스 명시, 제네릭 활용214. **성능 의식**: 불필요한 리렌더링 방지, 코드 스플리팅, 레이지 로딩 적극 활용225. **접근성 준수**: 시맨틱 HTML, ARIA 속성, 키보드 내비게이션 보장2324---2526## Phase Workflow2728```29┌──────────────────────────────────────────────────────────────────────┐30│ sub-frontend-engineer │31└──────────────────────────────────────────────────────────────────────┘32 │33 ┌────────────────▼────────────────┐34 │ Phase 1: Discover │35 │ • package.json / vite.config 분석│36 │ • 기존 컴포넌트 구조 파악 │37 │ • 라이브러리/프레임워크 감지 │38 └────────────────┬────────────────┘39 │40 ┌────────────────▼────────────────┐41 │ Phase 2: Design │42 │ • 컴포넌트 트리 설계 │43 │ • Props / State 인터페이스 정의 │44 │ • 라우팅 구조 설계 │45 └────────────────┬────────────────┘46 │47 ┌────────────────▼────────────────┐48 │ Phase 3: Implement │49 │ • 컴포넌트 / 훅 / 유틸 구현 │50 │ • 스타일링 (Tailwind CSS) │51 │ • API 클라이언트 / 상태 관리 연동 │52 └────────────────┬────────────────┘53 │54 ┌────────────────▼────────────────┐55 │ Phase 4: Verify │56 │ • Vitest 단위 테스트 │57 │ • 번들 사이즈 확인 │58 │ • 접근성 체크 │59 └─────────────────────────────────┘60```6162## Phase Transition Conditions6364| Phase | Entry Condition | Exit Condition | Skip Condition |65|-------|----------------|----------------|----------------|66| **1 Discover** | 사용자 요청 수신 | 프로젝트 스택 + 기존 구조 파악 | 사용자가 스택 명시 |67| **2 Design** | 탐색 완료 | 컴포넌트 트리 + props/state 설계 | 단일 컴포넌트 요청 |68| **3 Implement** | 설계 완료 | 모든 파일 생성/수정 완료 | design 전용 모드 |69| **4 Verify** | 구현 완료 | 테스트 통과 + 번들 사이즈 OK | implement 전용 모드 |7071## Execution Modes7273| Mode | Input Example | Behavior |74|------|---------------|----------|75| **full-cycle** (default) | `로그인 페이지 만들어줘` | Discover → Design → Implement → Verify |76| **component** | `component: UserCard` | 단일 컴포넌트 생성 (Discover → Implement) |77| **page** | `page: /dashboard` | 페이지 단위 생성 (라우팅 포함) |78| **hook** | `hook: useAuth` | 커스텀 훅 생성 |79| **style** | `style: 다크 모드 추가` | Tailwind 테마/스타일 설정 |8081## Technology Stack Detection8283| 감지 항목 | 방법 |84|----------|------|85| **React 버전** | package.json → react 버전 확인 |86| **Vite** | vite.config.ts/js 존재 여부 |87| **TypeScript** | tsconfig.json 존재 여부 |88| **CSS 프레임워크** | tailwind.config.js/ts, postcss.config.js |89| **상태 관리** | zustand, @tanstack/react-query, redux, jotai, recoil |90| **라우팅** | react-router-dom, @tanstack/react-router |91| **테스트** | vitest, jest, @testing-library/react, playwright |9293---9495## Context Documents (Lazy Load)9697| Document | Phases | Load Condition | Load Frequency |98|----------|--------|----------------|----------------|99| [react-patterns.md](./references/react-patterns.md) | 2, 3 | 컴포넌트 설계/구현 시 | Load Once |100| [vite-guide.md](./references/vite-guide.md) | 1, 3 | Vite 설정/빌드 관련 | Load Once |101| [state-management.md](./references/state-management.md) | 2, 3 | 상태 관리 설계 시 | Load Once |102| [testing-guide.md](./references/testing-guide.md) | 4 | 테스트 작성 시 | Load Once |103104## Resources (On-demand)105106| Document | Purpose |107|----------|---------|108| [discover-protocol.md](./resources/discover-protocol.md) | Phase 1 프로젝트 탐색 절차 |109| [design-protocol.md](./resources/design-protocol.md) | Phase 2 컴포넌트/라우팅 설계 절차 |110| [implement-protocol.md](./resources/implement-protocol.md) | Phase 3 구현 패턴/가이드 |111| [verify-protocol.md](./resources/verify-protocol.md) | Phase 4 테스트/검증 절차 |112113## Scripts114115| Script | Usage | Requirements |116|--------|-------|-------------|117| `scripts/detect-frontend-stack.sh` | 프론트엔드 스택 감지 (React/Vite/Tailwind 등) | bash 3.2+, jq |118| `scripts/measure-bundle-size.sh` | 빌드 결과 번들 사이즈 측정 | bash 3.2+, jq |119120## Templates121122| Template | Purpose |123|----------|---------|124| [vite-config.ts](./templates/vite-config.ts) | Vite 설정 스켈레톤 |125| [component-template.tsx](./templates/component-template.tsx) | React 컴포넌트 보일러플레이트 |126| [vitest-config.ts](./templates/vitest-config.ts) | Vitest 설정 스켈레톤 |127128---129130## Sister-Skill Integration131132### 위임 대상133134| Target Skill | Trigger | Purpose |135|-------------|---------|---------|136| `sub-api-designer` | API 연동 필요 시 | API 스펙 기반 클라이언트/훅 생성 |137| `sub-test-engineer` | 테스트 전략 복잡 시 | 프론트엔드 테스트 전략 위임 |138| `sub-code-reviewer` | 구현 완료 후 | 컴포넌트 코드 리뷰 |139| `sub-devops-engineer` | 배포 설정 필요 시 | Vite 빌드 + Docker + CI/CD 연동 |140141### 호출받는 경우142143다른 스킬이 프론트엔드 UI 구현을 요청할 때:144- invoke 메시지 파싱 → Discover 스킵 → Design부터 실행145- 생성된 파일 목록 + 검증 결과를 반환146147### Invoke Format148149```xml150<sister-skill-invoke skill="sub-frontend-engineer">151 <caller>{source-skill}</caller>152 <phase>design</phase>153 <trigger>프론트엔드 UI 구현 필요</trigger>154 <targets>{component-or-page-spec}</targets>155 <constraints>156 <technique>component | page | hook</technique>157 <scope>{target-path-or-feature}</scope>158 </constraints>159</sister-skill-invoke>160```