결론. 슬랙 OAuth → welcome DM → 추천 / 직접 입력 → team agent 생성까지 한 호흡으로 이어지는 conversational journey를 만든다. C안 starter(T3 Gmail external trigger + I2 Zoom tool integration)는 합의된 항목. 4개 gap (G1 starter / G2 OAuth 복귀 / G3 team agent orchestration / G4 em dash) 을 4 PR로 분할해 점진 배포한다.
핵심 정정. create_agent MCP tool은 이미 존재한다. G3는 "신규 tool 도입"이 아니라 "기존 tool 조합 orchestration 검증"이 1순위, wrapper tool은 fallback.
현재 journey는 starter 추천 → OAuth 링크 prose → ★ drop-off로 끝난다. 목표 journey는 두 분기(추천 / 직접 입력)가 동일한 하류 흐름으로 합쳐져 team agent 생성까지 완주한다.
Slack OAuth 완료
│
▼
Welcome DM
[Show me what's possible] [I have a job in mind]
│ │
▼ ▼
[A. 추천 분기 — C안] [B. 직접 입력 분기]
• "Alert me when a Gmail 사용자 자유 입력
with [keyword] arrives"
• "Summarize my Zoom (preset palette 밖이면 가장 가까운
recordings here" preset으로 매핑 + 한계 고지)
│ │
└────────────┬───────────────┘
▼
[통합 하류 흐름]
intent normalized
↓
required auth/OAuth (단일 primary CTA)
↓
★ G2: OAuth 완료 후 personal agent 자동 발화 복귀
↓
confirmation gate (1턴 승인 — "이 조합으로 만들까요?")
↓
★ G3: team agent 생성 + trigger 배포 + channel/target 묶음
(기존 MCP tool: create_agent + connect_app_to_agent +
create_external_trigger / create_scheduled_job)
↓
recap: "Created agent X / Deployed / Posting to #channel"
↓
next-step surface (modes_recommended 미달) 또는 graduation
| # | Gap | Layer | PR |
|---|---|---|---|
| G1 | starter가 Slack-내부 검색(Q1/Q2)에 편향 — 카드 "예시 다양성" | hidden prompt fallback .ts + Langfuse production (dual-sync) |
PR 2 |
| G2 | OAuth 완료 후 personal agent 대화 자동 복귀 없음 | worker / API adapter layer (BC 경계 — inbox BC 내부 X) | PR 3 |
| G3 | team agent 생성이 conversation 밖 — "그냥 링크만 던져준다" | 기존 MCP tool 조합 orchestration. create_agent는 이미 존재. wrapper tool은 fallback. |
PR 4 |
| G4 | welcome DM 본문 em dash 1곳 | welcome DM 빌더 1줄 | PR 1 |
G4. bounded-contexts/inbox/src/application/commands/index.ts 의 buildWelcomeValuePropMessage welcome DM 본문 em dash 1곳 제거. 카드 description의 "즉시"는 이 PR에만 해당.
검증 — 변경 파일 단위 type-check + pnpm lint:ci. dev에서 슬랙 OAuth 한 번 돌려 본문 확인.
G1. starter 2줄을 C안으로 교체 + hidden prompt의 "Lead with Q-tier" 룰을 "Lead with T/I-tier"로 반전 + "Or try:" alt mix rule + Hard constraints + Good opening A/B 예시 + modes_recommended 우선순위. .ts fallback + Langfuse production prompt dual-sync 필수 (memory project_onboarding_prompt_dual_sync).
인프라 의존 없음 → PR 1과 병렬 머지 가능. 검증 — hidden prompt 테스트의 starter 어서션 보강. Langfuse production fetch로 새 버전 라벨 확인.
G2. OAuth 완료 → Slack DM thread → personal agent 자동 발화 메커니즘 도입. BC 경계 가드 — OAuth callback과 Slack platform id 해석은 worker / API adapter layer 안에서. inbox BC에는 connectionUrn 기반 command만 전달.
실패 / 취소 / 만료 fallback 포함. OAuth completion page에 Slack permalink + "DM에 done 입력" 경로.
G3. personal agent가 기존 MCP tool(create_agent + connect_app_to_agent/attach_app + create_external_trigger / create_scheduled_job) 조합으로 confirmation 후 team agent 자동 생성. 우선 조합 안정성 검증 → 불안정하면 그때만 wrapper tool 신규 도입.
confirmation 게이트 필수 (LLM 자율 금지). edit / cancel / skip 처리. 중복 방지 (동일 user에 유사 agent / trigger 이미 있을 때 재사용 또는 안내).
| # | 결정 | 권고 |
|---|---|---|
| 1 | LLM 자율 vs 1턴 confirmation | confirmation 필수. OAuth 링크는 명시 의도면 즉시 노출 OK. team agent 생성 · trigger 배포 직전엔 반드시 1턴 승인. |
| 2 | OAuth 자동 복귀 메커니즘 현 존재 여부 | 현재 없음. PR 3에서 신규 도입. |
| 3 | 두 분기 하류 흐름 통합 | 통합. intent normalized → auth → confirmation → create/deploy → recap 1개 경로. |
| 4 | 자동 복귀 불가 시 타협안 | OAuth completion page에 Slack permalink + "DM에 done 입력" — 임시 타협, G2 완전 해결은 아님. |
| 5 | measurement 이벤트 도입 | 필수. 기존 onboarding_cta_click 만으로 부족. |
기존 funnel 부족. 새로 emit해야 할 이벤트(이름은 코드 컨벤션 따름):
onboarding_starter_offered — 어떤 starter 노출onboarding_starter_accepted — starter 클릭 / 입력onboarding_oauth_started / onboarding_oauth_succeeded / onboarding_oauth_cancelled / onboarding_oauth_expiredonboarding_confirmation_shown / onboarding_confirmation_approved / onboarding_confirmation_cancelled / onboarding_confirmation_editedonboarding_team_agent_created · funnel 종점 — 현재 가장 큰 측정 공백onboarding_trigger_deployed / onboarding_trigger_deploy_failedPostHog project 52166, Langfuse production trace. 7일 funnel 측정.
PR 4 구현 시 모두 고려해야 할 엣지 케이스:
verify_app_to_agent 가 auth_url 또는 실패 반환 → 재시도 또는 폴백reloadProps 체인 실패| # | 리스크 | 완화 |
|---|---|---|
| R1 | PR 3·4 인프라 변경이 1 PR로 끝나지 않음 | Oracle 권고대로 G2 / G3를 별 PR로 분리 |
| R2 | team agent 자동 생성이 너무 빠르면 사용자가 동의 시점 모름 | 결정 #1 confirmation 게이트로 완화 |
| R3 | OAuth 자동 복귀 기술 제약 발견 | 결정 #4 타협안으로 부분 회수 |
| R4 | .ts fallback과 Langfuse production prompt 불일치 | 새 버전 push 후 production fetch 즉시 검증 필수 |
롤백 단위 — 각 PR 독립. PR 2의 Langfuse production prompt는 옛 버전으로 라벨 이동.
onboarding_cta_recommend / onboarding_cta_have_idea. Langfuse production trace의 personal-agent-onboarding-hidden-prompt 사용 세션.https://us.cloud.langfuse.com).onboarding_team_agent_created) 도달율이 baseline 대비 의미 있게 증가onboarding_oauth_succeeded → onboarding_team_agent_created 전환율이 ≥ 70%면 G2·G3가 매끄럽게 연결된 신호/monitor-after 7일 예약..ts + Langfuse production)