Files
hushroom/.cli/product/spec.md

8.3 KiB
Raw Blame History

포커스텔라(Focustella) Web MVP 기획문서 (PRD v0.1)

혼자 일하는 사람을 위한 “집중 항해” 서비스.
별자리 항로(시간)를 선택하고, 출항 전 미션(이번 작업 목표)을 싣고, 항해(집중) 후 도착(짧은 회고)으로 항해일지를 남긴다.


1. 목적과 성공 기준

1.1 문제 정의

  • 혼자 일할 때 집중 시작이 어렵고, 흐트러지면 다시 재시작이 힘들다.
  • 작업을 마친 뒤 “내가 뭘 했지?”가 남아 성취감/회고가 약하다.
  • 목표 미달성 시 기록이 “실패”로 남으면 기분이 나쁘고 서비스 이탈로 이어질 수 있다.

1.2 Web MVP 목표

  • 세계관(우주 항해)을 **방해가 아니라 동기/의식(ritual)**로 사용해
    1. 출항(시작) 장벽을 낮추고
    2. 항해(집중) 방해를 최소화하며
    3. 도착(회고)로 다음 행동을 남긴다.

1.3 성공 지표(초기)

  • Activation: 첫 방문→첫 항해 시작 전환율
  • Completion: 항해 종료까지 도달률(중단률 포함)
  • Retention: D1/D7 재항해율
  • Journal: 항해일지 생성률, 회고 입력률(1줄이라도)

2. 핵심 컨셉

2.1 핵심 루프(Core Loop)

  1. 로비에서 항로 선택
  2. 출항 전 미션 체크인(목표 한 줄)
  3. 항해(집중)
  4. 도착(짧은 회고)
  5. 항해일지 저장
  6. 다음 항해로 연결

2.2 톤&매너

  • “훈육/채찍” 금지. “관제/도킹/로그” 같은 부드러운 안내.
  • 실패/낙제/미완료 같은 표현 최소화.
  • 기록은 성공/실패가 아니라 진행/학습/다음 행동 중심.

3. MVP 범위

3.1 포함(Include)

  • 데스크탑 웹 중심(모바일은 최소 대응)
  • 첫 화면(로비)에서 항로 선택 → 미션 → 항해실 → 도착/일지
  • 항로: 1시간/3시간(초기 2~6개 카드 이내)
  • 항해일지: 항로/미션/결과 상태/한 줄 회고/다음 액션
  • “출발 시각”은 강제 스케줄이 아닌 몰입을 돕는 선택지로 설계

3.2 제외(Exclude) — MVP에서 하지 않기

  • 실시간 채팅, 랭킹, 과한 게임화
  • 복잡한 애니메이션(항해실에서 특히 금지)
  • 강한 방해 차단(사이트 차단/앱 차단)
  • 복잡한 소셜 매칭/파티 시스템

4. 출발 시각(강제성) 설계

4.1 원칙

  • “정시 출발만 가능”처럼 기다림 강제는 이탈 위험이 큼.
  • 강제성은 “시간표”보다 “절차/윈도우”가 세계관과 UX 모두에 유리.

4.2 MVP 추천: 혼합형

  • 기본: 즉시 출항(차터) — 마찰 최소
  • 옵션: 출항 윈도우(게이트 개방 시간) — 몰입/의식/약한 강제성
    • 예: 하루 4~8회, 불규칙 시각(09:0809:15 같은 7분 창)
    • 사용자는 “대기”가 아니라 “출항 준비”를 하도록 로비에 체크리스트 제공
  • 글로벌: 윈도우는 사용자 로컬 시간대 기준으로 제공(개인 루틴 중심)
    • (추후) 이벤트성 “UTC 글로벌 편”은 주 1회 정도로 실험 가능

4.3 놓쳤을 때 UX(중요)

  • “실패”가 아니라 “다음 도킹 창 안내”
  • 즉시 출항(차터)로 우회 가능하게 유지

5. 정보 구조(IA) & 화면 구성

5.1 라우팅(예시)

  • / 로비(항로 선택)
  • /boarding 미션 체크인(출항 직전)
  • /flight 항해실(집중)
  • /debrief 도착/회고
  • /log 항해일지 목록
  • /log/:id 항해일지 상세
  • /settings 설정(초간소/모션 감소 등)

5.2 화면별 스펙

A) 로비(첫 화면) — “항로 선택이 주인공”

목표: 설명보다 선택→출항까지 1분 안에 도달

구성(최소):

  • 상단: 로고 | 항해일지 | 설정
  • 메인 문장: “어느 별자리로 출항할까요?”
  • (선택) 미션 한 줄 입력(바로 입력해도 되고, 탑승 후 입력해도 됨)
  • 항로 카드 그리드(최대 6개)
    • 별자리명 / 소요시간 / 한 줄 용도(딥워크/정리 등) / 탑승
    • 출항 방식 표기: 바로 출항 또는 다음 게이트 09:08
  • 하단 분위기: “정거장에 N명이 대기 중”(실시간이 아니어도 됨)

카드 예시:

  • 오리온 · 3h · 딥워크(집필/코딩)
  • 거문고 · 1h · 기획/정리
  • 백조 · 1h · 회고/리뷰

B) 탑승(미션 체크인)

원칙: 미션은 “결과”가 아니라 “행동/진척” 형태로 유도

필드:

  • 미션(필수): 한 줄
  • (선택) 메모: 1줄(오늘의 제약/컨디션)
  • 출항 버튼: 출항(도킹 완료)

가이드 문구(예):

  • “완료보다 진척을 목표로 적어보세요.”
  • “예: ‘서론 10문장 쓰기’, ‘가설 2개 검증하기’”

C) 항해실(집중 화면) — “초간소 UI”

원칙: 항해실에서 연출/깜빡임/복잡한 UI 금지

구성(최소):

  • 상단 작은 라벨: 오리온 항로 · 순항
  • 중앙: 남은 시간(크게)
  • 하단: 일시정지 종료 메모(선택)
  • 옵션: “초 단위 숨기기(분 단위만)”, “모션 감소”

단계(점화/접근 등)는 화면 변화 없이:

  • 상단 얇은 토스트 3초(선택 행동 있을 때만)
  • 예: “접근 단계: 마무리 5분 — 다음 액션 한 줄 적기”

D) 도착(회고)

목표: 30초~2분 내 회고 완료 → 일지 생성

질문(추천):

  1. 이번 항해에서 확보한 것(한 줄)
  2. 다음 항해의 첫 행동(한 줄)
  3. (선택) 막힌 이유(칩 선택)

결과 상태(실패 금지, 3상태):

  • 계획대로
  • 🌓 부분 진행
  • 🧭 방향 재설정(범위 조정/우선순위 변경)

CTA:

  • 항해일지 저장
  • 다음 항로 선택

E) 항해일지 목록/상세

  • 목록: 카드형(날짜, 항로, 미션, 상태)
  • 상세: 자동 생성 템플릿 + 사용자 회고

6. 데이터 모델(초안)

6.1 Entity: Route

  • id
  • name (e.g., "오리온")
  • duration_minutes (60/180)
  • tag (딥워크/정리/리뷰)
  • description (1줄)

6.2 Entity: Voyage(항해 세션)

  • id
  • user_id (MVP에서는 익명 가능)
  • route_id
  • scheduled_type: charter | window
  • scheduled_at (optional)
  • started_at
  • ended_at
  • status: completed | partial | reoriented | aborted
  • mission_text
  • notes (optional)
  • debrief_progress (한 줄)
  • next_action (한 줄)
  • blocker_tag(optional): scope | interruption | energy | priority_change | other

6.3 Entity: User(옵션)

  • id
  • timezone
  • preferences: minimal_mode, hide_seconds, reduce_motion

7. UX 규칙(중요)

7.1 “목표 미달성” 감정 설계

  • “실패/미완료”를 저장하지 않는다.
  • 기록은 항상 “진행/확보/다음 액션”으로 남는다.
  • 중단(aborted)도 “이탈”이 아니라 “복귀 안내 + 다음 액션” 중심으로 처리.

7.2 항해 중 방해 최소화

  • 알림 최소(단계 토스트는 선택형/짧게)
  • 애니메이션/깜빡임 금지(특히 항해실)
  • 소리 기본 OFF(옵션)

8. 기술/구현 메모(비결정 영역)

  • 프론트: (예) Next.js/React
  • 상태/타이머: 탭 비활성/절전 대응 고려
  • 저장: 로컬 우선(익명 MVP), 추후 로그인/동기화

9. 분석/이벤트(최소)

  • route_view (로비 노출)
  • route_select (항로 선택)
  • mission_submit (미션 체크인 완료)
  • voyage_start
  • voyage_pause
  • voyage_end (status 포함)
  • debrief_submit (회고 입력 완료)
  • log_view

10. 로드맵(후순위)

  1. 계정/동기화/멀티 디바이스
  2. 출항 윈도우 개인화(사용자 루틴 기반)
  3. “이벤트성 UTC 글로벌 편”
  4. 데스크탑 앱(트레이/항상 위/단축키)
  5. 모바일: 알림/일지 보기 중심

11. 오픈 이슈(결정 필요)

  • 항로 개수: MVP는 2~6개 중 최적?
  • 출항 윈도우: 하루 몇 회가 이탈을 최소화하면서 몰입을 만들까?
  • 익명 사용 vs 최소 로그인: 초기 전환율/재방문 간 trade-off
  • 항해 중 중단 정책: 즉시 종료 허용 + 도착 회고 최소 강제 여부

12. Acceptance Criteria (MVP 완료 기준)

  • 사용자는 첫 화면에서 3클릭 이내로 항해 시작 가능
  • 항해실은 5개 이하 UI 요소로 유지(타이머/미션/버튼)
  • 도착 시 3상태(완료/부분/재설정) 중 하나로 저장 가능
  • 항해일지 목록에서 과거 항해를 열람 가능
  • “실패/미완료”라는 표현 없이도 유저가 상황을 기록할 수 있음