From b2e6292c11f22f71b653d69fb6f2c7196fa0336a Mon Sep 17 00:00:00 2001 From: Claude-51124 Date: Wed, 11 Mar 2026 19:02:45 +0900 Subject: [PATCH] docs: close briefing insight preamble leak --- ...briefing_insight_preamble_leak_fix_plan.md | 3 +- journey/plans/README.md | 6 +-- ..._insight_preamble_leak_closure_research.md | 1 + ...verworks_briefing_insight_preamble_leak.md | 1 + ...ght_preamble_leak_fix_and_manual_deploy.md | 37 +++++++++++++++++++ 5 files changed, 42 insertions(+), 6 deletions(-) create mode 100644 journey/worklog/260311_naverworks_briefing_insight_preamble_leak_fix_and_manual_deploy.md diff --git a/journey/plans/260311_naverworks_briefing_insight_preamble_leak_fix_plan.md b/journey/plans/260311_naverworks_briefing_insight_preamble_leak_fix_plan.md index aaf1cd0..d4159c5 100644 --- a/journey/plans/260311_naverworks_briefing_insight_preamble_leak_fix_plan.md +++ b/journey/plans/260311_naverworks_briefing_insight_preamble_leak_fix_plan.md @@ -5,13 +5,14 @@ tags: [plans, naverworks, briefing, insight, llm, langgraph] # NAVER WORKS 브리핑 인사이트 서두 누출 수정 계획 **작성일**: 2026-03-11 -**상태**: draft +**상태**: 완료 (2026-03-11) **목표**: NAVER WORKS 브리핑 인사이트가 금지 서두 없이 분류 문구로 바로 시작하도록 출력 계약을 고정한다. ## 관련 문서 - [NAVER WORKS 브리핑 인사이트 서두 문구 누출](../troubleshooting/260311_naverworks_briefing_insight_preamble_leak.md) - [NAVER WORKS 브리핑 인사이트 서두 누출 종료 리서치](../research/260311_naverworks_briefing_insight_preamble_leak_closure_research.md) - [프롬프트 DB 부분 도입 및 하드코딩 프롬프트 잔존](../troubleshooting/260311_prompt_db_partial_adoption_and_hardcoded_prompts.md) +- [NAVER WORKS 브리핑 인사이트 서두 누출 수정 및 수동 배포 검증](../worklog/260311_naverworks_briefing_insight_preamble_leak_fix_and_manual_deploy.md) ## 1. 문제 정의 - `NAVER WORKS Daily Briefing`은 실행과 전송은 성공했지만, 인사이트 앞에 `로빙입니다`, `사용자님께서는`, `요약해 드리겠습니다` 같은 서두가 붙은 채 Slack에 노출됐다. diff --git a/journey/plans/README.md b/journey/plans/README.md index 0c16e20..197453a 100644 --- a/journey/plans/README.md +++ b/journey/plans/README.md @@ -16,16 +16,12 @@ 7. **감정 시스템 Phase 1–3 (250808)** - 전체 완료 (260204) → `plans/archive/250808_감정시스템_현실적용_5단계_로드맵.md` 8. **콜드메일 온톨로지 Phase 2–3 (251016)** - 완료 (260205) → `plans/archive/251016_ontology_coldmail_implementation.md` 8. **뉴스 브리핑 LangGraph 전환 (260202)** - 완료 (260205) → `plans/archive/260202_뉴스브리핑_LangGraph_전환.md` +9. **NAVER WORKS 브리핑 인사이트 서두 누출 수정 (260311)** - 완료 (260311) → `plans/260311_naverworks_briefing_insight_preamble_leak_fix_plan.md` --- ## 🔴 실제로 필요한 플랜 (미구현) -### 0. NAVER WORKS 브리핑 인사이트 서두 누출 수정 (260311) -**상태**: draft -**목표**: 인사이트 출력 계약을 강제해 금지 서두 누출을 차단 -**참고**: `plans/260311_naverworks_briefing_insight_preamble_leak_fix_plan.md` - ### 1. 자기개선 루프 DB/서비스 구현 (260303) **상태**: 미구현 **목표**: 예측-행동-평가-반성 루프의 정책 버전/실행 로그를 DB로 고정 diff --git a/journey/research/260311_naverworks_briefing_insight_preamble_leak_closure_research.md b/journey/research/260311_naverworks_briefing_insight_preamble_leak_closure_research.md index c5089e4..eaf6d4c 100644 --- a/journey/research/260311_naverworks_briefing_insight_preamble_leak_closure_research.md +++ b/journey/research/260311_naverworks_briefing_insight_preamble_leak_closure_research.md @@ -8,6 +8,7 @@ tags: [research, naverworks, briefing, insight, llm, closure] - [NAVER WORKS 브리핑 인사이트 서두 문구 누출](../troubleshooting/260311_naverworks_briefing_insight_preamble_leak.md) - [자가수정 에이전트 프레임워크 및 Workspace CLI 검증 리서치](./260311_자가수정_에이전트_프레임워크_및_workspace_cli_검증_리서치.md) - [NAVER WORKS 브리핑 인사이트 서두 누출 수정 계획](../plans/260311_naverworks_briefing_insight_preamble_leak_fix_plan.md) +- [NAVER WORKS 브리핑 인사이트 서두 누출 수정 및 수동 배포 검증](../worklog/260311_naverworks_briefing_insight_preamble_leak_fix_and_manual_deploy.md) ## 목적 - `로빙입니다. 사용자님께서는... 요약해 드리겠습니다.` 같은 서두가 NAVER WORKS 브리핑 인사이트에 노출되는 문제를 어떤 수정으로 닫는 것이 맞는지 결정 가능한 근거를 남깁니다. diff --git a/journey/troubleshooting/260311_naverworks_briefing_insight_preamble_leak.md b/journey/troubleshooting/260311_naverworks_briefing_insight_preamble_leak.md index dca9f7a..c3dd277 100644 --- a/journey/troubleshooting/260311_naverworks_briefing_insight_preamble_leak.md +++ b/journey/troubleshooting/260311_naverworks_briefing_insight_preamble_leak.md @@ -7,6 +7,7 @@ tags: [naverworks, briefing, insight, llm, troubleshooting] ## 관련 문서 - [NAVER WORKS 브리핑 인사이트 서두 누출 종료 리서치](../research/260311_naverworks_briefing_insight_preamble_leak_closure_research.md) - [NAVER WORKS 브리핑 인사이트 서두 누출 수정 계획](../plans/260311_naverworks_briefing_insight_preamble_leak_fix_plan.md) +- [NAVER WORKS 브리핑 인사이트 서두 누출 수정 및 수동 배포 검증](../worklog/260311_naverworks_briefing_insight_preamble_leak_fix_and_manual_deploy.md) ## 문제 - 2026-03-11 NAVER WORKS 일일 브리핑에서 인사이트 1줄 앞에 아래 같은 서두가 함께 출력됐습니다. diff --git a/journey/worklog/260311_naverworks_briefing_insight_preamble_leak_fix_and_manual_deploy.md b/journey/worklog/260311_naverworks_briefing_insight_preamble_leak_fix_and_manual_deploy.md new file mode 100644 index 0000000..877b459 --- /dev/null +++ b/journey/worklog/260311_naverworks_briefing_insight_preamble_leak_fix_and_manual_deploy.md @@ -0,0 +1,37 @@ +--- +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 브리핑 인사이트 서두 누출 방지 로직이 반영돼 있습니다.