docs: NAVER WORKS 브리핑 UX 개선 문서화

- 계획 문서 archive 이동 (구현 완료)
- 트러블슈팅 문서 추가
This commit is contained in:
Claude-51124 2026-01-21 09:52:30 +09:00
parent 724ed609b2
commit d4be579021
2 changed files with 133 additions and 0 deletions

View File

@ -0,0 +1,96 @@
# NAVER WORKS 일일 브리핑 UX 개선
**날짜**: 2026-01-21
**작성자**: Claude (51124 서버 전담)
**관련 파일**: `rb8001/app/services/skills/naverworks_briefing.py`
---
## 1. 현재 문제점
- "중요 메일 (0건)" + "중요 메일이 없습니다" 섹션이 대부분 0건으로 노출
- "중요 메일 0건, 전체 6건" 하단 요약이 헤더와 중복
- 사용자가 직접 메일 목록을 읽고 액션 아이템 판단 필요
## 2. 개선 목표
- 중요 메일 섹션 전체 제거 (키워드 기반 분류 신뢰도 낮음)
- 하단 요약 문구 제거 (헤더에 이미 건수 존재)
- LLM 1줄 인사이트 추가 ("회신 필요 1건, 안내/공지 5건" 형태)
## 3. 변경 사항
### 3.1 삭제 대상
| 위치 | 내용 | 이유 |
|------|------|------|
| naverworks_briefing.py:59-61 | `_filter_important_emails()` 호출 | 중요 메일 분류 제거 |
| naverworks_briefing.py:64 | 중요 메일 요약 생성 | 불필요 |
| naverworks_briefing.py:146-176 | `_filter_important_emails()` 메서드 | 미사용 |
| naverworks_briefing.py:285-291 | Slack 블록 중요 메일 섹션 | 제거 |
| naverworks_briefing.py:303-310 | 하단 요약 context 블록 | 헤더와 중복 |
### 3.2 추가 대상
| 위치 | 내용 |
|------|------|
| naverworks_briefing.py:_generate_summary() 전 | `_generate_insight()` 메서드 추가 |
| naverworks_briefing.py:_format_slack_message() | 인사이트 1줄 블록 추가 (헤더 바로 아래) |
### 3.3 인사이트 프롬프트
```
역할: 비서
입력: 메일 목록 (발신자 + 제목)
출력 형식: "회신 필요 N건, 결제/청구 N건, 안내/공지 N건"
조건: 긴급 액션이 있으면 강조, 1줄로 요약
예시: "오후 2시까지 회신 필요 1건, 결제 안내 1건, 일반 공지 4건"
```
## 4. 변경 후 메시지 구조
```
NAVER WORKS 일일 브리핑
2026년 01월 21일 | info@company-x.partners
────────────────────────────
오후 2시까지 회신 필요 1건, 결제 안내 1건, 공지 4건 ← 인사이트 1줄
────────────────────────────
전체 메일 (6건)
• 피큐레잇 송석규: 2026년 새해 인사 및 소식 전달
• 태일회계법인: 검증보고서 확정 완료...
• (이하 생략)
```
## 5. 구현 순서
1. `_filter_important_emails()` 호출 및 메서드 삭제
2. `_generate_insight()` 메서드 추가 (발신자+제목만 전달)
3. `_format_slack_message()` 수정 (중요 메일 블록 제거, 인사이트 블록 추가)
4. pytest 테스트 작성 및 E2E 검증
## 6. 테스트 계획
### 6.1 pytest 자동 테스트 (필수)
| 파일 | 테스트 항목 |
|------|------------|
| `tests/test_naverworks_briefing.py` | `_generate_insight()` 출력 형식 검증 |
| `tests/test_naverworks_briefing.py` | `_format_slack_message()` 블록 구조 검증 |
### 6.2 E2E 검증 (배포 후)
```bash
# 컨테이너 내부 pytest 실행
docker exec rb8001 pytest tests/test_naverworks_briefing.py -v
# 실제 Slack 전송 확인 (수동)
docker exec rb8001 python scripts/show_briefing.py
```
### 6.3 검증 항목
- [ ] 중요 메일 섹션 미노출
- [ ] 하단 요약 문구 미노출
- [ ] 인사이트 1줄 노출
- [ ] 전체 메일 목록 정상 노출

View File

@ -0,0 +1,37 @@
# NAVER WORKS 브리핑 UX 개선 - 중요 메일 섹션 제거, 1줄 인사이트 추가
**날짜**: 2026-01-21
**작성자**: Claude (51124 서버 전담)
**관련 파일**: `rb8001/app/services/skills/naverworks_briefing.py`
---
## 문제 상황
- "중요 메일 (0건)" + "중요 메일이 없습니다" 섹션이 대부분 0건으로 노출
- "중요 메일 0건, 전체 6건" 하단 요약이 헤더와 정보 중복
- 사용자가 직접 메일 목록을 읽고 액션 아이템 판단 필요
## 해결 방안
- naverworks_briefing.py:59-61: `_filter_important_emails()` 호출 삭제
- naverworks_briefing.py:146-176: `_filter_important_emails()` 메서드 삭제
- naverworks_briefing.py:141-176: `_generate_insight()`, `_call_llm_for_insight()` 메서드 추가
- naverworks_briefing.py:248-298: `_format_slack_message()` 시그니처 변경 (insight, all_summary, all_count)
- tests/test_naverworks_briefing.py: pytest 테스트 8개 추가
## 구현 완료
- 커밋: 3afb9c9
- 배포: Gitea Actions 자동 배포 완료
- 테스트: 8 passed
## 교훈
### TDD 프로세스 준수
- Red → Green → Refactor 순서로 진행하여 기능 누락 방지
- 테스트 작성 시 아직 구현되지 않은 메서드 검증으로 명확한 구현 목표 설정
### UX 개선 시 정보 중복 제거 우선
- 동일 정보가 여러 곳에 노출되면 사용자 피로도 증가
- 핵심 인사이트 1줄로 사용자 인지 부하 감소