# 회의 라우터 (가칭) — AI 회의록/메모 기반 일정·태스크 자동 분배 서비스

**Project Specification (v0.2, LLM=gpt-5.5 + UI 보강)**
**작성일:** 2026-05-01
**대상:** AI 코딩 에이전트(Claude Code, Cursor, Copilot Workspace) 및 인간 개발자
**기반 보고서:** `meeting_scheduler_market_research.md` (Conditional GO, Primary 전략 B Integration 라우터)

> 본 문서는 시장조사·사업 전략 산출물을 입력으로 받아 AI 코딩 에이전트가 즉시 빌드를 시작할 수 있도록 작성한 XML 구조 프로젝트 사양이다. 모든 결정은 보고서 권고(Conditional GO, Primary 전략 B Integration 라우터, Y3 Base ARR 210억)와 100% 정합한다.

---

```xml
<project_spec>

  <metadata>
    <title>회의 라우터 (Codename: MeetRouter Korea)</title>
    <subtitle>AI 회의록/메모 기반 일정·태스크 자동 분배 라우터</subtitle>
    <version>0.2 (LLM=gpt-5.5 + UI 보강)</version>
    <date>2026-05-01</date>
    <one_line_vision>
      어떤 회의록(클로바노트·다글로·Otter·Granola·텍스트·구두 메모)이 들어오든
      한국어 LLM이 일정·할일·담당자·마감일을 분리하여
      한국·글로벌 캘린더 5종 + 태스크 도구 5종 + 토종 협업툴 5종에
      자동 분배하는 한국 1호 라우터.
    </one_line_vision>
    <primary_strategy>B (Integration 라우터) — business-evaluator 04_business_strategy.md §4 Primary</primary_strategy>
    <secondary_strategy>D (B2B Enterprise) — 12개월 후 본격, 18개월 후 A(Niche 도메인) 확장</secondary_strategy>
    <go_nogo>Conditional GO (조건: 6–12개월 내 OEM 1건 + ISMS-P 인증 + 한국어 PMF)</go_nogo>
    <source_reports>
      - meeting_scheduler_market_research.md (메인)
      - _workspace/01_domestic_summary.md (국내 24개 서비스 / Whitespace 3선)
      - _workspace/02_global_summary.md (해외 43개 / 위협 Top 3)
      - _workspace/03_market_data.json (TAM/SAM/SOM, 가격 권고, ARPU)
      - _workspace/04_business_strategy.md (4가지 진입 전략 / BMC / 시나리오)
      - _workspace/04_business_evaluation.json (Risk Register 7건, 마일스톤)
      - _workspace/05_competitive_matrix.md (핵심 14개사 비교)
    </source_reports>
  </metadata>

  <vision>
    <one_paragraph>
      한국 시장에는 회의록을 텍스트로 표시하는 서비스(클로바노트·다글로·티로 등 12개)는 많지만,
      회의록을 받아서 다중 캘린더+다중 태스크에 자동으로 분배하는 라우터는 부재한다.
      24개 국내 서비스 중 직접 제공자는 5–6개에 불과하며 50%는 텍스트로만 표시한다
      (출처: 01_domestic_summary.md §3). 본 프로젝트는 그 빈 공간을
      "한국어 native + 한국 협업툴 5종 통합 + 글로벌 캘린더/태스크 통합"의
      라우터로 12–18개월 내 선점하는 것을 목표로 한다.
    </one_paragraph>
    <north_star>
      "회의가 끝나면 일정·할일·메일 follow-up까지 자동으로 정리되어
       3개 이상의 도구(캘린더·태스크·메신저)에 분배되어 있다"
       — 사용자가 단 한 번의 승인으로 평균 30–60분의 회의 후 작업을 90초로 단축.
    </north_star>
    <three_year_target>
      Y3 한국 ARR Base 210억원 (Top-down 점유율 3% × Bottom-up 사용자 모델 ±5% 수렴 검증).
      유료 사용자 80,000명 + B2B seats 60,000 + Enterprise logos 35.
    </three_year_target>
  </vision>

  <market_context>
    <tam>$6.5B (글로벌 2025) → $14.0B (2029, CAGR 21%). 출처: Gartner / TBRC / Plaud</tam>
    <sam_korea>₩2,800억 (2025) → ₩7,000억 (2029, CAGR 25.7%). 출처: NIPA / IDC / 자체 산정</sam_korea>
    <sam_korea_japan>$0.68B (2025) → $1.7B (2029)</sam_korea_japan>
    <som_3yr_base>₩210억 ARR (Y3 Base, 점유율 3%)</som_3yr_base>
    <som_weighted_expected>₩200억 ARR (Conservative 30% + Base 50% + Optimistic 20%)</som_weighted_expected>

    <competitor_summary>
      국내 24개(domestic-scout) + 해외 43개(global-scout) = 총 67개.
      국내 "회의→캘린더 자동등록 직접 제공자" 5–6개(21%, Whitespace 21%).
      해외 한국어 native는 Notta(JP)뿐 — 진입 윈도우 12–18개월.
    </competitor_summary>

    <top_threats>
      - T1 빅테크 번들 squeeze (Google Gemini in Calendar / MS Copilot) — Risk Score 20
      - T2 Notta(JP) 한국어 native + ¥2.3B Series B 자금 — Risk Score 20
      - T3 Granola($1.5B 유니콘) 한국어 본격 지원 가능성
      - T4 토종 강자 SKT 에이닷·두레이·클로바노트의 라우터 직접 구현
    </top_threats>

    <whitespace>
      회의록(어떤 출처든) → 한국 캘린더 5종(네이버·카카오·구글·MS Outlook·두레이)
      + 글로벌 태스크 5종(Notion·Asana·Jira·Linear·ClickUp)
      + 토종 협업툴 5종(잔디·두레이·플로우·카카오워크·네이버웍스)
      에 자동 분배하는 라우터 — 국내·글로벌 모두 부재.
    </whitespace>

    <market_validation>
      Top-down 모델 210억 ↔ Bottom-up 사용자 모델 204억 ±3% 일치
      (한국 화이트칼라 11.56M × 35% × 점유율 3% × 14,000원/월 × 12 = 204억).
      Fireflies $11M ARR(약 152억)의 1.4배 — Notta 한국 부분과 동급 수준.
    </market_validation>
  </market_context>

  <users_and_personas>
    <persona id="P1" name="VC/컨설턴트 임원 (B2C 파워유저)">
      <demographics>30–55세, 서울/경기, 회의 주당 15+회</demographics>
      <pain_points>
        - 회의 후 일정·할일 정리에 매일 30–60분 소요
        - 클로바노트로 받아쓰기는 되지만 캘린더 등록은 수동
        - 노션/구글캘린더/카카오톡/슬랙에 분산 저장
      </pain_points>
      <jtbd>회의 끝나면 일정·할일·메일이 자동으로 정리되어 있길 원함</jtbd>
      <willingness_to_pay>월 9,900원~13,900원 (Pro/Premium)</willingness_to_pay>
      <population>한국 화이트칼라 11.56M 중 5–10% = 60–120만명 (출처: 04_business_evaluation.json bmc.customer_segments.tier1)</population>
    </persona>

    <persona id="P2" name="중견 SMB(20–100명) 운영팀장 / 스타트업 PM">
      <demographics>스타트업·중견 SMB, 잔디·두레이·노션·슬랙 사용</demographics>
      <pain_points>
        - 팀 회의록이 잔디/두레이/노션/Gmail로 분산
        - 액션 아이템이 누구 책임인지·언제까지인지 흐려짐
        - 기존 도구(잔디·두레이) AI는 자기 도구 안에서만 동작
      </pain_points>
      <jtbd>회의록 한 번 업로드하면 팀 캘린더+태스크보드+메신저에 자동 분배되길 원함</jtbd>
      <willingness_to_pay>seat당 월 18,000–25,000원 (B2B Standard/Pro)</willingness_to_pay>
      <population>한국 SMB 약 80만개 중 SaaS 도입 가능 8만개 팀 = seat 80–150만</population>
    </persona>

    <persona id="P3" name="대기업 임원 비서 / Chief of Staff (Enterprise)">
      <demographics>매출 1,000억+ 기업, 공공·금융·법무 임원 보좌</demographics>
      <pain_points>
        - 데이터 주권·PIPA로 글로벌 SaaS(Otter·Granola) 사용 불가
        - 임원 일정·결재·미팅 follow-up이 모두 수동
        - 두레이·잔디 안에서만 자동화되고 외부 캘린더와 단절
      </pain_points>
      <jtbd>온프레미스 한국어 LLM 기반으로 보안 위반 없이 회의→일정→결재 자동화</jtbd>
      <willingness_to_pay>seat당 월 40,000원+ 또는 구축형 1.5억–10억 + 유지보수 15–20%</willingness_to_pay>
      <population>매출 1,000억+ 기업 4,000 + 공공기관 1,200 + 대형 로펌 100</population>
    </persona>
  </users_and_personas>

  <value_proposition>
    <one_sentence>
      "어떤 회의록이든 던지면, 한국·글로벌 캘린더와 태스크 도구에 한국어 매너로 자동 분배되는 단 하나의 라우터."
    </one_sentence>
    <differentiation_top5>
      <d1>라우팅 — 회의록 출처 무관, 캘린더 5종 + 태스크 5종 + 협업툴 5종 동시 자동 분배 (글로벌 SaaS 우선순위 외)</d1>
      <d2>한국어 매너 특화 — 존댓말·호칭·"부장님께 ~을 요청드린 건"같은 화법에서 정확한 액션 추출</d2>
      <d3>멀티 LLM 라우팅 — gpt-5.5(1순위) + HyperCLOVA X(데이터 주권/온프레미스) + Claude Sonnet 4.6(vendor lock-in 방어) + 비용 최적화 mini 변종으로 정확도·비용·리스크 동시 최적화</d3>
      <d4>토종 협업툴 OEM 통합 — 잔디·두레이·플로우·카카오워크·네이버웍스 마켓플레이스 1순위 등재</d4>
      <d5>온프레미스/데이터 주권 옵션 — 공공·금융·법무에서 글로벌 SaaS 대신 선택할 유일한 옵션 (NCP/Neurocloud)</d5>
    </differentiation_top5>
    <positioning_statement>
      "Notta가 한국어 transcription을 잘하는 일본 회사라면, 우리는 한국 회의 문화·협업툴·LLM·인증을
       모두 갖춘 라우터다. Reclaim/Motion이 자율 스케줄러라면, 우리는 입력 출처 무관 다중 출력 라우터다."
    </positioning_statement>
  </value_proposition>

  <scope>
    <in_scope_phase1_p0>
      <item>F1 회의록 입력 어댑터 — 클로바노트(API/파일)·다글로(파일)·Otter(파일)·Granola(파일)·일반 텍스트·음성 업로드</item>
      <item>F2 한국어 액션 추출 엔진 — LLM JSON mode로 {assignee, action, due_date, location, attendees, confidence} 추출</item>
      <item>F3 캘린더 자동 등록 — Google Calendar(OAuth2), Microsoft 365, 네이버 캘린더, 카카오 톡캘린더, 두레이!</item>
      <item>F4 태스크 자동 분배 — Notion, Asana, Jira, 잔디, Linear (Phase 1: 3개 이상 필수)</item>
      <item>F5 검토 큐 — 신뢰도 0.7 미만/보안 키워드 검출 시 사용자 승인 후 등록</item>
      <item>웹앱(Next.js) + iOS/Android 베타 (PWA 우선, native shell은 Phase 2)</item>
      <item>Freemium 가격 — Free 25회의/월 + Pro 9,900원 + Premium 13,900원 (출처: 03_market_data.json pricing_recommendation B2C 6,900–13,900)</item>
    </in_scope_phase1_p0>

    <out_of_scope>
      <item>음성 디바이스 자체 제조 (Plaud/Limitless형) — Phase 3 OEM 파트너십으로만 검토</item>
      <item>AI Agent execution(메일/CRM/결재 직접 실행) — Phase 2 후반~Phase 3, 보안 검토 후</item>
      <item>한국어/영어 외 언어 — 일본어는 Phase 3 (24개월차) 진출 검토</item>
      <item>일본/동남아 진출 — Phase 3 이후</item>
      <item>자체 STT 엔진 개발 — 6개월 내 클로바·다글로 동등 품질 확보 비현실적 (W1). API 의존, fine-tuning은 Phase 2</item>
      <item>카카오톡 메시지 자동 분석 — PIPA·정책 리스크 큼, Phase 3 이후 정책 명확화 시점에 재검토</item>
      <item>네이티브 모바일 앱 (Phase 1은 PWA + 웹앱 우선)</item>
    </out_of_scope>
  </scope>

  <core_features>

    <feature id="F1" priority="P0" phase="1">
      <name>회의록 입력 어댑터</name>
      <description>다양한 회의록 출처를 표준 내부 포맷(MeetingTranscript)으로 정규화하는 어댑터 레이어</description>
      <inputs>
        - 클로바노트: API(naver.worksmobile clovanote), 파일(.docx/.txt/.json export)
        - 다글로: 파일 다운로드(.txt/.docx)
        - Otter / Granola / Fathom / Fireflies: 파일 export(.txt/.vtt)
        - 일반 텍스트(붙여넣기, max 100KB)
        - 음성 파일 업로드(.mp3/.m4a/.wav, max 200MB) → 내부 STT 라우팅
        - 구두 입력 (브라우저 MediaRecorder, 최대 60분)
      </inputs>
      <output_schema>
        MeetingTranscript {
          id: uuid, source: enum(clovanote|daglo|otter|granola|text|voice|other),
          locale: 'ko-KR', participants: [{name, role}], segments: [{speaker, text, start_ms, end_ms}],
          raw_text: string, created_at: timestamp, user_id: uuid, org_id: uuid?
        }
      </output_schema>
      <acceptance_criteria>
        - 6종 출처에서 동일한 MeetingTranscript 스키마로 정규화 성공률 95%+
        - 100KB 텍스트 처리 시간 p95 < 3초
        - 200MB 음성 파일 STT까지 p95 < 90초 (ClovaNote API 기준)
      </acceptance_criteria>
    </feature>

    <feature id="F2" priority="P0" phase="1">
      <name>한국어 액션 추출 엔진</name>
      <description>회의록에서 일정·할일·담당자·마감일·장소·참석자를 한국어 매너에 맞춰 추출</description>
      <pipeline>
        1. MeetingTranscript 입력 → 화자별 발화 그룹핑
        2. 시스템 프롬프트(한국어 회의 매너 사전 + 존댓말 패턴) + 사용자 컨텍스트(조직·역할 사전) Anthropic prompt caching 적용
        3. LLM JSON mode 호출 — OpenAI gpt-5.5 1순위(Responses API + Tool Use + JSON Schema + prompt caching), 짧은 회의록은 gpt-5.5-mini, fallback HyperCLOVA X(데이터 주권 고객) → Claude Sonnet 4.6(vendor lock-in 방어)
        4. 출력 검증 (Zod/Pydantic 스키마) → 신뢰도 0.7 이하면 검토 큐로
        5. 중복 제거(동일 액션 cosine similarity > 0.85) 및 시간 표현 정규화(KST)
      </pipeline>
      <output_schema>
        ActionItem {
          id: uuid, transcript_id: uuid, type: enum(meeting|task|reminder|email_followup|decision),
          title: string, description: string?,
          assignee: { name, email?, role? },
          due_at: timestamp?, due_text: string?, location: string?, attendees: [string],
          confidence: float (0..1), source_segment_ids: [uuid],
          status: enum(pending|approved|rejected|scheduled|failed), created_at, updated_at
        }
      </output_schema>
      <acceptance_criteria>
        - 한국어 평가셋 100건 기준 액션 추출 정확도 85%+ (Phase 1 종료 기준)
        - 존댓말 표현("~해주시기 바랍니다", "~부탁드리겠습니다") 어시그니 인식률 90%+
        - 마감일 표현("다음 주 화요일", "이번 분기 말") 정규화 정확도 88%+
        - p95 처리 시간 < 12초 (3,000자 회의록 기준)
      </acceptance_criteria>
    </feature>

    <feature id="F3" priority="P0" phase="1">
      <name>캘린더 자동 등록 (멀티 라우팅)</name>
      <description>승인된 ActionItem을 사용자가 연결한 캘린더 1개 이상에 동시 등록</description>
      <integrations_phase1>
        - Google Calendar (OAuth2, scope: calendar.events)
        - Microsoft 365 / Outlook (OAuth2 v2, scope: Calendars.ReadWrite)
        - 네이버 캘린더 (Naver Login + Calendar API, 2단계 동의 UX)
        - 카카오 톡캘린더 (Kakao OAuth + Calendar Open API)
        - 두레이! (CalDAV / 두레이 Open API 협상)
      </integrations_phase1>
      <conflict_resolution>
        - 동일 시각 중복 일정 검출 시 사용자 확인
        - 외부 캘린더 등록 실패 시 retry 3회(exponential backoff) + 검토 큐 fallback
        - idempotency_key로 중복 등록 방지(action_item_id + calendar_id 조합)
      </conflict_resolution>
      <acceptance_criteria>
        - 5종 캘린더 등록 성공률 90%+ (Phase 1 종료)
        - p95 등록 지연 < 5초
        - 중복 일정 0%, retry 후 최종 실패율 < 2%
      </acceptance_criteria>
    </feature>

    <feature id="F4" priority="P0" phase="1">
      <name>태스크 자동 분배</name>
      <description>승인된 ActionItem 중 type=task를 외부 태스크 도구에 등록</description>
      <integrations_phase1>
        - Notion (Database API)
        - Asana (Tasks API)
        - Jira (REST API v3)
        - 잔디 (Webhook + Open API)
        - Linear (GraphQL)
      </integrations_phase1>
      <integrations_phase2>ClickUp, Monday.com, Trello, 두레이! Project</integrations_phase2>
      <field_mapping>
        ActionItem.title → Task.name
        ActionItem.description → Task.description (출처 회의록 링크 자동 첨부)
        ActionItem.assignee.email → Task.assignee_id (이메일 매핑)
        ActionItem.due_at → Task.due_date
        ActionItem.confidence < 0.7 → label: "needs-review"
      </field_mapping>
      <acceptance_criteria>
        - Phase 1: Notion/Asana/Jira/잔디/Linear 5종 통합 + 등록 성공률 92%+
        - 사용자가 1개 이상의 task 도구를 연결한 경우 회의록 1건당 평균 분배 도구 수 1.5개+
      </acceptance_criteria>
    </feature>

    <feature id="F5" priority="P1" phase="2">
      <name>검토 큐 (Review Queue)</name>
      <description>신뢰도 0.7 미만 또는 보안 키워드 검출 액션을 사용자 승인 후 등록</description>
      <triggers>
        - confidence < 0.7
        - 보안 키워드 (회사 기밀/외부 도메인/금액 등) 검출
        - 조직 정책 위반 (예: 외부 일정 자동등록 차단)
        - 신규 어시그니(매핑 안 된 이메일)
      </triggers>
      <ux>분할 화면 — 좌: 회의록 원문 + 추출 근거 하이라이트 / 우: 액션 카드 (편집·승인·기각)</ux>
      <acceptance_criteria>승인 후 등록까지 p95 < 30초, 평균 검토 처리 시간 사용자당 < 90초/회의</acceptance_criteria>
    </feature>

    <feature id="F6" priority="P1" phase="2">
      <name>B2B 관리자 페이지 · SSO · 감사 로그</name>
      <description>Enterprise·SMB 관리자가 팀 정책·통합·감사 이력을 관리</description>
      <capabilities>
        - SAML 2.0 SSO (OneLogin, Okta, Azure AD, Naver Works)
        - 사용자/팀/역할 관리 (RBAC: Owner / Admin / Member / Reviewer)
        - 통합 정책 (예: "외부 도메인 자동 등록 금지", "임원 회의는 검토 큐 강제")
        - 감사 로그 (모든 등록·수정·삭제·승인) 7년 보관
        - 사용량/비용 대시보드
      </capabilities>
    </feature>

    <feature id="F7" priority="P1" phase="2">
      <name>ISMS-P 인증 대비 보안 강화</name>
      <description>Risk R3(ISMS-P 12개월 내 미확보) 완화. 9–12개월차 인증 완료 목표</description>
      <controls>
        - 데이터 암호화 at-rest (AES-256, KMS) / in-transit (TLS 1.3)
        - PIPA 준수 음성 데이터 보존 90일 / 사용자 옵션 / 자동 폐기
        - 개인정보 마스킹 옵션 (이름·전화번호·이메일 자동 비식별화)
        - 접근 통제 (MFA 필수, IP allowlist for admin)
        - 침투 테스트 (분기별), 취약점 스캔 (월간)
      </controls>
    </feature>

    <feature id="F8" priority="P2" phase="3">
      <name>도메인 특화 STT/LLM 모듈 (법무·의료·콜센터)</name>
      <description>Strategy A(Niche 도메인) 확장. 도메인 사전·전문 용어·EMR/LIMS 연계</description>
      <verticals>법무(녹취록·LIMS), 의료(EMR/EHR 연계, 의료 용어 사전), 콜센터(컴플라이언스·키워드 모니터링)</verticals>
    </feature>

    <feature id="F9" priority="P2" phase="3">
      <name>Agentic 워크플로우 v2 (메일·CRM·결재 자동 실행)</name>
      <description>Strategy 차별화 d3. 회의→일정→메일·CRM·전자결재까지 자동 실행</description>
      <integrations>Gmail, Outlook, Salesforce, HubSpot, 두레이! 결재, 잔디 메시지, Slack</integrations>
      <safety>모든 자동 실행은 Phase 3 초기에는 사용자 승인 후, 정책 학습 후 Phase 3 후반에 fully-autonomous 모드</safety>
    </feature>

  </core_features>

  <user_flows>

    <flow id="UF1" priority="P0">
      <name>핵심 라우팅 플로우 (Phase 1 메인)</name>
      <steps>
        1. 사용자: 회의록 업로드(파일 / 텍스트 / 음성)
        2. 시스템: F1 어댑터로 MeetingTranscript 정규화
        3. 시스템: F2 액션 추출 엔진 호출 (gpt-5.5 1순위, Responses API + JSON Schema + prompt cache; 데이터 주권 고객은 HyperCLOVA X 라우팅)
        4. 시스템: 신뢰도 0.7+ 액션은 자동 라우팅 후보, 0.7- 는 F5 검토 큐
        5. 사용자: 액션 카드 일괄 검토 (평균 90초)
        6. 시스템: F3 캘린더 + F4 태스크에 동시 등록 (병렬, idempotent)
        7. 사용자: 등록 완료 알림 (in-app + 이메일 옵션)
      </steps>
      <success_metric>회의록 1건 → 등록 완료까지 p95 < 3분, 사용자 작업 시간 90초 이내</success_metric>
    </flow>

    <flow id="UF2" priority="P1" phase="2">
      <name>실시간 미팅 봇 (Phase 2)</name>
      <steps>
        1. 사용자가 Zoom/Teams/Google Meet 회의 링크 등록
        2. 회의 시작 시 봇이 자동 입장 또는 사용자 데스크톱 캡처(bot-less, Granola 모방)
        3. 회의 진행 중 실시간 transcription
        4. 회의 종료 5분 내 UF1 자동 진입
      </steps>
      <decision>봇 모드 vs Bot-less 모드 — Granola가 후자로 유니콘 등극, 한국 사용자도 동의 절차 부담 회피 선호 → bot-less 우선</decision>
    </flow>

    <flow id="UF3" priority="P1" phase="2">
      <name>B2B 관리자 — 팀 정책 설정</name>
      <steps>
        1. Admin이 팀원의 캘린더·태스크 통합 권한 일괄 관리
        2. 정책 설정 — "외부 도메인 자동 등록 금지", "임원 회의는 검토 큐 강제", "PIPA 마스킹 ON"
        3. 감사 로그 검색·내보내기 (CSV/JSON)
      </steps>
    </flow>

    <flow id="UF4" priority="P0">
      <name>개인 메모 빠른 일정 추출 (P1 페르소나 핵심)</name>
      <steps>
        1. 사용자: "내일 3시에 김부장님과 강남에서 미팅, 끝나면 제안서 초안 보내야 함" 텍스트/구두 입력
        2. F2 즉시 추출 → "회의(내일 15:00, 강남, 김부장)" + "할일(제안서 초안 발송)"
        3. 1탭 승인 → F3/F4 등록
      </steps>
      <success_metric>입력 → 등록까지 < 15초</success_metric>
    </flow>

    <flow id="UF5" priority="P1" phase="2">
      <name>정책 위반 시 검토 큐 강제</name>
      <steps>
        1. 액션에 보안 키워드/외부 도메인/조직 정책 위반 검출
        2. 자동 등록 차단 → 검토 큐로 이동 (Admin/Reviewer 승인 필요)
        3. 사유 기록 → 감사 로그에 영구 보관
      </steps>
    </flow>

  </user_flows>

  <data_model>
    <entity name="User">
      id (uuid PK), email, name, locale (default ko-KR),
      org_id (FK Organization, nullable for B2C),
      role (owner|admin|member|reviewer),
      created_at, last_active_at,
      preferences (JSONB: timezone, default_calendars, auto_route_threshold)
    </entity>
    <entity name="Organization">
      id (uuid PK), name, plan (free|pro|premium|standard|business|enterprise),
      ssoConfig (JSONB), policies (JSONB: review_queue_rules, masking_rules),
      data_residency (kr-aws|kr-ncp|on-prem), retention_days (default 90),
      created_at
    </entity>
    <entity name="Integration">
      id, user_id (FK), org_id (FK nullable), kind (calendar|task|messaging),
      vendor (google|microsoft|naver|kakao|dooray|notion|asana|jira|jandi|linear),
      auth_payload (encrypted), scopes (text[]),
      status (active|expired|revoked), last_synced_at
    </entity>
    <entity name="MeetingTranscript">
      id, user_id, org_id, source (clovanote|daglo|otter|granola|text|voice|other),
      raw_text, segments (JSONB), participants (JSONB),
      audio_url (S3, nullable), duration_sec, locale,
      pii_masked (bool), retention_until (timestamp), created_at
    </entity>
    <entity name="ActionItem">
      id, transcript_id (FK), user_id, org_id,
      type (meeting|task|reminder|email_followup|decision),
      title, description, assignee (JSONB), due_at, due_text, location,
      attendees (text[]),
      confidence (float),
      status (pending|approved|rejected|scheduled|failed),
      source_segment_ids (text[]),
      created_at, updated_at
    </entity>
    <entity name="Routing">
      id, action_item_id (FK), integration_id (FK),
      external_id (외부 시스템 ID), idempotency_key (unique),
      status (queued|sent|confirmed|failed|retrying),
      attempts (int), last_error (text), routed_at
    </entity>
    <entity name="ReviewTask">
      id, action_item_id (FK), reason (low_confidence|policy_violation|security_keyword|new_assignee),
      assigned_to (user_id), status (open|approved|rejected),
      decided_by, decided_at, note
    </entity>
    <entity name="AuditLog">
      id, org_id, actor_id, action (create|update|delete|approve|reject|register),
      target_type, target_id, payload_diff (JSONB), ip, user_agent, created_at
      (Retention: 7년, Enterprise/B2B 필수)
    </entity>
    <entity name="EvalSample">
      id, transcript_id, expected_actions (JSONB), predicted_actions (JSONB),
      precision, recall, f1, model_version, eval_date
      (한국어 평가셋 골든 데이터)
    </entity>
    <indexes>
      ActionItem(user_id, status, due_at), Routing(idempotency_key UNIQUE),
      AuditLog(org_id, created_at DESC), MeetingTranscript(user_id, retention_until)
    </indexes>
  </data_model>

  <integrations>
    <calendar>
      <vendor name="Google Calendar" priority="P0" phase="1" auth="OAuth2" scope="calendar.events" />
      <vendor name="Microsoft 365 / Outlook" priority="P0" phase="1" auth="OAuth2 v2" scope="Calendars.ReadWrite" />
      <vendor name="네이버 캘린더" priority="P0" phase="1" auth="Naver Login" note="2단계 동의 UX 필수" />
      <vendor name="카카오 톡캘린더" priority="P0" phase="1" auth="Kakao OAuth" />
      <vendor name="두레이! 캘린더" priority="P0" phase="1" auth="CalDAV / Open API 협상" note="OEM 1순위 후보" />
      <vendor name="잔디 캘린더" priority="P1" phase="2" auth="Open API" />
      <vendor name="네이버웍스 캘린더" priority="P1" phase="2" auth="Works Mobile API" note="OEM 후보" />
      <vendor name="Apple iCloud Calendar" priority="P2" phase="3" auth="CalDAV" />
    </calendar>
    <stt>
      <vendor name="Naver ClovaNote API" priority="P0" phase="1" reason="한국어 STT 사실상 표준, 무료 한도 가장 관대" />
      <vendor name="Daglo" priority="P1" phase="2" reason="1시간 → 3분 변환 속도, 클로바 fallback" />
      <vendor name="OpenAI Whisper (open-source)" priority="P0" phase="1" reason="cost fallback, on-prem 옵션" />
      <vendor name="자체 fine-tuned (HyperCLOVA + Whisper-large-v3-ko)" priority="P2" phase="2-3" reason="Phase 2 후반 PoC 100,000건+ 데이터셋으로 fine-tuning" />
    </stt>
    <task>
      <vendor name="Notion" priority="P0" phase="1" />
      <vendor name="Asana" priority="P0" phase="1" />
      <vendor name="Jira" priority="P0" phase="1" />
      <vendor name="잔디" priority="P0" phase="1" note="OEM 후보" />
      <vendor name="Linear" priority="P0" phase="1" />
      <vendor name="ClickUp" priority="P1" phase="2" />
      <vendor name="Monday.com" priority="P2" phase="3" />
      <vendor name="Trello" priority="P2" phase="3" />
      <vendor name="두레이! Project" priority="P1" phase="2" note="OEM 후보" />
    </task>
    <llm>
      <vendor name="OpenAI gpt-5.5" priority="P0" phase="1" reason="OpenAI 차세대 플래그십. 한국어 능력 4o 대비 큰 폭 개선, Responses API + Tool Use + JSON Schema 강제 + prompt caching(1024+ 토큰 자동, 50% 비용 절감)" usage="기본 액션 추출 1순위" />
      <vendor name="OpenAI gpt-5.5-mini" priority="P0" phase="1" reason="cost optimizer. 단순 추출·짧은 회의록(<1,500자) 라우팅, 동급으로 gpt-5-mini 사용 가능" usage="단순/짧은 회의록 비용 최적화" />
      <vendor name="HyperCLOVA X (Naver Cloud)" priority="P0" phase="1" reason="데이터 주권/온프레미스 옵션(Neurocloud) — 공공·금융·법무 고객 전용 라우팅. Risk R4(OpenAI 단일 의존) mitigation" usage="데이터 주권 요구 고객의 1순위, on-prem 옵션" />
      <vendor name="Claude Sonnet 4.6 (Anthropic)" priority="P0" phase="1" reason="vendor lock-in 방어. 복잡 추론·1시간+ 회의 정밀 추출, prompt caching 강력" usage="복합 회의 정밀 추출 + OpenAI 장애 시 1차 폴백" />
      <vendor name="Solar Pro (Upstage)" priority="P1" phase="1" reason="한국어 비용 옵션 추가 분산, second opinion" usage="저신뢰 케이스 cross-check 폴백" />
      <vendor name="OpenAI gpt-5.5-realtime" priority="P2" phase="2" reason="실시간 미팅 봇(UF2) 단계 STT-LLM 통합 스트리밍" usage="Phase 2 실시간 미팅 봇 실험" />
      <vendor name="Kanana (Kakao)" priority="P2" phase="2" reason="strategic acquirer 정렬 (Risk R4 mitigation)" />
      <vendor name="EXAONE (LG)" priority="P2" phase="3" reason="공급자 추가 분산" />
    </llm>
    <messaging_phase2>
      Slack, Microsoft Teams, 카카오톡 비즈니스 메시지(API 가능 범위), 잔디 Webhook
    </messaging_phase2>
    <auth>
      <method name="OAuth2" providers="Google, Microsoft, Naver, Kakao" phase="1" />
      <method name="SAML 2.0 SSO" providers="Okta, OneLogin, Azure AD, 네이버웍스" phase="2" note="Enterprise 필수" />
      <method name="MFA" providers="TOTP, WebAuthn" phase="2" />
    </auth>
  </integrations>

  <tech_stack>
    <frontend_engineering>
      <stack>
        Next.js 15 (App Router) + React 19 + TypeScript 5.5 + Tailwind CSS v4 (CSS-first config)
        + shadcn/ui v2 (Radix headless 기반) + TanStack Query v5 + Zustand (lightweight client state)
        + React Hook Form + Zod + framer-motion + Recharts + react-day-picker + dnd-kit + Lucide
        (PWA 우선, native shell은 Phase 2 — Capacitor 또는 React Native 결정 필요)
      </stack>
      <state_management>
        Server state: TanStack Query (auto cache + background refetch, 검토 큐 polling/SSE),
        Client state: Zustand (modal·drawer·draft 등 가벼운 UI 상태),
        Form state: React Hook Form + Zod (액션 검토 큐 일괄 승인 폼, OAuth 동의 단계 입력)
      </state_management>
      <data_fetching>
        Next.js RSC(서버 컴포넌트) 우선 — 회의록 목록·대시보드 집계 등 SEO/초기 로딩 중심 페이지에 적용,
        클라이언트 컴포넌트(인터랙션 위주: 검토 큐 드래그·캘린더 캔버스)는 격리하여 hydrate 비용 최소화.
        SWR 패턴: stale-while-revalidate. 검토 큐는 polling 5초 또는 SSE 구독.
      </data_fetching>
      <performance_targets>
        LCP < 2.0s (3G Fast), TTI < 3.0s, CLS < 0.05, INP < 200ms,
        first-load JS bundle < 200KB (gzip), route-level code splitting,
        음성 업로드 후 검토 큐까지 p95 < 90초 (백엔드 KPI와 정합)
      </performance_targets>
      <testing>
        Unit: Vitest, Component: Testing Library, E2E: Playwright (S1~S6 happy path),
        Visual regression: Chromatic 또는 Playwright screenshot diff,
        a11y: @axe-core/playwright
      </testing>
      <design_review_loop>
        Storybook 도입 (Phase 1 후반), 컴포넌트 모두 카탈로그화,
        디자인 토큰 변경 시 자동 visual diff, 디자이너 리뷰 워크플로우(GitHub Actions + Chromatic).
      </design_review_loop>
    </frontend_engineering>
    <backend>
      <decision_open>FastAPI (Python 3.13) vs NestJS (Node 22) — OQ1 open question</decision_open>
      <recommendation>
        Phase 1 권장: FastAPI (Python 3.13)
        근거: (1) OpenAI SDK(gpt-5.5 Responses API) / HyperCLOVA X / Whisper / Anthropic SDK 모두 Python 우선,
              (2) ML/LLM 평가 파이프라인(LangSmith, evals) Python 생태계 풍부,
              (3) async (uvicorn + httpx) 성능 충분.
        대안: Node 팀 역량이 강한 경우 NestJS + Prisma — Phase 1 OQ1로 최종 결정.
      </recommendation>
    </backend>
    <database>
      PostgreSQL 16 (한국 리전 RDS 또는 NCP DB)
      + pgvector 0.7 (회의록 임베딩 검색·중복 액션 detection)
      + Redis 7 (세션 + Celery/BullMQ 큐 + rate limit)
    </database>
    <queue>
      Celery (Python 백엔드) 또는 BullMQ (Node 백엔드).
      라우팅 워커: 캘린더/태스크 등록 비동기 처리, retry with exponential backoff.
    </queue>
    <storage>
      AWS S3 (한국 리전 ap-northeast-2) — Phase 1 기본
      NCP Object Storage — Enterprise/공공 옵션 (Phase 2 데이터 주권 요구 충족)
      파일 보존: 음성 90일(기본) / 사용자 옵션 30·60·180일 / Enterprise 7년
    </storage>
    <infra>
      Phase 1: AWS Korea (ap-northeast-2) — EKS or ECS Fargate + RDS + ElastiCache
      Phase 2: NCP 듀얼 리전 — Enterprise 데이터 주권 요구 (OQ7)
      Phase 3: 온프레미스 옵션 (공공·금융, Neurocloud + 자체 K8s)
    </infra>
    <observability>
      OpenTelemetry (logs, metrics, traces)
      Grafana + Prometheus + Loki
      Sentry (FE/BE 에러)
      LangSmith 또는 자체 평가 파이프라인 (한국어 액션 추출 정확도 매주 측정)
    </observability>
    <ml_ops>
      평가셋: 한국어 회의 골든셋 100건 (Phase 1 구축, Phase 2까지 1,000건+)
      매주 회귀 테스트 (precision/recall/F1 ≥ baseline-2%)
      Prompt versioning (PromptLayer 또는 자체 git 기반)
      A/B 테스트 (모델 라우팅 정책 테스트)
    </ml_ops>
    <ci_cd>
      GitHub Actions + Trunk-based + Preview 환경 (Vercel for FE, Render/Fly.io for BE)
      ArgoCD or GitHub Actions deploy to EKS for Phase 2
    </ci_cd>
  </tech_stack>

  <ui_design_system>
    <design_principles>
      <p1>한국 비즈니스 사용자(VC·컨설턴트·임원비서·B2B 관리자) 대상 — 미니멀·화이트 톤·정보 밀도 높음. 회의/일정 카테고리는 신뢰가 핵심이므로 과한 색상·일러스트 자제.</p1>
      <p2>애플 스타일 미니멀 — 여백·계층·타이포 중심. 한 화면에서 50건+ 액션을 부담 없이 처리 가능한 정보 설계.</p2>
      <p3>한국어 가독성 우선 — Pretendard Variable 강제, 줄간격·자간 한국어 기준 최적화.</p3>
      <p4>1탭 승인 원칙 — 핵심 라우팅 플로우(UF1)는 모든 화면에서 평균 클릭 수 ≤ 3.</p4>
      <p5>일관된 상태 표현 — confidence·등록 상태·라우팅 결과를 색·아이콘·라벨 토큰화하여 모든 화면에서 동일하게 표시.</p5>
    </design_principles>
    <design_tokens>
      <color>
        Primary: #0066CC (한국 비즈니스 신뢰감), Background: #FFFFFF / Dark #0A0A0A,
        Surface: #F7F7F8 / Dark #18181B, Text: #1A1A1A / Dark #FAFAFA,
        Accent semantic: success #10B981, warning #F59E0B, danger #EF4444, info #3B82F6.
        ※ 차분한 톤 — 회의/일정은 신뢰 카테고리, 과한 색상 자제. confidence 시각화는 회색 톤(0.0~0.5) → primary blue(0.5~1.0)로 단조 그라데이션.
      </color>
      <typography>
        Korean: Pretendard Variable (폴백 Apple SD Gothic Neo, Noto Sans KR)
        English/Numeric: Inter Variable
        스케일: 12·14·16·18·20·24·30·36·48 (Tailwind v4 기준 1rem=16px)
        Line-height: body 1.6, heading 1.2. 한국어 자간 -0.01em(본문) / -0.02em(헤딩).
      </typography>
      <spacing>4px base grid, 토큰 4·8·12·16·24·32·48·64 (Tailwind 1·2·3·4·6·8·12·16)</spacing>
      <radius>sm 6px / md 10px / lg 14px / xl 20px / pill full</radius>
      <shadow>soft layered (apple style), elevation 0~5단계 (0=flat, 5=modal)</shadow>
      <motion>
        ease-out 200ms (default tween), spring framer-motion (drawer/modal/toast),
        prefers-reduced-motion 환경 변수 존중하여 모든 애니메이션 0ms로 강등 가능.
      </motion>
    </design_tokens>
    <component_library>
      Base: shadcn/ui v2 (Radix headless 기반), Tailwind v4 (CSS-first config, @theme inline 사용),
      Charts: Recharts (대시보드 트렌드·바·도넛), TanStack Table (검토 큐 가상 스크롤),
      Forms: React Hook Form + Zod, Calendar UI: react-day-picker (캘린더 미리보기 캔버스 보조),
      Drag/Drop: dnd-kit (검토 큐 카드 → 캘린더/태스크 라우팅 변경),
      Icons: Lucide (기본) + 커스텀 SVG (네이버·카카오·잔디·두레이·플로우 등 한국 협업툴 로고).
    </component_library>
    <responsive>
      Breakpoints: mobile <640px, tablet 640-1024px, desktop 1024-1440px, wide 1440px+.
      1순위: desktop (B2B 사용자 PC 위주) — 정보 밀도 최우선.
      mobile은 알림 수신·1탭 승인·간단 검토 위주(라우팅·관리자 콘솔은 desktop only).
      iPad 1024px Split View 대응 (B2B 임원·비서 사용 시나리오).
    </responsive>
    <accessibility>
      WCAG 2.2 AA 준수, 키보드 내비게이션 100% (Tab/Shift+Tab/Enter/Esc/Space 표준),
      한국어 스크린리더 (Sense Reader, NVDA, VoiceOver) 호환,
      color contrast min 4.5:1 (AA), focus ring 2px 명확(primary blue),
      한국어 IME 입력 안정성 — 한글 조합 중 submit 차단(검토 큐 일괄 승인 폼 안전장치).
    </accessibility>
    <dark_mode>
      Phase 2 이후 도입. system 우선, manual override 허용.
      디자인 토큰은 v1(Phase 1) 단계에 모두 dark-pair 정의(향후 무중단 토글).
    </dark_mode>
    <i18n>
      Phase 1: ko-KR only.
      Phase 3: ja-JP, en-US — next-intl + ICU MessageFormat. 통화·날짜·시간·존댓말 매너 별도 사전.
    </i18n>
    <empty_loading_error_states>
      Skeleton(loading) — 카드/테이블 형태별 표준 컴포넌트.
      일러스트+CTA(empty) — 일관된 톤 일러스트(미니멀 라인) + 다음 액션 CTA.
      상세 메시지+재시도(error) — error code + 사용자 행동 가능한 문구 + 재시도 버튼 표준화.
      partial-failure(라우팅 일부 실패) — 성공한 도구 / 실패한 도구 분리 표시 + 재시도 단위 명확.
    </empty_loading_error_states>
  </ui_design_system>

  <core_screens>

    <screen id="S1" name="Onboarding & 통합 연결" phase="1" priority="P0">
      <purpose>가입 → 캘린더 1종 + 회의록 소스 1종 OAuth 연결까지 3분 안에 완료. 첫 회의록 처리 성공 경험 즉시 제공.</purpose>
      <users>P1(VC/컨설턴트), P2(SMB PM), P3(임원비서) 신규</users>
      <entry_points>랜딩페이지 CTA / 베타 초대 메일 / 채널 추천 링크</entry_points>
      <components>
        상단: 진행률 stepper (가입 → 캘린더 연결 → 소스 연결 → 첫 시도) /
        메인: 단계별 카드(권한 범위 명시·아이콘) /
        사이드: "왜 이 권한이 필요한가" 설명 + PIPA 동의 toggle 2단계
      </components>
      <interactions>OAuth 팝업, 단계 skip 가능(데모 모드), 키보드 enter로 next</interactions>
      <states>loading(권한 체크), empty(첫 진입), error(권한 거부 → 재시도 가이드), success(축하 + 다음 단계)</states>
      <kpi>onboarding 완료율 75%+, 평균 완료 시간 < 3분, drop-off 단계별 측정</kpi>
      <api_data>OAuth provider endpoints (Google/MS/Naver/Kakao/Dooray), Integration entity 생성</api_data>
    </screen>

    <screen id="S2" name="회의록 입력 페이지" phase="1" priority="P0">
      <purpose>텍스트 paste / 파일 업로드 / 음성 녹음 3 탭으로 회의록을 입력 → F1 정규화 진행률 시각화</purpose>
      <users>P1·P2 일상 사용 진입점</users>
      <entry_points>대시보드 메인 CTA, 글로벌 핫키(Cmd/Ctrl+N), iOS 공유 시트(Phase 2)</entry_points>
      <components>
        상단: 3 탭 선택 (텍스트/파일/음성) /
        메인: 대형 드롭존 + 진행률 단계 (전사 → 추출 → 라우팅 결정) /
        사이드: 최근 업로드 5건 + 처리 상태
      </components>
      <interactions>드래그앤드롭, 클립보드 paste, MediaRecorder(최대 60분), 단계별 상태 실시간(SSE)</interactions>
      <states>loading(전사 진행률), empty(첫 사용 가이드), error(파일 형식·용량 초과·STT 실패별 메시지), success(검토 큐로 자동 이동 토스트)</states>
      <kpi>업로드 성공률 95%+, 입력 → 검토 큐 진입 p95 < 90초</kpi>
      <api_data>F1 어댑터 endpoint, MeetingTranscript 생성, ClovaNote API job, S3 presigned URL</api_data>
    </screen>

    <screen id="S3" name="액션 검토 큐" phase="1" priority="P0">
      <purpose>F2가 추출한 ActionItem 카드 리스트를 한 화면에서 50건+ 일괄 검토·라우팅 변경·승인</purpose>
      <users>P1·P2 핵심 일상 화면 (라우팅 플로우 UF1의 4-5단계)</users>
      <entry_points>S2 자동 진입 / 대시보드 "검토 대기 N건" 카드 / 알림 클릭</entry_points>
      <components>
        상단: confidence 필터 슬라이더 + 일괄 승인/기각 + 검색 /
        메인 좌: 회의록 원문(추출 근거 하이라이트) /
        메인 우: ActionItem 카드 리스트(가상 스크롤) — 카드별 편집·라우팅 변경 dropdown
      </components>
      <interactions>
        카드 클릭 → 인라인 편집, 드래그앤드롭으로 캘린더↔태스크 라우팅 변경,
        Shift+click 다중 선택, Cmd/Ctrl+A 전체 선택, Enter 일괄 승인,
        confidence별 정렬·필터, "검토 근거 보기" 토글
      </interactions>
      <states>loading(스켈레톤 카드 N개), empty(검토 대기 0건 축하 + 다른 회의록), error(부분 실패 카드별 재시도), success(승인 후 캘린더 미리보기로 자동 이동)</states>
      <kpi>회의 1건 검토 처리 시간 < 90초/사용자, 일괄 승인율 60%+, confidence 0.85+ 자동 라우팅 정확도 95%+</kpi>
      <api_data>F2 ActionItem list endpoint, Routing entity preview, F5 ReviewTask</api_data>
    </screen>

    <screen id="S4" name="캘린더 미리보기 & 등록" phase="1" priority="P0">
      <purpose>등록 직전 캘린더 캔버스에 후보 일정을 시각화하여 충돌·참석자 매핑·회의 링크를 한눈에 확인</purpose>
      <users>P1·P2·P3 모두, 임원 비서는 특히 충돌 검출 의존도 높음</users>
      <entry_points>S3 승인 후 자동 진입, 직접 진입(이번 주 일정 미리보기 카드)</entry_points>
      <components>
        상단: 주간 캘린더 캔버스 (Google·MS·Naver·Kakao·Dooray 5종 색 구분) /
        메인: 후보 일정 카드(시간·참석자·장소·회의 링크) + 충돌 알림 배지 /
        사이드: 참석자 자동 매핑(이메일·역할) + 회의 링크 자동 생성(Zoom/Webex/Meet)
      </components>
      <interactions>드래그로 시간 이동, 참석자 추가/제거, 회의 링크 토글, "충돌 시 자동 조정" 옵션</interactions>
      <states>loading(캘린더 페치), empty(연결된 캘린더 없음 → S5로 유도), error(외부 API 실패 부분 표시), success(등록 완료 + 캘린더별 결과)</states>
      <kpi>등록 정확도 90%+, 충돌 사전 검출 PT 80%+, p95 등록 지연 < 5초</kpi>
      <api_data>F3 캘린더 라우팅 endpoint, Routing entity, idempotency_key</api_data>
    </screen>

    <screen id="S5" name="통합·연결 설정" phase="1" priority="P0">
      <purpose>연결된 캘린더 5 / 태스크 5 / 협업툴 4 카드 그리드로 토큰 만료·재인증·권한 범위 관리</purpose>
      <users>P1·P2·P3 모두, B2B 관리자는 팀원 일괄 관리(S7로 확장)</users>
      <entry_points>설정 메뉴 / S4 진입 시 미연결 안내 / 토큰 만료 알림</entry_points>
      <components>
        상단: 연결 요약(N개 활성 / M개 만료) /
        메인: 카드 그리드 — 벤더 로고·연결 상태·마지막 동기 시각·scope 명시 /
        사이드: 추가 가능한 통합 카탈로그(Phase 2 도구 포함, "곧 출시" 라벨)
      </components>
      <interactions>카드 클릭 → 재인증·해제·scope 수정, 일괄 재인증, OEM 마켓플레이스 링크</interactions>
      <states>loading, empty(첫 진입 → S1로), error(OAuth 실패 사유 명시), success(연결 완료 토스트)</states>
      <kpi>토큰 만료 24시간 이내 재인증율 80%+, 사용자당 평균 활성 연결 3개+</kpi>
      <api_data>Integration entity CRUD, OAuth refresh 토큰 회전</api_data>
    </screen>

    <screen id="S6" name="대시보드" phase="1" priority="P1">
      <purpose>이번 주 회의 N건 → 자동 등록률 X% / 검토 대기 Y건 / 시간 절약 Zh 시각화 (Phase 1 후반 베타)</purpose>
      <users>P1·P2 (개인 가치 확인), P3·B2B 관리자(팀 단위는 Phase 2 S7)</users>
      <entry_points>로그인 후 첫 화면, 사이드바 홈</entry_points>
      <components>
        상단: KPI 4종 카드 (회의 수, 자동 등록률, 검토 대기, 절약 시간) /
        메인: 트렌드 차트 (Recharts, 4주 추이) + confidence 분포 도넛 /
        사이드: 다음 회의 5건 + 검토 대기 큐 단축 진입
      </components>
      <interactions>기간 필터(7d/30d/90d), 차트 hover, KPI 카드 클릭 → 상세 화면 이동</interactions>
      <states>loading(스켈레톤 차트), empty(첫 사용 → S2 유도), error(데이터 페치 실패 부분 표시), success(정상)</states>
      <kpi>주 1회 이상 방문율 60%+, "시간 절약 Zh" 표시 후 retention +10%p</kpi>
      <api_data>대시보드 집계 endpoint(Postgres aggregate + Redis cache)</api_data>
    </screen>

    <screen id="S7" name="관리자 콘솔 & 감사 로그" phase="2" priority="P1">
      <purpose>B2B 워크스페이스 — 멤버·권한·정책(자동 등록 vs 검토 큐 강제)·감사 로그·SSO·SCIM·청구·사용량</purpose>
      <users>B2B 관리자(P3 비서가 일부 역할 위임 받음), Enterprise IT/보안 담당</users>
      <entry_points>설정 → 워크스페이스 / Enterprise 도메인 가입 시 자동 노출</entry_points>
      <components>
        상단: 워크스페이스 메타(플랜·seat·청구) /
        메인 탭: 멤버·역할(RBAC) / 정책(라우팅·마스킹·외부 도메인) / 감사 로그(검색·CSV 내보내기) /
        사이드: SSO·SCIM 연결 상태, ISMS-P 컴플라이언스 체크리스트
      </components>
      <interactions>멤버 일괄 초대(CSV), 정책 토글, 감사 로그 검색·필터, 사용량 차트 hover</interactions>
      <states>loading, empty(첫 워크스페이스 생성 가이드), error(SSO 실패 사유), success(정책 적용 완료)</states>
      <kpi>Enterprise 활성 워크스페이스 30+(Phase 2 종료), 정책 적용률 90%+, 감사 로그 7년 보관 SLA 100%</kpi>
      <api_data>Organization·User·AuditLog·Integration·Routing 모두</api_data>
    </screen>

    <note>각 화면 상세(와이어 의도·디자인 의도·컴포넌트 분해)는 `_workspace/06_ui_screens.md` 보강. 본 spec은 핵심 의사결정·KPI·API 의존만 명시.</note>

  </core_screens>

  <ai_ml_specification>
    <stt_strategy>
      <p1>1순위 ClovaNote API (한국어 정확도·코스트 균형 최우수)</p1>
      <p2>fallback Whisper-large-v3 (open-source, on-prem 가능, 비용 0)</p2>
      <p3>Phase 2 fine-tuning (Whisper-large-v3-ko + 자체 PoC 100,000건+ 데이터)</p3>
      <decision_pending>OQ2 — 자체 STT 구축 단가 경계점은 MAU N에서? (시뮬레이션 필요)</decision_pending>
    </stt_strategy>

    <llm_strategy>
      <routing_policy>
        1. 기본 (한국어 회의·일반·복잡 회의 모두): OpenAI gpt-5.5 — Responses API + JSON Schema + Tool Use, prompt caching(시스템 프롬프트·few-shot) 자동 적용
        2. 단순 추출·짧은 회의록(<1,500자) 비용 최적화: gpt-5.5-mini (또는 동급 gpt-5-mini)
        3. 데이터 주권/온프레미스 요구 고객(공공·금융·법무): HyperCLOVA X 라우팅 (NCP Neurocloud 또는 on-prem)
        4. vendor lock-in 방어 + 복합 1시간+ 회의 정밀 추출: Claude Sonnet 4.6 (Anthropic prompt caching 강력)
        5. second opinion / 추가 분산: Solar Pro (저신뢰 케이스 cross-check)
        6. fallback chain (1→4→3→5): gpt-5.5 timeout/fail 시 Claude → HyperCLOVA → Solar 순으로 자동 전환
        7. Phase 2 실시간 미팅 봇(UF2): gpt-5.5-realtime 실험 라우팅
      </routing_policy>
      <prompt_caching>
        OpenAI prompt caching — 1,024 토큰 이상 자동 캐싱, 캐시 적중 시 비용 약 50% 절감.
        시스템 프롬프트(한국어 회의 매너 사전 + 호칭/존댓말 패턴 + 도메인 사전) + few-shot 예시 + 조직 컨텍스트(역할·과거 액션 사전)를 캐시 가능 영역으로 배치.
        Anthropic prompt caching (Claude 폴백 시) — 시스템 프롬프트·도메인 사전 캐시 → 토큰 비용 80%+ 절감.
        설계 원칙: cache-friendly 프롬프트 레이아웃(시스템→캐시 가능 컨텍스트→가변 회의록 본문) 강제.
      </prompt_caching>
      <cost_target>
        회의 1건당 평균 LLM 비용 (3,000자 기준):
        - gpt-5.5 (캐시 적용) < ₩200
        - gpt-5.5-mini (캐시 적용, 단순 추출) < ₩50
        - 회사 평균 (라우팅 mix 가중평균) < ₩150 목표 (Phase 1 종료)
        - Phase 2 캐시 적중률 70%+ 시 회사 평균 < ₩80
      </cost_target>
      <vendor_diversification>
        Risk R4(OpenAI 단일 의존) mitigation — gpt-5.5 트래픽 60%, HyperCLOVA X 20%, Claude 15%, 기타(Solar/mini) 5% (Phase 1 종료 기준 목표 mix). 라우터 자체는 모델-agnostic adapter 패턴, 설정 1줄로 가중치 조정 가능.
      </vendor_diversification>
    </llm_strategy>

    <action_extraction>
      <output_format>JSON mode 강제 (response_format: {"type": "json_object"} + Zod/Pydantic 스키마 검증)</output_format>
      <confidence_threshold>
        - 0.85+ : 자동 라우팅
        - 0.70–0.85: 일괄 승인 추천 (사용자 1탭 확인)
        - 0.70- : 검토 큐 강제 (F5)
      </confidence_threshold>
      <korean_specific_rules>
        - 존댓말 화법 → 액션의 어시그니 추출 (예: "김부장님께서 ~를 해주시기로" → assignee=김부장)
        - 호칭 매핑 사전(부장/팀장/실장/대표/이사 등) → role 추출
        - 시간 표현 정규화 ("다음 주 화요일" → ISO timestamp KST)
        - 보고-합의-실행 회의 패턴 인식 → decision/task/meeting 분류
      </korean_specific_rules>
    </action_extraction>

    <evaluation>
      <metrics>precision, recall, F1 per ActionItem.type</metrics>
      <golden_set>
        Phase 1: 100건 (시작), Phase 2: 1,000건, Phase 3: 10,000건+
        포함: 일반 비즈니스 회의 60% + 임원 미팅 20% + 1:1 10% + 영업 통화 10%
      </golden_set>
      <regression_gate>
        매 PR마다 평가 자동 실행 — F1 baseline 대비 -2%p 미만 회귀 시 머지 차단
      </regression_gate>
      <human_eval>월간 100건 인간 평가 (CSAT 4.0/5.0+ 목표)</human_eval>
    </evaluation>

    <data_strategy>
      Phase 1: 베타 200명 동의 기반 학습 데이터 수집 (옵트인)
      Phase 2: 100,000건+ 누적 (Risk R2 mitigation — Notta 데이터셋 선점)
      Phase 3: 도메인별 1,000건+ (법무·의료·콜센터)
    </data_strategy>
  </ai_ml_specification>

  <security_and_compliance>
    <pipa>
      - 음성 데이터 보존 90일(기본) / 사용자 옵션 30·60·180·자동폐기
      - 2단계 명시 동의 UX (녹취 동의 / 데이터 학습 동의 분리)
      - 개인정보 마스킹 옵션 (PII 자동 비식별화) — 이름·전화·이메일·주민번호·계좌
      - 옵트아웃 1탭, 30일 내 전체 데이터 삭제 보장
    </pipa>
    <isms_p>
      <target>Phase 2 (9–12개월차) 인증 완료 — Risk R6 mitigation</target>
      <budget>5,000만원 인증 예산 + 컨설팅 6개월차 시작 (출처: 04_business_evaluation.json risk_register #6)</budget>
      <controls>관리체계 + 보호대책 100여개 항목, 1년 1회 사후심사</controls>
    </isms_p>
    <iso27001>Phase 2 동시 추진 (ISO 27001:2022)</iso27001>
    <data_sovereignty>
      - 한국 리전 우선 (ap-northeast-2 또는 NCP-KR)
      - Enterprise: NCP 또는 온프레미스 옵션 (Phase 2)
      - 공공/금융: 망분리 환경 + Neurocloud 온프레미스 (Phase 3)
    </data_sovereignty>
    <audit_log>
      모든 등록·삭제·승인 이력 7년 보관 (B2B Enterprise 요구).
      WORM 저장(S3 Object Lock 또는 NCP Object Storage Lock).
    </audit_log>
    <encryption>
      at-rest: AES-256 (AWS KMS 또는 NCP KMS)
      in-transit: TLS 1.3
      DB-level: pgcrypto (PII 컬럼 단위 암호화)
      Enterprise: BYOK (Bring Your Own Key)
    </encryption>
    <pen_test>분기별 침투 테스트, 월간 취약점 스캔 (Phase 2부터)</pen_test>
  </security_and_compliance>

  <kpis_and_success_metrics>
    <phase_1 duration="0-90일">
      <user_metrics>
        - 베타 사용자: 200명 (VC·컨설턴트·임원비서)
        - WAU: 80명 (40%)
        - 4주 retention: 40%+ (GATE 1)
      </user_metrics>
      <product_metrics>
        - 한국어 액션 추출 정확도(F1): 85%+
        - 캘린더 등록 정확도: 90%+
        - 회의록 1건 → 등록 완료 p95: < 3분
        - NPS: 30+
      </product_metrics>
      <frontend_metrics>
        - LCP < 2.0s (3G Fast 환경, Lighthouse CI 측정)
        - CLS < 0.05
        - INP < 200ms
        - first-load JS bundle (gzip) < 200KB
        - 검토 큐 가상 스크롤 60fps 유지 (50+ 카드)
        - Onboarding 완료율 75%+, 평균 완료 시간 < 3분 (S1)
        - 회의 1건 검토 처리 시간 < 90초 (S3)
        - WCAG 2.2 AA 준수율 100% (axe-core 자동 검증)
      </frontend_metrics>
      <business_metrics>
        - ARR: 0 (베타 무료)
        - Team: 6명 (디자이너 채용 OQ9 결정 시 7명)
        - Funding: Pre-seed 1–3억 (또는 기보유)
      </business_metrics>
    </phase_1>

    <phase_2 duration="3-12개월">
      <user_metrics>
        - Free 누적: 25,000명
        - Paid users: 18,000 (Base) | 8,000 (Conservative)
        - MAU: 30,000+
        - B2B seats: 5,500 (Base) | Enterprise logos: 6 (Base)
        - Monthly churn (B2C): 5%
        - NPS: 45
      </user_metrics>
      <product_metrics>
        - 한국어 액션 추출 정확도(F1): 90%+
        - 자동 등록 비중: 70%+ (검토 큐 우회율)
        - 회의 1건당 평균 분배 도구 수: 1.5+
      </product_metrics>
      <business_metrics>
        - Y1 ARR: ₩6.0억 (Base) | ₩2.5억 (Conservative)
        - OEM 파트너: 1건+ (잔디·두레이·네이버웍스 중)
        - ISMS-P: 인증 완료
        - Funding: Seed/Pre-A 5–15억 클로징
        - LTV/CAC: B2C 5+, B2B 3+
      </business_metrics>
    </phase_2>

    <phase_3 duration="12-36개월">
      <user_metrics>
        - Y3 paid: 80,000 (Base) | 28,000 (Conservative) | 150,000 (Optimistic)
        - Y3 B2B seats: 60,000 (Base)
        - Y3 Enterprise logos: 35 (Base)
        - MAU: 200,000+
        - NPS: 55+
      </user_metrics>
      <business_metrics>
        - **Y3 한국 ARR (Base): ₩210억**
        - Japan ARR: ₩25억 (24개월차 진출)
        - LTV/CAC: 5.5+
        - Gross Margin: 72%
        - Funding: Series A 80–150억 (12–18mo), Series B 200–400억 (24–30mo)
        - ISMS-P + ISO 27001 + 공공조달 등록 완료
      </business_metrics>
    </phase_3>
  </kpis_and_success_metrics>

  <risks_and_mitigations>
    <risk id="R1" rank="1" impact="5" probability="4" score="20">
      <name>빅테크 번들 squeeze (Google Gemini in Calendar / MS Copilot)</name>
      <design_mitigation>
        - 토종 협업툴 OEM(잔디·두레이·네이버웍스·플로우·카카오워크) 5종 동시 통합 SDK
        - 온프레미스 옵션 (NCP/Neurocloud) — 빅테크가 우선순위 외
        - 도메인 특화(법무·의료·콜센터) Phase 3 — 빅테크 진입 어려움
      </design_mitigation>
    </risk>
    <risk id="R2" rank="2" impact="5" probability="4" score="20">
      <name>Notta(JP) 한국 본격 마케팅</name>
      <design_mitigation>
        - 6개월 내 한국 협업툴 OEM 1건 확보 (마켓플레이스 등재)
        - 한국식 매너·존댓말·온프레미스 차별화
        - PoC 100,000건+ 데이터셋 선점 (Notta가 못 쓰는 한국 회의 코퍼스)
      </design_mitigation>
    </risk>
    <risk id="R3" rank="3" impact="4" probability="4" score="16">
      <name>한국 SaaS 유료 전환율 24%로 ARR 도달 지연</name>
      <design_mitigation>
        - B2B/Enterprise 비중 60%+ 유지
        - PLG Free→Pro 전환 트리거(저장한도·팀 협업·통합 갯수) 정교화
        - NIPA SaaS 바우처 활용
      </design_mitigation>
    </risk>
    <risk id="R4" rank="4" impact="5" probability="3" score="15">
      <name>토종 강자(SKT 에이닷·두레이 AI·클로바노트)의 라우터 직접 구현</name>
      <design_mitigation>
        - 카카오/네이버/SKT/NHN strategic acquirer 정렬 (자체 IP는 멀티 라우팅 알고리즘에 집중)
        - 다중 OEM 동시 추진 (특정 1사 의존 방지)
      </design_mitigation>
    </risk>
    <risk id="R5" rank="5" impact="4" probability="3" score="12">
      <name>LLM API 단가 인상/정책 변경 + OpenAI 단일 의존 위험 (gpt-5.5 1순위 채택에 따른 신규 명시)</name>
      <design_mitigation>
        - 3중 라우팅 (gpt-5.5 + HyperCLOVA X + Claude Sonnet 4.6) + 폴백 2종(Solar Pro, gpt-5.5-mini) — 모델-agnostic adapter 패턴
        - OpenAI 트래픽 60% 상한 정책 (R4 mitigation): gpt-5.5 장애·정책 변경 시 24시간 내 HyperCLOVA·Claude로 트래픽 자동 전환 가능한 라우팅 가중치 핫리로드
        - 데이터 주권 고객은 HyperCLOVA X 100% 고정 (OpenAI 우회) → Enterprise 매출 보호
        - OpenAI prompt caching(1024+ 토큰 자동, 50% 절감) + Anthropic prompt caching(Claude 폴백, 80%+ 절감) 동시 적용
        - 분기별 단가·정책 모니터링, 6개월 단위 contract pricing 협상 (HyperCLOVA Neurocloud BYOK 협상 포함)
      </design_mitigation>
    </risk>
    <risk id="R6" rank="6" impact="4" probability="3" score="12">
      <name>ISMS-P/CC/공공조달 인증 12개월 내 미확보</name>
      <design_mitigation>
        - 6개월차 ISMS-P 컨설팅 시작
        - 5,000만원 인증 예산 (Seed/Pre-A 자금)
        - 두레이·콜라보 사례 벤치마킹
      </design_mitigation>
    </risk>
    <risk id="R7" rank="7" impact="5" probability="2" score="10">
      <name>음성 데이터 PIPA·녹취 동의 위반</name>
      <design_mitigation>
        - 법무 자문 초기 영입
        - 2단계 명시 동의 UX, 옵트아웃 1탭, 30일 자동 폐기
        - 온프레미스 옵션 (Enterprise)
      </design_mitigation>
    </risk>
  </risks_and_mitigations>

  <build_phases>

    <phase_1 duration="0-90일">
      <title>MVP & 베타 (라우터 PMF 검증)</title>
      <scope>F1, F2, F3, F4 (P0 4종) + 일부 F5</scope>
      <build_sequence>
        Week 1–2: Repo·CI/CD·인프라 부트스트랩 (AWS Korea, RDS, Redis, S3)
                  + 인증 OAuth2 (Google/Microsoft/Naver/Kakao)
                  + 디자인 토큰·shadcn/ui v2 + Tailwind v4 부트스트랩 (Pretendard·color·radius·motion 토큰 정의)
                  + Storybook 초기 설정 (FE 카탈로그 시작)
        Week 3–4: F1 입력 어댑터 — 텍스트·파일·음성 + ClovaNote API 통합
                  + UI: S1(Onboarding & 통합 연결) + S2(회의록 입력 페이지) 구현 (P0)
        Week 5–6: F2 한국어 액션 추출 엔진 — gpt-5.5 1순위(Responses API + JSON Schema) + gpt-5.5-mini 비용 라우팅 + HyperCLOVA X(데이터 주권) + Claude Sonnet 4.6 폴백 + prompt caching + 평가셋 100건 구축
                  + UI: S3(액션 검토 큐) 구현 — 가상 스크롤·dnd-kit 드래그 라우팅 변경
        Week 7–8: F3 캘린더 멀티 라우팅 — Google·MS·Naver·Kakao·Dooray 5종
                  + UI: S4(캘린더 미리보기 & 등록) 구현 (충돌 알림·참석자 매핑·회의 링크)
        Week 9: F4 태스크 멀티 라우팅 — Notion·Asana·Jira·Jandi·Linear 5종
                  + UI: S5(통합·연결 설정) 구현
        Week 10: F4 마무리 + 성능 튜닝 (LCP < 2.0s / CLS < 0.05 / first-load JS < 200KB 달성)
        Week 11: F5 검토 큐(P1 일부, 신뢰도 0.7- 케이스) + S6(대시보드) 베타 (Recharts 트렌드)
        Week 12: 베타 200명 모집 (VC·컨설턴트·임원비서 우선 채널) + 가격 정책 확정
                  + Playwright E2E (S1~S6 happy path) + Chromatic visual diff 게이트 적용
      </build_sequence>
      <gate_1>
        - 베타 4주 retention 40%+ 달성 → 통과
        - 미달 시 전략 재검토 (보고서 §9.2 GATE 1)
      </gate_1>
      <funding>Pre-seed 1–3억 또는 기보유 자금</funding>
      <team>6명 (Tech Lead, BE×2, FE×1, ML/LLM×1, PM/Design×1)</team>
    </phase_1>

    <phase_2 duration="3-12개월">
      <title>GA + 유료 전환 + B2B 영업 + ISMS-P</title>
      <scope>F5 강화 + F6 + F7 + UF2(실시간 미팅 봇) + 통합 도구 추가</scope>
      <key_milestones>
        - M3-4: 정식 GA 출시
        - M4-6: OEM 1건 확보 (잔디/두레이/네이버웍스 중) — Risk R2 mitigation
        - M6-8: ISMS-P 인증 신청·심사 진행
        - M9-12: ISMS-P 완료 → B2B Enterprise 영업 본격
        - M9-12: 한국어 회의 PoC 데이터 100,000건+ 학습 → 자체 fine-tuning
        - M12: Y1 ARR 6억 (Base) 도달
      </key_milestones>
      <gate_2>6개월 시점 paid users 2,000명+ + OEM 1건+ → 통과</gate_2>
      <gate_3>12개월 ARR 4억+ + LTV/CAC 3+ → 통과 (미달 시 NO-GO)</gate_3>
      <funding>Seed/Pre-A 5–15억 (D2SF·카카오벤처스·캡스톤·IBK창공)</funding>
      <team>18명 (엔지니어 12 + GTM 5 + Ops 1)</team>
    </phase_2>

    <phase_3 duration="12-36개월">
      <title>SOM 도달 + 시리즈 A/B + 도메인 확장 + 일본 진출</title>
      <scope>F8 (도메인 특화) + F9 (Agentic 워크플로우 v2) + 일본어 지원</scope>
      <key_milestones>
        - M12-18: Series A 80–150억
        - M12-18: Niche 도메인(법무·의료·콜센터) 버티컬 출시 (Strategy A)
        - M18-24: B2B Enterprise 30+사 (공공·금융 비중 20%+) — Strategy D 본격
        - M24: 일본 시장 진입 — AutoMemo/Notta 협업 또는 정면 경쟁
        - M24-30: Series B 200–400억
        - M30-36: Y3 한국 ARR 210억(Base) 도달, Japan ARR 25억
        - M36: Strategy C(디바이스 OEM, Plaud Korea/삼성/LG) 검토
      </key_milestones>
      <funding>Series A → Series B</funding>
      <team>65명</team>
    </phase_3>

  </build_phases>

  <open_questions>
    <q id="OQ1" priority="P0" deadline="Phase 1 시작 전 2주">
      Backend: FastAPI(Python) vs NestJS(Node)
      — 본 spec 권장은 FastAPI(LLM/STT 통합 편의성). 단, 팀 역량이 Node 강세인 경우 NestJS + Prisma 가능.
      결정자: Tech Lead + 창업팀
    </q>
    <q id="OQ2" priority="P1" deadline="Phase 2 초">
      자체 STT 구축 vs ClovaNote API 의존 — 단가 경계점은 MAU N에서?
      — 시뮬레이션 필요: ClovaNote 단가 × 회의/MAU vs 자체 운영 비용. Phase 2 PoC 100,000건 수집 후 결정.
    </q>
    <q id="OQ3" priority="P0" deadline="Phase 1 베타 종료">
      B2C 가격: 9,900원/월 vs 13,900원/월
      — Pricing benchmark는 03_market_data.json(6,900–13,900). 베타 사용자 절반에게 9,900, 절반에게 13,900 노출 후 전환율·NPS 비교 A/B.
    </q>
    <q id="OQ4" priority="P0" deadline="6개월 (GATE 2)">
      OEM 1순위: 잔디 vs 두레이 vs 네이버웍스
      — 동시 추진 권장(Risk R4 mitigation). 각 사 PM/BD 컨택 포인트 매핑 필요.
      *간이 추천*: 두레이(공공·금융 검증 + NHN 자본) > 잔디(40만팀·해외 동시 진출 강점) > 네이버웍스(생태계 연동).
    </q>
    <q id="OQ5" priority="P2" deadline="24개월">
      디바이스 OEM(Plaud Korea/삼성/LG) Phase 3에 둘지 Phase 2로 앞당길지
      — Humane 실패 사례 + 자본 부담 20–50억으로 Phase 3 권장. Plaud 한국 디스트리뷰터 협상은 Phase 2 후반에 가능.
    </q>
    <q id="OQ6" priority="P1" deadline="Phase 2 후반">
      AI Agent execution(메일/CRM 자동 실행) Phase 2 vs Phase 3
      — 보안 리스크 vs 차별화 d3. 사용자 승인 모드는 Phase 2, fully-autonomous는 Phase 3.
    </q>
    <q id="OQ7" priority="P0" deadline="Phase 1 시작 전">
      초기 인프라: AWS Korea vs NCP
      — 본 spec 권장: Phase 1 AWS Korea, Phase 2부터 NCP 듀얼 (Enterprise 데이터 주권 요구). 단, 공공 영업이 Phase 1에 시작되면 NCP 우선 검토.
    </q>
    <q id="OQ8" priority="P0" deadline="Phase 1 W1 시작 전">
      디자인 시스템: 자체 구축 vs shadcn/ui v2 그대로 사용
      — 본 spec 권장: Phase 1은 shadcn/ui v2 + 자체 디자인 토큰(컬러·타이포·radius·motion) 오버라이드 방식.
        장점: 5–6주 절감, Radix 접근성 기본, 한국어 토큰만 별도 관리. 단점: 차별화 약함, Phase 2 이후 자체 컴포넌트 확장 필요.
        대안: 처음부터 자체 컴포넌트 라이브러리 — 고품질 UX 가능하나 디자이너 풀타임 영입 필수.
      결정자: PM/Design + Tech Lead, 디자이너 영입 시점(OQ9)과 연동.
    </q>
    <q id="OQ9" priority="P1" deadline="Phase 1 W6 또는 Pre-seed 클로징 직후">
      초기 디자이너 채용 시점
      — 본 spec 권장: Phase 1 W4–W6 시점 시니어 프로덕트 디자이너 1명 영입 (S3 검토 큐 UX·S4 캘린더 캔버스가 본격화되는 시점).
        조건: shadcn/ui 베이스 위에서 한국 B2B 정보 밀도·존댓말 매너 디자인 경험 우선.
        대안 1: 외주 (애플 스타일 미니멀 한국 에이전시) Phase 1 한정.
        대안 2: 창업팀 PM/Design 겸직으로 Phase 1 종료까지 끌고 가다 Phase 2 GA 직전 영입.
      결정자: 창업팀 + PM/Design.
    </q>
  </open_questions>

  <build_output>
    <repo_structure>
      /apps/web (Next.js 15 frontend)
      /apps/api (FastAPI or NestJS backend)
      /apps/worker (Celery or BullMQ workers)
      /packages/shared (TypeScript types, Zod schemas)
      /packages/integrations (calendar/task adapters)
      /packages/llm (LLM routing, prompt cache, evals)
      /packages/eval (golden set, regression tests)
      /infra (Terraform AWS Korea + NCP)
      /docs (architecture, runbook, RFC)
    </repo_structure>
    <ci_cd_required>
      - PR마다 unit + integration + LLM 평가 회귀 테스트 자동 실행
      - main 머지 시 staging 자동 배포, manual approval로 prod
      - 평가 F1 < baseline-2%p 시 머지 차단
    </ci_cd_required>
    <first_pr_acceptance>
      AI 코딩 에이전트가 본 spec으로 만들 첫 PR은 다음을 포함해야 한다:
      1. Repo 부트스트랩 (monorepo Turborepo or pnpm workspace)
      2. PostgreSQL 16 + pgvector + Redis docker-compose
      3. User/Organization/Integration/MeetingTranscript/ActionItem 5개 엔티티 마이그레이션
      4. OAuth2 — Google + Microsoft 연동 + 콜백 라우트
      5. F1 텍스트 입력 어댑터 + F2 OpenAI gpt-5.5 액션 추출 (Responses API + JSON Schema, prompt caching enabled) 최소 동작 — 모델-agnostic LLM adapter 인터페이스로 구현 (HyperCLOVA·Claude 어댑터는 Week 5에 추가)
      6. 한국어 평가셋 골든 10건 + 회귀 테스트 워크플로우
    </first_pr_acceptance>
  </build_output>

  <appendix>
    <source_reports>
      - meeting_scheduler_market_research.md (Conditional GO·B 전략·BMC·로드맵)
      - _workspace/01_domestic_summary.md (24개 국내, Whitespace 3선)
      - _workspace/02_global_summary.md (43개 해외, 위협 Top 3)
      - _workspace/03_market_data.json (TAM/SAM/SOM, 가격 권고, ARPU)
      - _workspace/04_business_strategy.md (전략 4종, BMC, 시나리오)
      - _workspace/04_business_evaluation.json (Risk Register, 마일스톤)
      - _workspace/05_competitive_matrix.md (핵심 14개사 비교)
      - _workspace/05_executive_summary.md (의사결정자 보고용)
      - _workspace/05_appendix.md (출처 81건+ + 용어집)
    </source_reports>
    <glossary>
      - TAM (Total Addressable Market) / SAM (Serviceable Available Market) / SOM (Serviceable Obtainable Market)
      - ARR (Annual Recurring Revenue) / ARPU (Average Revenue Per User) / LTV (Lifetime Value) / CAC (Customer Acquisition Cost)
      - ICP (Ideal Customer Profile) / PMF (Product-Market Fit)
      - OEM (Original Equipment Manufacturer) / MSP (Managed Service Provider) / SI (System Integrator)
      - ISMS-P (정보보호·개인정보보호 관리체계 인증) / PIPA (개인정보보호법) / CC (Common Criteria)
      - STT (Speech-to-Text) / LLM (Large Language Model) / RAG (Retrieval-Augmented Generation)
      - Agentic AI (자율 에이전트 AI) / MCP (Model Context Protocol)
      - PLG (Product-Led Growth) / NPS (Net Promoter Score)
      - OpenAI gpt-5.5 / gpt-5.5-mini / gpt-5.5-realtime — Phase 1 1순위 LLM (Responses API + JSON Schema + Tool Use + prompt caching)
      - HyperCLOVA X / Solar Pro / Kanana / EXAONE — 한국어 LLM 4종 (HyperCLOVA X는 데이터 주권/온프레미스 옵션의 1순위)
      - Claude Sonnet 4.6 (Anthropic) — vendor lock-in 방어용 폴백, prompt caching 강력
      - ClovaNote (네이버) / Daglo (액션파워) / Vito (리턴제로) — 한국어 STT 강자
    </glossary>
    <hazard_log>
      - 본 spec의 수치(SAM·SOM·ARR)는 보고서 출처별 충돌(±5%)을 보정한 보수치 기반.
        실증 PoC 후 보정 필수 (특히 한국 SaaS 유료 전환율 24% vs 의향단가 35% 갭).
      - LLM 단가는 2026-05 기준. 분기별 재계약 권장.
      - 환율 1 USD = 1,380 KRW 가정. ±10% 변동 시 시나리오 재계산.
    </hazard_log>
  </appendix>

</project_spec>
```

---

## 본 spec 사용 안내

1. **AI 코딩 에이전트 최초 입력**: 위 `<project_spec>` 전체를 Claude Code/Cursor/Copilot Workspace에 통째로 전달하면 첫 PR(repo 부트스트랩 + 핵심 5엔티티 + F1 + F2 최소 동작)을 작성할 수 있다. `<build_output>` `<first_pr_acceptance>` 항목이 첫 PR 기준점이다.

2. **부분 갱신**: 시장 변화·OEM 협상 결과·ISMS-P 진척에 따라 해당 XML 섹션만 교체. v0.1 → v0.2 등 버전 증가 시 메타데이터 업데이트.

3. **결정 필요 항목**: `<open_questions>` 9개는 의사결정자(창업팀·Tech Lead·PM/Design)가 답해야 PR 진행 가능. 가장 시급한 건 OQ1(백엔드 스택), OQ7(인프라), OQ4(OEM 1순위), OQ8(디자인 시스템).

4. **품질 체크리스트 (spec-writer 자체 점검)**:
   - [x] XML 태그 구조 project-spec-writer 표준 일치
   - [x] 권고 전략 B(Integration 라우터)가 in_scope_phase1_p0 핵심
   - [x] MVP(P0) F1~F4가 0–90일 빌드 가능 범위
   - [x] 통합 대상 캘린더(5)·STT(3)·태스크(5)·LLM(4) 명시
   - [x] LLM/STT 모델 선정 근거 (한국어 정확도·비용·온프레)
   - [x] KPI 보고서 수익 시나리오 정합 (Phase 1 베타 200·정확도 85%, Phase 2 ARR 6억, Phase 3 ARR 210억)
   - [x] Risk Register 7개 모두 design_mitigation 포함
   - [x] open_questions 9개 (OQ8 디자인 시스템·OQ9 디자이너 채용 시점 추가)
   - [x] LLM 1순위 OpenAI gpt-5.5 (Responses API + JSON Schema + prompt caching) — HyperCLOVA·Claude 3중 라우팅으로 R4 mitigation
   - [x] UI 디자인 시스템·핵심 화면 7종(S1~S7) 명시
