# task-1592.1 완료 보고서: 네이버 블로그 프롬프트 SEO+GEO 업데이트

**작업 ID**: task-1592.1
**팀**: dev4-team (비슈누)
**일시**: 2026-04-10

---

## SCQA

**S**: 네이버 블로그 프롬프트(`_build_naver_blog_prompt()`)가 기본 SEO 규칙만 포함하고 있으며, task-1586.1 리서치에서 17개 갭(SEO 6개 + GEO 7개 + 네이버 특화 4개)이 발견되었다.

**C**: GEO(AI 인용 최적화) 요소가 전혀 없어 네이버 AI 브리핑 인용 확률이 낮고, 제목 길이(60자→25~50자), 이미지 개수(5곳→6~10곳), E-E-A-T 신호 등 핵심 SEO 요소도 미달이었다.

**Q**: task-1586.1 리서치 결과를 `_build_naver_blog_prompt()` 함수에 적용하여 17개 갭을 모두 해소할 수 있는가?

**A**: 프롬프트를 8개 섹션(A~H) 구조로 전면 개편하여 17개 갭 전체를 해소했다. 함수 시그니처, tone 파라미터 분기, AI 냄새 제거 규칙 모두 기존과 호환 유지. AST 문법 검증 통과.

---

## 수정 파일

- `/home/jay/workspace/dashboard/server.py` (라인 256~382, `_build_naver_blog_prompt()` 함수)

## 변경 내역

### 구조 변경 (6단계 → 10단계, 8섹션)
- **A. 제목 규칙**: 60자→25~50자, 숫자/연도 필수 추가
- **B. 본문 구조**: 질문형 H2, 정의 블록(40~60단어), 도입부 직접 답변, 모바일 최적화(3~4문장)
- **C. GEO 규칙 (신규)**: 자기완결성, 3-Stop Escalation, 출처 인용 2회, 전문가 인용구, 비교표, FAQ 3~5개
- **D. 키워드 배치**: 집중 배치 위치 명시(도입부/H2/결론)
- **E. 이미지 규칙**: 6~10곳 + alt text + 파일명 가이드
- **F. E-E-A-T 신호 (신규)**: 경험/전문성/신뢰성/최신성 4요소
- **G. 인간적 글쓰기**: 기존 규칙 100% 유지 + tone 파라미터 연동 유지
- **H. 구조 템플릿**: 10단계 (최종 업데이트/도입부 답변/FAQ/면책 조항 추가)

### 유지된 것 (호환성)
- 함수 시그니처: `_build_naver_blog_prompt(keywords, additional_content, tone="mixed")` 변경 없음
- `tone_rules` 딕셔너리 (mixed/formal/casual) 변경 없음
- AI 냄새 제거 규칙 (금지 어휘, 종결 어미 비율, 의성어 등) 변경 없음
- 호출부(라인 4627) 변경 불필요

## 17개 갭 해소 매핑

- SEO 갭 1~6: 제목 길이(A), 숫자/연도(A), 본문 분량(B), 이미지 개수(E), alt text(E), 키워드 배치(D)
- GEO 갭 7~13: 정의 블록(B), FAQ(C/H), 비교표(C), 3-Stop(C), 출처 인용(C), 자기완결성(C), 질문형 H2(B)
- 네이버 특화 갭 14~17: E-E-A-T(F), 최신성(F), 모바일 최적화(B), 도입부 답변(B)

## 테스트 결과

- AST 문법 검증: PASS
- 핵심 섹션 존재 검증 (GEO/E-E-A-T/FAQ/제목길이/이미지수/tone연동): 6/6 PASS
- 관련 테스트 파일: 없음 (프롬프트 텍스트 전용 함수)
- pyright 진단: 신규 에러 0건 (기존 pre-existing 이슈만 존재)

## 발견 이슈 및 해결

### 자체 해결 (3건)
1. **리서치 초안에 tone 파라미터 누락** — 초안의 Section G에 `{tone_ending_rules}` 변수를 삽입하여 기존 tone 분기 유지
2. **리서치 초안의 구조 예시에 통계 밀도 규칙 미포함** — 본문 구조(B)의 Answer Block과 H2 정의 블록으로 충분히 커버되어 별도 규칙 불필요 판단
3. **FAQ 섹션이 "산문 중심" 규칙과 충돌 가능** — "FAQ 섹션은 예외" 명시 추가 (라인 338)

## 셀프 QC 체크리스트

- [x] 1. 영향 파일: server.py 1개만 수정, 호출부 변경 불필요
- [x] 2. 엣지 케이스: 빈 키워드 리스트 → 기존 fallback 유지, tone 미지정 → "mixed" 기본값 유지
- [x] 3. 작업 지시와 정확히 일치: 17개 갭 전체 해소
- [x] 4. 보안: 프롬프트 텍스트만 변경, SQL injection/XSS 무관
- [x] 5. 테스트: 관련 테스트 파일 없음 (프롬프트 문자열 반환 함수)
- [x] 6. 이슈 3건 자체 해결
- [x] 7. 아키텍처 원칙: 함수 구조 유지, 단일 책임 원칙 준수
- [x] 8. 인터페이스 변경 없음

## 모델 사용 기록

- 팀원: 카르티케야(백엔드) / 작업: 프롬프트 함수 코드 교체 / 모델: sonnet / 정당성: -
