---
task_id: task-2026
type: plan
scope: task
created: 2026-04-20
updated: 2026-04-20
status: completed
---

# 계획서: task-2026

**task**: task-2026
**목표**: InsuRo 콘텐츠 팩토리 파이프라인 MVP를 프로덕션 수준으로 고도화 (PL-1~7)
**승인**: 아누 2026-04-20
**근거**: 체크리스트 PL 섹션 7건 구현 지시

---

## 목표

기존 MVP 파이프라인(pipeline.py + schemas/pipeline.py)을 프로덕션 수준으로 고도화:
- Pydantic 스키마 v1 고정 + pii 어노테이션
- 상태 머신(PENDING→RUNNING→SUCCESS/FAILED) + 전이 유효성 검증
- 비동기 재실행 큐 + 지수 백오프 재시도
- 부분 롤백(성공 단계 보존, 실패 단계만 리셋)
- AutomationStepper 4단계 확장 + 폴링 지수 백오프
- PII 로그 마스킹
- E2E 4축 실패 시나리오 테스트

## 범위

### 포함
- PL-1: Pydantic 스키마 계약 고도화 (schema_version, snapshot, result 필드)
- PL-2: pipeline_runs 상태 머신 + 전이 유효성 검증
- PL-3: 비동기 재실행 큐 (requeue_failed_stage + retry API)
- PL-4: 부분 롤백 전략 (성공 단계 스킵)
- PL-5: AutomationStepper 4단계 확장 + 폴링 지수 백오프
- PL-6: PII 로그 마스킹
- PL-7: E2E 4축 실패 시나리오 테스트 (8개)

### 제외 (다음 페이즈 이후)
- Supabase Realtime 실시간 상태 (WebSocket 연동)
- pipeline_runs DB 테이블 (현재 인메모리)
- C 단계(PUBLISH) 실제 구현
- ARQ 작업 큐 (현재 BackgroundTasks 유지)

## 위임 계획

- PL-1,2,6: **불칸(백엔드)** — 스키마/상태머신/마스킹
- PL-3,4: **불칸(백엔드)** — 비동기 큐/롤백
- PL-5: **이리스(프론트엔드)** — Stepper/폴링
- PL-7: **아르고스(테스터)** — E2E 실패 테스트

## 검증 기준

- pytest: `cd server && python3 -m pytest tests/test_pipeline.py -v` → 28 passed
- grep: `pipeline_runs|PipelineRun` @ server/ → 다수 히트
- grep: `BackgroundTasks|requeue_failed` @ server/ → 다수 히트
- L1: uvicorn 서버 기동 + /api/status 200 + /api/pipeline/retry 401(인증 필요)
