---
tags: [rb8001, naverworks, briefing, insight, worklog]
---

# NAVER WORKS 브리핑 인사이트 서두 누출 수정 및 수동 배포 검증

## 관련 문서
- [NAVER WORKS 브리핑 인사이트 서두 문구 누출](../troubleshooting/260311_naverworks_briefing_insight_preamble_leak.md)
- [NAVER WORKS 브리핑 인사이트 서두 누출 종료 리서치](../research/260311_naverworks_briefing_insight_preamble_leak_closure_research.md)
- [NAVER WORKS 브리핑 인사이트 서두 누출 수정 계획](../plans/260311_naverworks_briefing_insight_preamble_leak_fix_plan.md)

## 완료 요약
- `rb8001`의 NAVER WORKS 브리핑 인사이트 생성 경로에 출력 검증, 1회 재생성, 알려진 서두 정규화, 실패 가시성을 추가했습니다.
- 금지 서두 누출 케이스를 포함한 테스트를 추가했고 로컬과 컨테이너 내부에서 모두 통과를 확인했습니다.
- 자동 배포가 실행되지 않아 24 서버에서 직접 `docker compose down && docker compose up -d --build`로 재배포하고 반영을 검증했습니다.

## 코드 반영 내용
- 인사이트 프롬프트에 허용 시작 패턴과 금지 서두를 명시했습니다.
- `_generate_insight()`에 `first_pass -> retry -> final normalize -> fail` 계약을 추가했습니다.
- `event=briefing_insight_validation` 구조화 로그를 추가했습니다.
- 금지 서두 재발 테스트를 `tests/test_naverworks_briefing.py`에 추가했습니다.

## 검증 결과
- 로컬 테스트:
  - `pytest -q /home/admin/robeing/rb8001/tests/test_naverworks_briefing.py`
  - 결과: `13 passed`
- 배포 컨테이너 테스트:
  - `docker exec rb8001 pytest -q /code/tests/test_naverworks_briefing.py`
  - 결과: `13 passed`
- 배포 검증:
  - `docker ps` 결과 `rb8001 Up ... (healthy)`
  - `curl http://localhost:8001/health` 결과 `{"status":"healthy",...}`
  - 컨테이너 내부 `/code/app/services/skills/naverworks_briefing.py`에서 `FORBIDDEN_PREAMBLES`, `_validate_insight`, `briefing_insight_validation` 반영 확인

## 결론
- 이 문제는 닫혔습니다.
- 현재 배포된 `rb8001`에는 NAVER WORKS 브리핑 인사이트 서두 누출 방지 로직이 반영돼 있습니다.
