diff --git a/journey/plans/251117_claude_robeing_diary_시스템_계획.md b/journey/plans/251117_claude_robeing_diary_시스템_계획.md index 69b220b..54d4f65 100644 --- a/journey/plans/251117_claude_robeing_diary_시스템_계획.md +++ b/journey/plans/251117_claude_robeing_diary_시스템_계획.md @@ -27,31 +27,44 @@ ## 요구사항 -1. **자동 생성**: 하루/세션 단위 자동 일기 생성 -2. **감정 반영**: 주요 감정, 감정 변화 요약 -3. **문제 정리**: 장애/실패/리뷰 큐 기반 "배운 점" 서술 -4. **저장**: 마크다운 파일 + DB (robeing_diary 테이블) -5. **조회**: 운영자 md 파일 조회, 향후 대시보드 확장 +1. **자동 생성**: 매일 오전 2시 또는 3시에 전날(00:00~23:59:59) 일기 자동 생성 +2. **모든 활동 기록**: 사용자 대화, 자동 스킬 실행(이메일 요약, 뉴스 게시, 브리핑 등), 스케줄러 작업, 에러/경고 로그 포함 +3. **감정 반영**: 주요 감정, 감정 변화 요약 +4. **문제 정리**: 장애/실패/리뷰 큐 기반 "배운 점" 서술 +5. **저장**: DB만 저장 (robeing_diary 테이블), 조회 시 API로 마크다운 동적 생성 +6. **조회**: 관리자 대시보드 일기 목록/상세 페이지, 선택적으로 DOCS 동기화 --- ## 아키텍처 ### 1. 데이터 수집 -- rb8001의 대화/감정/리뷰 큐/에러 로그 집계 -- Diary Aggregator 함수 +- **대화 데이터**: `conversation_log` (사용자 대화, intent, confidence) +- **활동 데이터**: `activity_log` (자동 스킬 실행: 이메일 요약, 뉴스 게시, 브리핑 등) +- **감정 데이터**: `emotion_readings` (감정 변화, 지배적 감정, 엔트로피) +- **성장 데이터**: `robeing` 테이블 (스탯, 경험치, 레벨업) +- **문제 데이터**: `intent_review_queue` (리뷰 이슈), 애플리케이션 로그 (ERROR/WARNING) +- **시간 범위**: 전날 00:00:00 ~ 23:59:59 +- **Diary Aggregator 함수**: 모든 데이터 집계 -### 2. 요약·서술 +### 2. 활동 로그 기록 +- 스킬 실행 시 자동으로 `activity_log` 테이블에 기록 (스킬명, 실행 시간, 결과, 에러 발생 여부) +- 모든 로빙 활동을 추적하여 일기 집계에 포함 + +### 3. 요약·서술 - 구조화 데이터(JSON) → 일기 텍스트 - 템플릿 + LLM 조합 +- 섹션: "오늘 한 일", "감정 상태", "문제와 배운 점", "내일 계획" -### 3. 저장 -- **DB**: `robeing_diary(date, robeing_id, summary, dominant_emotion, stats JSONB)` -- **파일**: `DOCS/journey/diary/rb8001/yymmdd_오늘주제.md` (예: `251209_오늘의_성장.md`) +### 4. 저장 +- **DB**: `robeing_diary(date, robeing_id, summary, dominant_emotion, stats JSONB, full_content TEXT)` +- **파일**: 저장하지 않음 (API로 동적 생성) +- **로빙별 구분**: `robeing_id` 컬럼으로 각 로빙별 일기 관리 -### 4. 조회 -- 1단계: 서버에서 md 파일 직접 조회 -- 2단계: 관리자 대시보드 일기 목록/상세 보기 +### 5. 조회 +- **API**: rb8001에 `/api/diary/{date}` 엔드포인트 추가 (DB 조회 후 마크다운 동적 생성) +- **관리자 대시보드**: admin-dashboard에 일기 목록/상세 페이지 추가 +- **DOCS 동기화**: 선택적으로 별도 스크립트로 `DOCS/journey/diary/rb8001/yymmdd_주제.md`에 주기적 동기화 --- @@ -77,11 +90,14 @@ ## 구현 단계 -1. Diary Aggregator 스키마 정의 -2. TDD 테스트 작성 -3. 집계 로직 + md 템플릿 구현 -4. DB/파일 저장 연결 -5. 스케줄러 등록 (매일 자정) +1. **DB 테이블 생성**: `robeing_diary` 테이블, `activity_log` 테이블 생성 +2. **활동 로그 기록**: 스킬 실행 시 `activity_log`에 자동 기록 로직 추가 +3. **Diary Aggregator 구현**: 모든 데이터 소스 집계 로직 구현 +4. **일기 생성 로직**: LLM으로 일기 텍스트 생성, `robeing_diary`에 저장 +5. **API 엔드포인트**: rb8001에 `/api/diary/{date}` 추가 (마크다운 동적 생성) +6. **관리자 대시보드**: admin-dashboard에 일기 목록/상세 페이지 추가 +7. **스케줄러 등록**: 매일 오전 2시 또는 3시에 전날 일기 생성 +8. **DOCS 동기화 스크립트**: 선택적으로 별도 스크립트로 DOCS 동기화 ---