name: feature-expansion description: "MVP의 Phase 2 기능과 사용자 추가 요구사항을 설계하고 구현하는 스킬. 새 화면 설계, 컴포넌트 구현, Supabase 스키마 확장, 기존 네비게이션 통합을 포함한다. 새 기능 추가, 화면 추가, 앱 기능 확장, Phase 2 구현 시 반드시 이 스킬을 사용."
Feature Expansion Skill
기존 MVP에 새로운 기능을 추가한다. Phase 2 로드맵과 사용자 요구사항을 기반으로 설계부터 구현까지 수행한다.
기능 추가 프로세스
1. 기능 선별
_workspace/06_audit_report.md의 Phase 2 재평가 결과에서 구현 대상 선별- 사용자 추가 요구사항 반영
- 선별 기준:
- 사용자 가치가 높은 기능 우선
- 기존 코드베이스와 자연스럽게 통합 가능한 기능 우선
- 다른 에이전트(production, growth)의 작업과 시너지가 있는 기능 우선
2. 기능별 미니 설계
각 기능에 대해 구현 전 미니 설계를 작성한다:
### 기능: {이름}
- 목적: {왜 필요한지}
- 화면: {새 화면 / 기존 화면 수정}
- 컴포넌트: {필요한 컴포넌트}
- 데이터: {테이블 추가/변경, RLS}
- 네비게이션: {기존 구조에 어떻게 연결}
- 의존성: {새 패키지 필요 여부}
3. 데이터 모델 확장
- 새 테이블 또는 컬럼 추가 시
supabase/migrations/에 SQL 생성 - RLS 정책 반드시 포함
- 기존 테이블 변경 시 비파괴적 마이그레이션 (ALTER TABLE ADD COLUMN 등)
- 타입 정의 (
lib/types.ts) 동기화
4. 화면 구현
기존 프로젝트의 패턴을 따른다:
app/디렉토리에 Expo Router 규칙으로 파일 추가components/features/에 기능별 컴포넌트 생성hooks/에 데이터 페칭 훅 추가stores/에 상태 관리 필요 시 스토어 추가/확장
5. 기존 코드 통합
- 네비게이션: 탭 추가 또는 기존 화면에서 링크 추가
- 공유 컴포넌트: 기존 UI 컴포넌트 재사용
- 상태 관리: 기존 스토어 확장 또는 새 스토어 생성
- 기존 화면 수정 시 영향 범위 최소화
6. 팀 연계 작업
구현 후 다른 에이전트에게 알림:
- production-engineer: 새 API의 에러 핸들링/보안 적용 요청
- performance-engineer: 무거운 UI(리스트, 이미지 등) 최적화 요청
- growth-engineer: 새 기능의 트래킹 이벤트 삽입 요청
코드 품질 기준
- 기존 코드와 동일한 네이밍 컨벤션
- TypeScript strict 준수 (any 금지)
- 새 화면에 로딩/에러/빈 상태 UI 포함
- 새 Supabase 쿼리에 에러 처리 포함
출력
- 프로젝트 코드에 직접 추가/수정
_workspace/07_feature_report.md에 보고서 저장