# 계획서: task-126.1 InsuWiki 누락 수정 + Firebase 배포 준비

작성자: 라(Ra) 개발3팀장
작성일: 2026-03-02

## 작업 개요

InsuWiki 프로젝트(/home/jay/projects/insuwiki/)에서 누락된 타입 수정, Firebase 시크릿 등록, Firestore 규칙 추가, 배포 스크립트 작성을 수행한다.

## 서브태스크 분해 및 배정

| # | 서브태스크 | 담당 | 파일 |
|---|---|---|---|
| 1 | InsuranceChunk.sourceType 타입 확장 확인 및 수정 | GLM-5 | nextapp/src/types/firestore.ts |
| 2 | Firebase 시크릿 등록 (GEMINI_API_KEY 등) | GLM-5 | firebase 시크릿 명령 또는 .env 파일 |
| 3 | firestore.rules 누락 컬렉션 규칙 추가 | GLM-5 | firestore.rules |
| 4 | Firebase 배포 스크립트 작성 | GLM-5 | scripts/deploy.sh |
| 5 | 결과물 보고서 생성 | GLM-5 | memory/reports/task-126.1.md |
| 6 | .done 파일 생성 | GLM-5 | memory/events/task-126.1.done |

## 팀원 배정

- 오픈클로(GLM-5) 단독 순차 작업 (spawn 사용 금지)

## 실행 순서

1. 작업 지시서 전체 정독
2. 타입 파일 분석 → sourceType 수정 사항 파악 및 적용
3. 시크릿 등록 방법 확인 → firebase functions:secrets:set 명령 계획 또는 스크립트에 포함
4. firestore.rules 현행 분석 → 누락 컬렉션(youtube_knowledge, conversation_sessions 등) 규칙 추가
5. deploy.sh 스크립트 작성 (functions + hosting + rules 배포 포함)
6. 셀프 검증 후 보고서 작성
7. .done 파일 생성

## 예상 위험 및 대안

- **위험 1**: sourceType 수정 시 기존 데이터와 호환성 문제 → 단순 union type 추가로 백워드 호환 유지
- **위험 2**: Firebase 시크릿 등록 실제 실행 시 CLI 권한 부재 → 스크립트에 명령어 안내 형태로 작성
- **위험 3**: firestore.rules 문법 오류 → firebase-admin 규칙 문법 준수, 검증 도구 활용
- **위험 4**: 배포 스크립트 경로 오류 → 실제 프로젝트 구조 기반으로 경로 하드코딩

## 실패 시나리오 체크리스트

1. **비정상 입력/상태**: sourceType 필드에 기존 데이터가 새 타입 값을 가지면 → 타입만 넓히고 기존 값 유지, 마이그레이션 불필요
2. **동시성/경쟁 조건**: 배포 스크립트 동시 실행 시 → 스크립트에 락 파일 체크 또는 순차 실행 보장 명시
3. **비정상 종료/타임아웃**: 배포 중 네트워크 단절 시 → Firebase CLI 자체 재시도 메커니즘 의존, 스크립트 멱등성 설계
4. **스테일 데이터**: Firestore rules 캐시 이슈 → 배포 후 firebase deploy --only firestore:rules 로 즉시 반영
5. **통합 시 충돌**: functions/src 와 nextapp/src/types 의 타입 불일치 → 두 파일 모두 동일한 수정 적용

## 검토 대안 및 기각 사유

- **대안 A**: types 파일 분리(nextapp/functions 각각 유지) → 현재 구조상 중복 방지 위해 공유 타입 파일 사용 중, 기각
- **대안 B**: 배포 스크립트를 Makefile로 작성 → shell script가 더 범용적이며 기존 scripts/ 폴더 패턴에 맞음, 기각
