★★★ 작업 취소됨 (CANCELLED) ★★★

# [Lv.1 fix] 소식지 AI분석 소비처 — 승인(published)된 소식지만 사용하도록 review_status 필터

## allowed_resources
```yaml
allowed_resources:
  paths:
    - "server/main.py"
    - "server/tests/**"
  forbidden_paths:
    - ".github/**"
    - "extension/**"
    - "src/**"
    - "server/migrations/**"
    - "server/newsletter_review.py"
    - "server/newsletter_cross_verify.py"
    - "server/newsletter_validation.py"
  commands: ["pytest","python3","git"]
  merge_policy: "none"
  ttl_hours: 8
```
> ★ base=현 origin/main. 근거: 검토 워크플로우 게이트가 소비 지점에서 미강제됨(회장 확인 요청).

## 배경 (ANU 실증 갭)
검토 워크플로우의 목적 = "사람 승인 전엔 소식지 내용을 사용 안 함"(fail-closed, 오추출·숫자오독 노출 방지). 그러나 **소식지 AI분석 소비처**(`server/main.py:6152` 부근, `@app.post("/api/insuro/newsletter-chat")`)가:
```python
query = sb.table("newsletters").select("company_name,month_key,title,extracted_text").order("company_name").limit(20)
```
**`review_status` 를 전혀 필터하지 않아**, 미승인(pending_review 등) 소식지 추출본도 그대로 분석에 사용됨 → 게이트 실효 없음.

## 작업 (surgical)
- newsletter-chat(및 소식지 extracted_text 를 **분석/발행 소비** 목적으로 읽는 다른 지점이 있으면 동일 적용)의 newsletters 조회에 **`review_status='published'` 필터 추가** — 사람 승인된 것만.
  ```python
  query = sb.table("newsletters").select(...).eq("review_status", "published").order(...)
  ```
- ★ 기존 소식지: 마이그레이션 017 backfill 로 `review_status='published'` 이므로 **그대로 조회됨**(회귀 없음). 신규 업로드만 승인 전까지 분석에서 제외됨.
- ★ **관리/검토 UI 조회(소식지 관리 목록 `select *`, 검토 대기 큐)는 건드리지 말 것** — 그건 관리자가 전체/대기건을 봐야 하는 뷰다. 이 필터는 **"소비(분석·발행)" 경로에만** 적용.
- review_status 컬럼이 없을 legacy 대비: 컬럼은 017 로 존재 보장(DEFAULT 'published'). 안전.

## 제약
- server/main.py 소비 조회 + 테스트만. 상태기계·cross_verify·validation·업로드 파이프라인 불변. 관리/검토 조회 불변.

## 검증
- `pytest server/tests/` 회귀 0. 신규: newsletter-chat 조회에 review_status='published' eq 필터가 포함됨 / pending_review·editing 등 미승인 건은 결과에서 제외 / published 건은 포함 (Supabase mock 또는 쿼리빌더 호출 검증).
- ★ L1: 실제 서버에서 미승인 소식지 1건이 newsletter-chat 컨텍스트에 안 들어오는지 확인(가능하면), 보고서 기록.

## 완료 (★ 순서 B)
- server/main.py + 테스트만. **dev6 금지** — dev1(헤르메스). 커밋 → push → **★ push 확인** → finish-task foreground 1회 → .done. ANU 독립검증·머지·재배포는 ANU.

## goal_assertions (auto-generated)
- `pytest server/tests/`
