# Agent 미팅: 소식지 AI 추출 내용 검토 workflow 설계

**날짜**: 2026-08-05
**소집 이유**: 소식지 PDF/PPT 업로드 시 AI(Vision/MarkItDown)가 보험사명·제목·본문을 추출하는데, 발행 전 **검토·교정 단계가 전혀 없음**(현재 저장=발행). 어색함/오류(OCR·오인·숫자 환각·잘림) 검토 workflow 설계.
**참여**: 미미르(데이터UX)·불칸(백엔드)·아르고스(QA)·아테나(UX)·오딘(아키텍처)·마아트(QC)·헤르메스(실행)·로키(레드팀 DA·전 사이클)
**미팅 모드**: hybrid · **깊이**: thorough · **총 사이클**: 3

---

## Cycle 1 (독립, 5명) — 방향 도출
- **미미르**: 2-pane 원문↔추출 + 인라인 편집, 보험사명 마스터 select, 이상신호(보험사명/숫자/잘림/길이), 저장≠발행 4상태. 절대원칙=draft-first.
- **불칸**: 상태기계(기계축 extract* / 사람축 review*), 필드별 extracted↔edited 분리 + append-only 감사, 자동검증=ai_queue 워커 내 결정론 라우터(플래그만), 재추출 mode폴백. 절대원칙=발행 fail-closed.
- **아르고스**: 오류유형별 결정론 검출표(숫자 원문 set-diff=환각HIGH, batch bleed, 준법문구 정규식…), **숫자·고유명사·날짜 LLM 판정 금지→grounding only**, 2차 LLM=faithfulness(인용강제).
- **아테나**: 6개 일괄=이상항목 우선정렬(❌/⚠️/✅)+인라인, 보험사명 하드게이트, 발행 후 정정 허용.
- **로키(DA)**: 검토=러버스탬프 전락·신뢰도 표시는 자동화안주 유발·컴플라이언스 면죄부/부작위과실 로그 위험. 처방=전체승인버튼 금지·원문근거 강제·신뢰도 숨김·추출정확도 우선.

## Cycle 2 (심화, 3명) — 쟁점 판정
- **오딘(통합)**: T1 신뢰도숫자 UI숨김(내부보존) / T2 batch승인 조건부(무플래그+하드게이트미포함+engagement, batch_approved 별도기록) / T3 auto-publish는 런칭 OFF→false-negative율 측정 후 per-source 단계개방 / T4 로그=과정·제시증거(결론형 "정확확인" 금지, 승인스코프=추출충실도 한정, disclaimer+정정) / T5 LLM·2-pass=힌트only 비대칭(불일치=플래그↑, 일치=하향금지). MVP=척추(상태·감사·grounding·제약) 먼저, 마찰완화·확률보조는 2차.
- **마아트(QC)**: 실효성은 독립 ground truth로만 증명 — **시드 카나리아(기지오류 주입)로 검출율·러버스탬프 상시측정**, escape-rate 사후재감사, 골든셋 회귀. 절대원칙=측정 없으면 "검증됨"이 아니라 "미측정".
- **로키(DA)**: grounding=span존재≠의미정합, 원문 오염시 오류 인증, 게이트커버 필드만 안전, **오탐→override 습관화→게이트 무력화**, 규칙셋 부패. 더 단순안=자동판정 게이트 대신 원문대조 UI+critical field human-keying, baseline 먼저.

## Cycle 3 (확정, 2명) — Temporal + 최종 DA
- **헤르메스(Temporal+분해)**: HOUR별 결정(마이그레이션 nullable 선행, 기존분 backfill=legacy/published·edited=현재값, manual 경로는 게이트 우회로 회귀0, grounding bbox best-effort→page fallback, 임계값 config화, 상태전이 단일함수+동일트랜잭션 감사). MVP 태스크 T1~T9 3웨이브(schema/상태기계=serial_only).
- **로키(최종 DA)**: **조건부 승인**. 구조는 진짜 고침 인정. hard requirement 3: ①카나리아 킬스위치(임계초과시 자동 draft-only) ②보험사 마스터리스트 오너+staleness SLA+미등록시 hold(틀린선택 강제 금지) ③grounding 유효성 측정(mismatch 카나리아).

---

## 최종 합의 (MVP 설계)
1. **저장≠발행 분리·draft-first·fail-closed** — AI 추출값은 draft, 사람 승인(reviewer NOT NULL) 없이 published 불가(상태전이 단일함수에서 코드로 강제).
2. **상태기계** uploaded→extracting→extracted→auto_validated→pending_review⇄editing→approved→published(+reject/re-extract). 기계축/사람축 분리. 전이마다 동일 트랜잭션 append-only 감사이벤트.
3. **필드별 extracted↔edited 분리 저장**(insurer/title/body), 발행시 edited??extracted.
4. **자동검증=ai_queue 워커 내 결정론 9규칙**(플래그만·block 아님, 임계 config): 보험사명 화이트리스트·숫자 원문 set-diff·batch bleed·잘림·표붕괴·준법문구·중복·언어깨짐·날짜.
5. **원문 grounding UI** — 2-pane 원문↔추출, span/crop(bbox best-effort→page fallback), 숫자 diff 색상뷰. 고위험 필드(보험사명·숫자·개정일) grounding 노출 후 확인.
6. **보험사명 = 마스터 목록 select(필수입력)** — 오버라이드형 게이트 아님. **미등록 시 hold(fail-closed), 틀린 선택 강제 금지.** 리스트 오너+갱신 SLA.
7. **숫자·고유명사·날짜 = extractive-only**(LLM 판정/자동교정 금지). LLM/2-pass=힌트 only 비대칭(의심만 추가).
8. **로그=과정·제시증거 기반**(결론형 "정확확인" 금지, 승인 스코프=추출충실도 한정), 발행물 disclaimer + published→corrected 정정 워크플로우.
9. **신뢰도 숫자 UI 미노출**(내부 보존만).
10. **시드 카나리아**로 러버스탬프·라우터 false-negative 상시측정 + 킬스위치(임계초과→draft-only 강등).

## 미해결/2차 (out-of-scope for MVP)
- auto-publish(측정 후 per-source), batch 대량추출 UI, confidence 분석/튜닝, LLM verifier 힌트. source_file_ref 저장소(Drive vs Supabase) [OPEN]. 성능(6동시 추출 vs LLM rate limit) [OPEN].

## 로키 조건부 승인 3 (런칭 hard requirement)
① 카나리아 킬스위치 사전등록 ② 보험사 마스터리스트 오너+SLA+미등록 hold ③ grounding 유효성 측정.
> ※ ANU 판단: 소규모 운영 현실상 ①③(카나리아)은 **MVP 직후 fast-follow**로, ②(미등록 hold·오너)는 MVP 필수. 회장 결정 사항.

## 다음 단계
회장 승인 시 3문서(계획서/맥락노트/체크리스트) 작성 → T1~T9 3웨이브 위임(백엔드/프론트/QA, schema·상태기계 serial_only). Critical 게이트=T2 published fail-closed + T6 보험사명 필수select·고위험 확인.
