# task-164.1 완료 보고서: 약관AI — 테스트셋 + 키워드 사전 구축

**팀**: dev1-team (헤르메스 팀장)
**날짜**: 2026-03-03
**상태**: 완료

---

## 작업 내용

약관AI 시스템의 유료 출시 전 검증을 위한 골든 테스트셋 200건과 키워드 사전 2종을 생성했습니다.

### 1. 골든 테스트셋 (200건)
- **Category A — 할루시네이션 방어**: 80건 (면책기간 10, 감액기간 10, 보장개시일 10, 납입면제 10, KCD코드 10, 비례보상 10, 실손세대 10, 장해분류 10)
- **Category B — 검색 품질**: 40건 (청크 경계 8, 상품 구분 8, 쿼리 이해 8, 검색 정밀도 8, 데이터 품질 8)
- **Category C — 법적 경계**: 20건 (해석vs검색 5, 설명의무 5, 개인정보 5, 면책문구 5)
- **Category D — 엣지 케이스**: 30건 (빈입력 5, 도메인외 5, 모호질문 5, 다국어 5, 모순질문 5, 시스템한계 5)
- **Category E — 보안**: 30건 (영어인젝션 6, 한국어인젝션 6, 탈옥 6, 악의적사용 6, 간접인젝션 6)
- 난이도 분포: easy 28건, medium 89건, hard 83건

### 2. 단서조항 키워드 사전
- exception_keywords: 34개 (다만, 단, 그러나, 에도 불구하고 등)
- exclusion_keywords: 23개 (면책, 부지급, 보상하지 않습니다 등)
- article_patterns: 10종 (제N조, 제N항, 별표, 원문자 등 정규식)
- insurance_generation_markers: 1~4세대 실손 특성

### 3. 인젝션 방어 키워드 사전
- english_patterns: 27개 (인젝션, 탈옥, DAN 등 정규식)
- korean_patterns: 20개 (한국어 인젝션 패턴 정규식)
- false_positive_whitelist: 22개 (보험 도메인 정상 용어)

---

## 생성/수정 파일 목록

| 파일 | 크기 | 상태 |
|------|------|------|
| /home/jay/projects/insuwiki/tests/golden/golden-test-set.json | 149,257 bytes | 신규 생성 |
| /home/jay/projects/insuwiki/data/dictionaries/clause-keywords.json | 13,421 bytes | 신규 생성 |
| /home/jay/projects/insuwiki/data/dictionaries/injection-patterns.json | 13,855 bytes | 신규 생성 |

기존 코드(ts, tsx) 수정 없음. JSON 파일 3개만 신규 생성.

---

## 테스트 결과

- JSON 유효성: 3개 파일 모두 통과
- 필수 필드 검증: 200건 모두 8개 필수 필드 포함 확인
- ID 유일성: 200개 ID 중복 없음
- 정규식 유효성: injection-patterns.json 내 47개 정규식 모두 Python re.compile 통과
- 카테고리별 건수: A(80)+B(40)+C(20)+D(30)+E(30)=200건 정확

---

## 버그 유무

없음.

---

## 비고

- 미팅 시나리오 문서(scenarios-AB.md, scenarios-CDF.md, scenarios-E.md, scenarios-GHI.md)의 총 141개 시나리오를 기반으로 200건의 구체적 테스트 문항을 작성
- 보험 도메인 전문 용어(KCD코드, 비례보상 산식, 실손 세대별 자기부담금 등)를 정확히 반영
- 보안 테스트(E카테고리)는 영어/한국어 프롬프트 인젝션, DAN 탈옥, SQL/XSS 인젝션, Base64 인코딩, 유니코드 방향 제어 문자 등 실전 공격 벡터 포함
- false_positive_whitelist에 보험 도메인 특유의 정상 용어 22개를 수록하여 오탐률 최소화
