# task-1596.1 완료 보고서: 네이버 블로그 어투 적용 검증 + 숫자 허구 방지 규칙 추가

**S**: 네이버 블로그 글 생성 기능에서 어투(tone) 선택 UI가 존재하지만, 실제 프롬프트에 반영되는지 검증이 필요하다. 또한 제이회장님 지시로 수치/통계의 출처 없는 허구 사용을 금지하는 규칙이 프롬프트에 명시되어 있지 않다.

**C**: 어투 미적용 시 사용자가 격식체를 선택해도 혼합체로 글이 생성되어 UX 신뢰도가 떨어진다. 출처 없는 수치 허구는 보험 정보의 신뢰성을 훼손하며, 법적 리스크가 있다.

**Q**: 어투 선택이 정상 동작하며, 수치 허구 방지 규칙을 프롬프트에 추가하여 출처 없는 수치 생성을 차단할 수 있는가?

**A**: 어투는 프론트엔드→서버→프롬프트까지 정상 전달 확인 (코드 변경 불필요). 숫자 허구 방지 규칙을 `_build_naver_blog_prompt()` 프롬프트 최상단에 추가하고, C 섹션 출처 인용 규칙도 강화 완료. pytest 5건 통과, 서버 정상 재시작.

---

## 이슈 1: 어투(tone) 선택 검증 결과

코드 추적 결과, tone 값이 end-to-end로 정상 전달됨:
- 프론트엔드: `NaverBlogView.js:538` — tone state 초기화 (mixed)
- 프론트엔드: `NaverBlogView.js:550` — API payload에 tone 포함
- 프론트엔드: `NaverBlogView.js:690-697` — select 드롭다운 UI (mixed/formal/casual)
- 서버: `server.py:4763` — `body.get("tone", "mixed")` 수신
- 서버: `server.py:4765-4766` — 유효값 검증 (mixed/formal/casual 외 → mixed 폴백)
- 서버: `server.py:4777` — `_build_naver_blog_prompt(keywords, additional_content, tone)` 호출
- 프롬프트: `server.py:258-274` — tone_rules 딕셔너리에서 해당 어투 규칙 선택
- 프롬프트: `server.py:330` — `{tone_ending_rules}` f-string으로 삽입
- 미리보기: `server.py:4845` — 응답에 `prompt_text` 포함 → 프론트에서 표시

결론: 별도 수정 불필요. 정상 동작.

## 이슈 2: 숫자 허구 방지 규칙 추가

### 수정 내용

**파일**: `/home/jay/workspace/dashboard/server.py`

1. **최우선 규칙 삽입** (line 287-299): `## ⚠️ 최우선 규칙: 수치/통계 허구 절대 금지` 섹션을 A 섹션 앞에 추가
   - 7개 허용 출처 명시 (FSS, FSC, KIDI, KLIA, KNIA, KOSIS, 공식 뉴스)
   - "출처 없는 수치 절대 금지" + "약 ~로 추정" 표현도 금지
   - "(금융감독원, 2025)" 형식 출처 표기 의무

2. **C 섹션 출처 인용 강화** (line 320): "최소 2회 명시" → "모든 수치에 명시 (출처 없는 수치는 작성 금지)"로 변경

## 산출물

- `/home/jay/workspace/dashboard/server.py` (수정)

## 발견 이슈 및 해결

### 자체 해결 (0건)

이번 작업에서 코드 버그나 논리 오류 없음.

### 범위 외 미해결 (3건)
1. **pyright import 해석 실패** (server.py:62-70) — dashboard.data_loader/helpers import 해석 불가. 기존 이슈이며 런타임에는 정상 동작. 본 작업 범위 외.
2. **미사용 변수** (server.py:3435, 3483, 3710, 3713) — current_pid, _time, section_type 미사용. 기존 이슈. 본 작업 범위 외.
3. **테스트 PytestReturnNotNoneWarning** (test_naver_blog_rules.py) — 테스트 함수가 None 대신 list를 반환. 기존 이슈. 기능에 영향 없음. 본 작업 범위 외.

## 셀프 QC 체크리스트

- [x] 1. 영향 파일: server.py만 수정. 프론트엔드 변경 없음, API 인터페이스 변경 없음
- [x] 2. 엣지 케이스: 프롬프트 텍스트만 수정이므로 엣지 케이스 없음
- [x] 3. 작업 지시와 일치: 이슈 1(어투 검증) + 이슈 2(숫자 허구 방지) 모두 처리
- [x] 4. 보안: 프롬프트 텍스트 수정만. 보안 이슈 없음
- [x] 5. 테스트: pytest 5건 전체 통과, py_compile 구문 검증 통과
- [x] 6. 이슈 해결: 범위 내 이슈 없음. 범위 외 3건 명시
- [x] 7. 아키텍처 원칙: 프롬프트 텍스트만 수정. SOLID/DRY 위반 없음
- [x] 8. 인터페이스 변경: 없음
- [x] 9. 이미지/배너: 해당 없음

## 테스트 결과

- pytest: 5 passed, 5 warnings (0.08s)
- py_compile: OK
- 서버 재시작: active (running)

## 모델 사용 기록

- 팀원: 루(Lugh) / 작업 내용: server.py 프롬프트 수정 (숫자 허구 방지 규칙 + 출처 인용 강화) / 사용 모델: sonnet / 정당성: -
