docs: add plan for briefing insight preamble leak

This commit is contained in:
Claude-51124 2026-03-11 18:46:33 +09:00
parent e80179f877
commit 20024c37c8
4 changed files with 95 additions and 0 deletions

View File

@ -0,0 +1,85 @@
---
tags: [plans, naverworks, briefing, insight, llm, langgraph]
---
# NAVER WORKS 브리핑 인사이트 서두 누출 수정 계획
**작성일**: 2026-03-11
**상태**: draft
**목표**: 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)
## 1. 문제 정의
- `NAVER WORKS Daily Briefing`은 실행과 전송은 성공했지만, 인사이트 앞에 `로빙입니다`, `사용자님께서는`, `요약해 드리겠습니다` 같은 서두가 붙은 채 Slack에 노출됐다.
- 현재 프롬프트는 `인사말, 서두 없이 바로 내용 시작`을 요구하지만, 실제 출력값을 통과시키기 전 검증 계약이 없다.
- 따라서 이번 문제는 `프롬프트 실패`가 아니라 `LLM 출력 검증 부재` 문제로 본다.
## 2. 이번 계획의 결정
- 이 문제는 `LangGraph`를 버리거나 `Pydantic AI`를 새로 도입해서 닫지 않는다.
- 현재 브리핑 플로우 안에서 `generate -> validate -> regenerate 1회 -> fail visible` 계약을 추가해 닫는다.
- 알려진 금지 서두 제거는 허용하되, 기준 미달 출력을 성공처럼 전송하지 않는다.
## 3. 범위
- 포함:
- NAVER WORKS 브리핑 인사이트 생성 프롬프트 보강
- 인사이트 검증/정규화 단계 추가
- 금지 케이스 테스트 추가
- 실패 로그 가시성 보강
- 제외:
- Prompt DB 전면화
- 다른 브리핑 skill 전수 수정
- 공통 LLM 출력 정책 프레임워크 신설
## 4. 구현 원칙
- 프롬프트에만 의존하지 않는다.
- 금지 출력은 다음 단계로 그대로 보내지 않는다.
- 정규화로 해결되지 않는 출력은 실패로 남긴다.
- 실패는 로그에 명확히 드러나야 하며, 성공처럼 포장하지 않는다.
## 5. 구현 단계
### A. 프롬프트 보강
- 인사이트가 반드시 `회신 필요`, `결제/청구`, `안내/공지` 중 하나로 시작하도록 명시한다.
- `로빙입니다`, `사용자님께서는`, `요약해 드리겠습니다`, `오늘 알아야 할 메일 핵심 내용을` 같은 서두를 금지 예시로 직접 적는다.
### B. 검증 단계 추가
- `_generate_insight()` 직후 또는 그 다음 단계에 `validate_insight()`를 둔다.
- 검증 항목:
- 금지 서두 포함 여부
- 허용 시작 패턴 여부
- 1줄 요약 여부
### C. 재생성 1회
- 첫 생성 결과가 검증에 실패하면 같은 요청으로 1회만 재생성한다.
- 재생성 결과도 실패하면 알려진 서두 제거만 시도한다.
- 서두 제거 후에도 허용 시작 패턴이 아니면 전송하지 않고 실패로 남긴다.
### D. 실패 가시성
- `Generated insight:` 로그에 원문과 판정 결과가 남아야 한다.
- 검증 실패, 재생성 시도, 최종 실패는 구분되는 로그 메시지로 남긴다.
- `Briefing sent successfully`는 실제 검증을 통과한 경우에만 남긴다.
### E. 테스트 추가
- 단위 테스트:
- 정상 시작 패턴 통과
- 금지 서두 포함 시 실패 또는 정규화
- 재생성 후 정상화
- 재생성 후에도 기준 미달이면 실패
- 금지 케이스 예시:
- `로빙입니다... 회신 필요 1건`
- `사용자님께서는... 결제/청구 1건`
- `오늘 알아야 할 메일 핵심 내용을... 안내/공지 3건`
## 6. 완료 판정 기준
- 실제 생성값과 Slack 노출값 모두에서 금지 서두가 0건이다.
- 인사이트는 `회신 필요`, `결제/청구`, `안내/공지` 중 하나로 시작한다.
- 금지 케이스 테스트가 추가되고 모두 통과한다.
- 검증 실패 출력은 성공 전송 로그로 남지 않는다.
## 7. 후속 경계
- 이 계획이 끝나도 Prompt DB 미전면화 문제는 별도 트러블로 유지한다.
- 공통 브리핑 계층 확장은 이번 이슈를 닫은 뒤 별도 계획으로 다룬다.

View File

@ -21,6 +21,11 @@
## 🔴 실제로 필요한 플랜 (미구현)
### 0. NAVER WORKS 브리핑 인사이트 서두 누출 수정 (260311)
**상태**: draft
**목표**: 인사이트 출력 계약을 강제해 금지 서두 누출을 차단
**참고**: `plans/260311_naverworks_briefing_insight_preamble_leak_fix_plan.md`
### 1. 자기개선 루프 DB/서비스 구현 (260303)
**상태**: 미구현
**목표**: 예측-행동-평가-반성 루프의 정책 버전/실행 로그를 DB로 고정

View File

@ -7,6 +7,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 브리핑 인사이트에 노출되는 문제를 어떤 수정으로 닫는 것이 맞는지 결정 가능한 근거를 남깁니다.

View File

@ -4,6 +4,10 @@ tags: [naverworks, briefing, insight, llm, troubleshooting]
# NAVER WORKS 브리핑 인사이트 서두 문구 누출
## 관련 문서
- [NAVER WORKS 브리핑 인사이트 서두 누출 종료 리서치](../research/260311_naverworks_briefing_insight_preamble_leak_closure_research.md)
- [NAVER WORKS 브리핑 인사이트 서두 누출 수정 계획](../plans/260311_naverworks_briefing_insight_preamble_leak_fix_plan.md)
## 문제
- 2026-03-11 NAVER WORKS 일일 브리핑에서 인사이트 1줄 앞에 아래 같은 서두가 함께 출력됐습니다.
- `로빙입니다. 사용자님께서는 오늘 알아야 할 메일 핵심 내용을 1줄로 요약해 드리겠습니다.`