# LunchPick - 점심 메뉴 추천 앱 > 글로벌 규칙(~/.claude/CLAUDE.md) 상속. 상세 가이드는 [AGENTS.md](AGENTS.md) 참조. ## 프로젝트 개요 - **앱 이름**: 오늘 뭐 먹Z? - **패키지**: `com.naturebridgeai.lunchpick` - **SDK**: Flutter 3.8.1+ / Dart 3.8.1+ ## 핵심 기술 스택 | 분류 | 패키지 | |------|--------| | 상태관리 | Riverpod + riverpod_generator | | 로컬저장 | Hive + hive_generator | | 네비게이션 | go_router | | 네트워크 | Dio + dio_cache_interceptor | | 위치/권한 | geolocator, permission_handler | | 광고 | google_mobile_ads | ## 프로젝트 구조 ```text lib/ ├── core/ │ ├── constants/ # app_constants, app_colors, api_keys │ ├── network/ # network_client, interceptors │ ├── services/ # permission, geocoding, ad, bluetooth, notification │ ├── errors/ # app_exceptions, network_exceptions │ └── widgets/ # 공통 위젯 (loading, error, empty_state) ├── data/ │ ├── api/ # naver_api_client, naver GraphQL/LocalSearch │ ├── datasources/ # local, remote (naver_html_parser 등) │ ├── repositories/ # *_repository_impl │ └── models/ # DTO, Hive adapters ├── domain/ │ ├── entities/ # Restaurant, VisitRecord, UserSettings, WeatherInfo │ ├── repositories/ # 인터페이스 정의 │ └── usecases/ # 비즈니스 로직 └── presentation/ ├── providers/ # Riverpod providers ├── view_models/ # 화면 상태 관리 └── pages/ # splash, main, random_selection, restaurant_list, # calendar, settings, share ``` ## 주요 도메인 엔티티 - `Restaurant`: 음식점 정보 (이름, 카테고리, 위치, 영업시간 등) - `VisitRecord`: 방문 기록 - `RecommendationRecord`: 추천 기록 - `UserSettings`: 사용자 설정 (반경, 카테고리 필터 등) - `WeatherInfo`: 날씨 정보 (추천 알고리즘 활용) ## 필수 명령어 ```bash # 의존성 설치 flutter pub get # 코드 생성 (Hive adapters, Riverpod, JSON) dart run build_runner build --delete-conflicting-outputs # 개발 중 자동 생성 dart run build_runner watch --delete-conflicting-outputs # 분석 & 테스트 flutter analyze flutter test flutter test test_hive # Hive 변경 시 # 릴리즈 빌드 flutter build appbundle --release ``` ## Agent 응답 형식 ```text [Model Name] - [Agent Name]. I have reviewed all the following rules: [categories]. Proceeding with the task. Master! ``` ### Available Agents | Agent | 용도 | |-------|------| | Direct Implementation | 직접 구현 | | flutter-ui-designer | UI/UX 디자인 | | flutter-architecture-designer | 아키텍처 설계 | | flutter-network-engineer | 네트워크/API | | flutter-qa-engineer | QA/테스트 | | app-launch-validator | 출시 검증 | | aso-optimization-expert | ASO 최적화 | ## 주의사항 - `api_keys.dart`는 커밋 금지 (로컬 생성) - Android/iOS 빌드 설정 변경 시 승인 필요 - Hive 스키마 변경 시 마이그레이션 고려 - 네이버 API 호출 시 캐시 정책 준수