# AGENTS.md
This file provides guidance to Codex (Codex.ai/code) when working with code in this repository.
---
## 프로젝트 개요
**라온누리 (Raonnuri)** - 초등학생 대상 창작 글쓰기 교육 플랫폼
**Tech Stack**: Next.js 16, React 19, Chakra UI v3, Firebase Auth, TypeScript
---
## 개발 명령어
```bash
npm run dev # 개발 서버 (포트 3001, webpack 사용)
npm run build # 프로덕션 빌드
npm run lint # ESLint 실행
npx tsc --noEmit # 타입 체크 (빌드 전 필수)
```
**주의**:
- Dev server는 포트 3001 사용
- React Compiler 활성화
- 커밋 전 타입 체크 필수 (`npx tsc --noEmit`)
---
## 핵심 아키텍처
### Manager Pattern (필수)
**모든 데이터 작업은 Manager 사용 (서비스 직접 호출 금지)**
```typescript
import { teamManager, userManager } from "@/managers";
// ✅ Good
const teams = await teamManager.getMyTeams();
const users = await userManager.getUsersByTeam(teamId);
// ❌ Bad - 서비스 직접 호출 금지
```
**Available Managers**:
- `teamManager` - Team CRUD, member management, security level
- `userManager` - User CRUD
- `draftManager` - localStorage + Realtime DB 하이브리드
- `writingSessionManager` - Real-time monitoring
- `writingManager`, `topicManager`, `feedManager`
**상세**: `API_SPEC.md` 참조
---
### Data Model 핵심 원칙
**Firebase Auth = Single Source of Truth** (이름, 이메일, 사진)
- Firestore Users 컬렉션: `uid`, `createdAt`, `lastLoginAt`, `settings`만 저장
- UI User 객체: Firebase Auth + Firestore 자동 결합
- 팀별 닉네임: `team.members[uid].nickname` (User 아님)
- 멤버 확인: `uid in team.members`
**상세**: `DATA_MODELS.md` 참조
---
## 필수 개발 규칙
### 다국어 지원 (i18n)
**모든 새로운 UI 및 페이지는 다국어 지원이 필수입니다.**
```typescript
// ✅ Good
import {useTranslations} from "next-intl";
import {useRouter} from "@/i18n/routing";
const t = useTranslations('newPage');
return