---
task_id: task-2354
type: context
scope: task
created: 2026-05-02
updated: 2026-05-02
status: in-progress
---

# 맥락노트: task-2354

**task**: task-2354 — InsuRo 복합설계 매트릭스 캡처 + history + CRM 자동 연동

---

## 결정 근거

상세 의사결정은 시스템 3문서를 진실의 원천으로 한다:
- `/home/jay/workspace/memory/plans/insuro-composite-design/plan.md`
- `/home/jay/workspace/memory/plans/insuro-composite-design/context-notes.md`
- `/home/jay/workspace/memory/plans/insuro-composite-design/checklist.md`

본 task별 노트는 Phase 0 실행 시점의 결정만 기록한다.

---

## Phase 0 실행 결정 (2026-05-02)

### 진행 방식
- **코드 미작성**: Phase 0은 조사/설계 단계. 어떤 .py/.ts/.tsx/.sql도 만들지 않음.
- **worktree 미생성**: 코드 변경 없음 → worktree 불필요. 일반적인 Lv.2+ 워크트리 격리 규칙은 코드 변경이 있을 때만 적용.
- **L1 스모크테스트 N/A**: 실제 동작 검증 대상이 없으므로 "L1 미통과: 사유 명시"로 처리.

### 위임 흐름
- 페룬(Opus, 팀장) → 스바로그(Sonnet, 백엔드) Phase 0 조사
- 스바로그 → 보고서 초안 생성 (`task-2354-phase0-cr_mapping.md`)
- 마아트(Sonnet, 횡단조직 독립 검증) → critical 레벨 검증 (PASS, 권고 4건)
- 스바로그 → 권고 반영 (Edit + grep 검증)
- 페룬 → 통합 보고서 + 3문서 업데이트

### 모델 선택
- 스바로그/마아트 모두 **Sonnet** 사용. 이유: SQL/스키마 정확 인용 + 보안 트레이드오프 판단 필요. Haiku로는 정확성 보장 불가.
- 페룬 본인은 Opus(설계/검토/통합) 유지.

---

## 3 Step Why (Phase 0 단계)

상세 3 Step Why는 시스템 context-notes.md 139~153라인에 이미 기록 (2026-05-02 brainstorming 시점). Phase 0 단계 한정 자문:

**1st Why**: 왜 Phase 0(사전 조사)이 필요한가?
→ **A**: 기존 customers 평문 PII와 신 설계 암호화 요구의 간극 + 자동 push 흐름과 명시적 클릭 원칙의 간극 + 컴포지트 유니크 제약 부재로 UPSERT 동시성 보장 불가. 코드 작성 전 매핑 + 결정 필요.

**2nd Why**: 왜 A(매핑+결정 우선)가 다른 접근(곧바로 Phase 1 코드 작성)보다 최선인가?
→ **B**: Codex 사전 검증이 critical 1건 + high 3건을 지적했고, 이는 Phase 1 코드 작성 후 발견 시 재작업 비용이 크다(예: PII 암호화 방식 변경 시 마이그레이션 재실행). 사전에 회장 결정 6건을 받아두면 Phase 1 PR 1회로 정확한 구조를 만들 수 있음.

**3rd Why**: 왜 B(사전 결정 6건)가 다른 대안(점진적 결정)보다 나은가?
→ **C**: PII 암호화 + 키 관리 + 자동 push 차단 + 기존 데이터 처리는 모두 강결합 결정이다. 한두 개만 결정하고 시작하면 나머지가 결정될 때 이미 작성된 코드를 폐기해야 함. 회장이 한 번에 6건을 결정하는 것이 가장 적은 폐기 비용.

**일관성 검증**: A(매핑+결정 필요) → B(사전 결정 = 적은 재작업) → C(강결합 결정 = 일괄 결정 우월). 논리 일관 ✅

---

## 회장 승인 대기 항목 (6건, 보고서 8절 참조)

1. PII 암호화 방식 (Python Fernet 권장)
2. 키 보관 방식 (.env + 운영 환경변수)
3. 기존 customers 평문 처리 (Phase 1은 신규만, 기존은 Phase 3)
4. 자동 push 차단 시점 (Phase 1과 동시)
5. ohmy_user_views deprecation (Phase 2)
6. customers 유니크 제약 방식 (agent_id, customer_key_hash 복합)

---

## Phase 1+ 진입 조건

- 회장이 6건 결정에 답변
- dev6 페룬이 답변 반영하여 Phase 1 task 신규 dispatch (예: task-2354.1)
- worktree 생성 + 마이크로태스크 분해 + 팀원 병렬 위임

## 회피 사항 (절대 하지 말 것)

- 회장 승인 전 Phase 1 코드 작성 — plan.md `진행 순서` 명시 위반
- Phase 0 보고서 외 다른 산출물 변경 — 범위 외
- 마아트 권고 일부만 반영 — 사실 정합성 PASS 무효화 위험

---

## 참조 자료

- 시스템 3문서: `/home/jay/workspace/memory/plans/insuro-composite-design/`
- Phase 0 보고서: `/home/jay/workspace/memory/reports/task-2354-phase0-cr_mapping.md`
- 통합 보고서: `/home/jay/workspace/memory/reports/task-2354.md`
- task 파일: `/home/jay/workspace/memory/tasks/task-2354.md`

## 주의사항

- 회장이 6건 결정 답변 시 시스템 3문서(`memory/plans/insuro-composite-design/`)에 반영하고, Phase 1 task를 dispatch.
- Phase 1 dispatch 전 본 보고서의 결정 사항이 답변되었는지 페룬이 직접 확인할 것.
