From 3471c96972f03c1ddc6d3a5f6076fb5f47a5ca38 Mon Sep 17 00:00:00 2001 From: corpi Date: Mon, 16 Mar 2026 11:18:39 +0900 Subject: [PATCH] =?UTF-8?q?docs(product):=20stale=20app=20flow=20=EB=AC=B8?= =?UTF-8?q?=EC=84=9C=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/00_project_brief.md | 16 +-- docs/03_routes_map.md | 19 ++-- docs/09_app_entry_detailed_spec.md | 132 ------------------------ docs/10_refocus_system_spec.md | 2 +- docs/12_core_loop_execution_roadmap.md | 11 +- docs/14_weekly_review_reframe_spec.md | 2 +- docs/15_app_stats_entry_flow_spec.md | 30 +++--- docs/16_product_alignment_audit_plan.md | 4 +- docs/18_paused_session_reentry_spec.md | 4 +- docs/19_app_atmosphere_entry_spec.md | 6 +- docs/90_current_state.md | 32 +++--- docs/session_brief.md | 17 +-- docs/work.md | 2 +- 13 files changed, 71 insertions(+), 206 deletions(-) delete mode 100644 docs/09_app_entry_detailed_spec.md diff --git a/docs/00_project_brief.md b/docs/00_project_brief.md index 6c8df6b..6519671 100644 --- a/docs/00_project_brief.md +++ b/docs/00_project_brief.md @@ -2,15 +2,15 @@ ## 프로젝트 목적 -VibeRoom Web은 몰입 공간 경험을 빠르게 실험하기 위한 프론트엔드 목업 프로젝트다. -핵심 목표는 실제 기능 완성보다 UX 흐름, 화면 구조, 상호작용 톤을 안정적으로 검증하는 것이다. +VibeRoom Web은 ADHD와 프리랜서를 위한 premium focus service의 웹 제품을 설계하고 구현하는 프로젝트다. +핵심 목표는 UX 흐름, 화면 구조, 상호작용 톤, core loop 계약을 실제 제품 품질로 안정적으로 끌어올리는 것이다. ## 기술 스택 - Next.js (App Router) - TypeScript - TailwindCSS -- 상태: React state + 일부 Zustand +- 상태: React state + local storage + 일부 shared store ## 유지보수 역할 정의 @@ -19,22 +19,22 @@ VibeRoom Web은 몰입 공간 경험을 빠르게 실험하기 위한 프론트 - FSD 구조를 지키며 화면/기능을 지속적으로 리팩터링한다. - View 계층을 조합 중심으로 유지하고 로직이 새지 않게 막는다. - 감성/저자극 톤을 유지하며 과한 강조 UI를 억제한다. -- 실제 서비스 로직은 구현하지 않고, 더미 데이터와 토스트로 흐름만 검증한다. +- mock UI만 만드는 데 그치지 않고, core focus/session/review 흐름은 실제 계약과 연결한다. ## 범위와 비범위 범위: - 라우트/위젯/피처 단위 UI 개선 -- 더미 데이터 기반 상태 표현 +- 더미 데이터 + 실제 계약 혼합 상태 표현 - 모달, 토글, 탭, 선택, 토스트 비범위: - 실시간 인원수/presence 정확도 보장 -- 타이머 카운트다운 실제 동작 -- 오디오 재생 엔진 -- 서버/DB/API 연동 완성 +- 오디오 DSP 수준의 고급 엔진 +- 운영 observability 완성 +- 모든 주변 기능의 production hardening ## Definition of Done diff --git a/docs/03_routes_map.md b/docs/03_routes_map.md index 605e405..be07728 100644 --- a/docs/03_routes_map.md +++ b/docs/03_routes_map.md @@ -14,21 +14,24 @@ ### `/app` (허브) - Page: `src/app/(app)/app/page.tsx` -- Core Widget: `src/widgets/app-hub/ui/AppHubWidget.tsx` +- Core Widget: `src/widgets/focus-dashboard/ui/FocusDashboardWidget.tsx` - 주요 구성: - - `StartRitualWidget` - - `RoomsGalleryWidget` - - `CustomEntryWidget` + - `FocusDashboardWidget` + - paused `Resume Gate` + - no-session `Atmosphere Entry Shell` (기획 기준, 구현 예정) - 데이터 소스: - - room 목록: `entities/room` - - 목표/타이머/사운드 프리셋: `entities/session` + - current session: `features/focus-session` + - weekly review: `features/stats` + - atmosphere 선택 데이터: entry slice 구현 예정 ### `/space` (집중 화면) - Page: `src/app/(app)/space/page.tsx` -- Core Widget: `src/widgets/space-shell/ui/SpaceSkeletonWidget.tsx` +- Core Widget: `src/widgets/space-workspace/ui/SpaceWorkspaceWidget.tsx` - 주요 구성: - `SpaceTimerHudWidget` + - `SpaceFocusHudWidget` + - `SpaceSetupDrawerWidget` - `SpaceToolsDockWidget` - `features/restart-30s` (HUD 내 조합) @@ -38,9 +41,11 @@ - `sound`: 사운드 preset id - `timer`: 타이머 라벨 - `goal`: 목표 한 줄 (선택) +- `resume`: `continue | refocus` ## 변경 시 체크포인트 - 라우팅 변경 시 `/app -> /space` 진입 흐름이 깨지지 않는지 확인 +- `running -> /space`, `paused -> /app` 재진입 정책 유지 - query param 기본값 처리 유지 - page 파일에 로직 누수 여부 확인 diff --git a/docs/09_app_entry_detailed_spec.md b/docs/09_app_entry_detailed_spec.md deleted file mode 100644 index d531bce..0000000 --- a/docs/09_app_entry_detailed_spec.md +++ /dev/null @@ -1,132 +0,0 @@ -# 09. `/app` Entry Detailed Spec - -Last Updated: 2026-03-14 - -이 문서는 `/app`을 **single-goal commitment gate**로 구현할 때의 상세 기준 문서다. - -관련 상위 기준: - -- `../../product_principles.md` -- `../../current_context.md` -- `08_app_reframe_strategy.md` - ---- - -## 1. 한 줄 정의 - -`/app`은 planner나 setup wizard가 아니라, -**사용자가 지금 할 일 한 가지를 정하고 가장 낮은 마찰로 `/space`에 들어가게 만드는 입구**다. - ---- - -## 2. 화면 역할 - -### `/app`이 해야 하는 일 - -- 현재 세션이 있으면 `이어가기`를 제안한다 -- 현재 세션이 없으면 `goal 1개 + optional microStep 1개`만 받는다 -- 주 행동은 항상 `지금 시작` 하나다 -- 시작 전에 많은 설정을 요구하지 않는다 - -### `/app`이 하면 안 되는 일 - -- 여러 목표를 관리하게 하기 -- planner / to-do / list app처럼 보이게 하기 -- scene / sound / timer 선택을 메인 결정으로 끌어올리기 -- 진입 전에 `정리`, `관리`, `저장`을 강요하기 - ---- - -## 3. 정보 구조 - -### 상태 A. Current Session Exists - -- eyebrow: `Resume` -- 현재 goal -- optional microStep -- primary CTA: `이어서 들어가기` -- 보조 정보: 현재 ritual 요약 -- 설명: - - 새 목표는 현재 세션을 마무리한 뒤 시작할 수 있다고만 안내 - -### 상태 B. No Current Session - -- 제목 -- 설명 -- goal input 1개 -- optional microStep input 1개 -- suggestion chips 3~4개 -- primary CTA: `지금 시작` -- 하단 보조 정보: - - `기본 ritual · scene · timer · sound` - - `공간과 사운드는 들어간 뒤에도 바꿀 수 있어요.` - ---- - -## 4. 상호작용 원칙 - -### Goal - -- 필수 -- 한 줄 입력 -- enter로 바로 시작 가능 - -### MicroStep - -- 선택 -- checklist가 아니라 `지금 할 한 조각` -- 1개만 허용 - -### Suggestions - -- 계획 리스트가 아니라 start friction reducer 역할 -- 클릭 시 goal input을 빠르게 채움 - -### Start - -- 현재 세션이 없을 때만 가능 -- `goal + microStep + default ritual`로 세션 시작 -- 성공 시 `/space` 이동 - -### Resume - -- 현재 세션이 있으면 start UI 대신 resume UI를 우선 노출 -- 클릭 시 `/space`로 이동 - ---- - -## 5. UX 원칙 - -- `/app`은 start surface여야지 setup surface가 아니어야 한다 -- 한 화면 안에서 결정할 것은 최대 2개(goal, optional microStep) -- visual hierarchy는 `goal > CTA > microStep > suggestions > ritual helper` 순서 -- paywall은 메인 CTA가 아니라 Plan Pill에서만 여는 수준으로 제한 - ---- - -## 6. 구현 범위 - -### 이번 slice에 포함 - -- 2-step ritual flow 제거 -- manage/list UI를 메인 경로에서 제거 -- current session resume path 추가 -- single-goal + optional microStep direct start -- default ritual만 사용 - -### 이번 slice에 포함하지 않음 - -- multi-goal manage 복구 -- entry 단계 scene/sound/timer 직접 선택 -- planner/dashboard 요소 복구 -- goal 저장과 session start의 backend atomic endpoint 신규 도입 - ---- - -## 7. 검증 기준 - -- 사용자가 10초 안에 goal을 입력하고 `/space`로 들어갈 수 있다 -- `/app` 첫 인상이 planner나 setup wizard처럼 보이지 않는다 -- current session이 있으면 `resume`이 주 행동으로 읽힌다 -- 현재 세션이 없을 때는 `지금 시작`이 유일한 dominant CTA다 -- scene / sound / timer는 entry의 주 의사결정으로 느껴지지 않는다 diff --git a/docs/10_refocus_system_spec.md b/docs/10_refocus_system_spec.md index 5fb353f..60dffb4 100644 --- a/docs/10_refocus_system_spec.md +++ b/docs/10_refocus_system_spec.md @@ -8,7 +8,7 @@ Last Updated: 2026-03-15 - `../../product_principles.md` - `../../current_context.md` -- `09_app_entry_detailed_spec.md` +- `19_app_atmosphere_entry_spec.md` --- diff --git a/docs/12_core_loop_execution_roadmap.md b/docs/12_core_loop_execution_roadmap.md index c5845d7..c96dfbb 100644 --- a/docs/12_core_loop_execution_roadmap.md +++ b/docs/12_core_loop_execution_roadmap.md @@ -13,7 +13,6 @@ Last Updated: 2026-03-15 - `../../product_principles.md` - `../../current_context.md` -- `09_app_entry_detailed_spec.md` - `19_app_atmosphere_entry_spec.md` - `10_refocus_system_spec.md` - `11_away_return_recovery_spec.md` @@ -48,11 +47,11 @@ VibeRoom은 아래 방식으로 진행한다. - 루트 문서 `../../product_principles.md` - single-goal, premium focus, anti-to-do 방향 고정 -### 완료 2. `/app` Entry Reframe +### 완료 2. `/app` Entry Reframe (Legacy) -- 문서: `09_app_entry_detailed_spec.md` +- 문서: historical, superseded by `19_app_atmosphere_entry_spec.md` - 구현 상태: - - `/app`은 single-goal commitment gate + - `/app`은 한때 single-goal commitment gate로 정리됐음 - planner/list-first 구조 제거 - current session이 있으면 resume 우선 @@ -369,7 +368,7 @@ Away / Return이 끼어들기 전, 다음으로 예정된 축은 아래 두 가 ### 방금 완료 - `Weekly Review Entry Flow` Slice 1 - - `/app` hero 아래 low-emphasis weekly review teaser 추가 + - `/app`에 low-emphasis weekly review entry를 추가 - 충분한 최근 7일 데이터가 있을 때만 `/stats` primary entry를 노출 - `Weekly Review Entry Flow` Slice 2 - `/stats` 마지막 CTA가 `/app?review=weekly&carryHint=...` handoff로 연결 @@ -378,7 +377,7 @@ Away / Return이 끼어들기 전, 다음으로 예정된 축은 아래 두 가 - Pro에서는 `/stats` carry-forward에 추천 ritual을 함께 보여준다 - `/stats` 마지막 CTA와 `/app` return hint가 더 구체적인 next-session handoff로 바뀐다 - `Weekly Review Entry Flow` Slice 4 - - `/space`에서 goal complete로 setup 상태로 돌아온 직후에만 secondary review teaser가 보인다 + - `/space`에서 goal complete로 setup 상태로 돌아온 직후에만 secondary review entry가 보인다 - full review 강제 이동 없이 작은 후행 경로로 `/stats`를 연다 - 다음 구현은 weekly review의 ritual fit highlight 또는 deeper recovery schema다 - `Paused Session Re-entry` spec diff --git a/docs/14_weekly_review_reframe_spec.md b/docs/14_weekly_review_reframe_spec.md index c6ceb2d..60b74c6 100644 --- a/docs/14_weekly_review_reframe_spec.md +++ b/docs/14_weekly_review_reframe_spec.md @@ -7,7 +7,7 @@ Last Updated: 2026-03-14 관련 문서: -- `09_app_entry_detailed_spec.md` +- `19_app_atmosphere_entry_spec.md` - `10_refocus_system_spec.md` - `11_away_return_recovery_spec.md` - `12_core_loop_execution_roadmap.md` diff --git a/docs/15_app_stats_entry_flow_spec.md b/docs/15_app_stats_entry_flow_spec.md index 38c754e..5ced828 100644 --- a/docs/15_app_stats_entry_flow_spec.md +++ b/docs/15_app_stats_entry_flow_spec.md @@ -10,7 +10,7 @@ Last Updated: 2026-03-15 관련 문서: -- `09_app_entry_detailed_spec.md` +- `19_app_atmosphere_entry_spec.md` - `12_core_loop_execution_roadmap.md` - `14_weekly_review_reframe_spec.md` - `../../product_principles.md` @@ -107,7 +107,7 @@ review가 가장 유의미한 순간도 바로 여기다. `/app -> /stats -> /app` 1. 사용자가 `/app`에 들어온다 -2. hero 아래 또는 하단에 `weekly review teaser`가 보인다 +2. entry stage 바깥의 quiet review dock에 `weekly review entry`가 보인다 3. 사용자가 teaser를 누른다 4. `/stats`로 이동한다 5. review를 본다 @@ -174,24 +174,24 @@ review가 가장 유의미한 순간도 바로 여기다. 이 경우: -- `/app` 메인 hero는 single-goal commitment에 집중 -- resume 상태에서는 hero 아래 큰 teaser 대신, resume card 안의 조용한 secondary entry로 review를 연다 +- `/app` no-session 상태에서는 goal/duration/atmosphere entry stage에 집중 +- resume 상태에서는 entry shell 대신 resume card 안의 조용한 secondary entry로 review를 연다 --- -## 7. `/app` teaser 설계 +## 7. `/app` review dock 설계 ### 위치 추천 위치: -- hero 바로 아래 -- 또는 hero 하단과 footer 사이 +- desktop에서는 entry stage 우측 또는 우상단 quiet dock +- mobile에서는 entry stage 아래의 얇은 secondary panel 금지: -- hero CTA보다 위 -- hero CTA와 같은 무게 +- entry stage보다 위 +- entry CTA와 같은 무게 - card 3개 중 하나처럼 보이게 배치 ### 형태 @@ -215,7 +215,7 @@ review가 가장 유의미한 순간도 바로 여기다. ### UX 원칙 - teaser는 insight를 다 말하지 않는다 -- review를 보고 싶게 만들되, hero를 가리지 않는다 +- review를 보고 싶게 만들되, entry stage를 가리지 않는다 - start CTA보다 절대 커 보이면 안 된다 --- @@ -263,7 +263,7 @@ review-aware state가 된다. - “방금 본 review 기준 추천” 한 줄 - review carry-forward hint -- optional ritual prefill +- optional atmosphere / ritual hint 예시: @@ -273,7 +273,7 @@ review-aware state가 된다. ### 유지할 것 - goal은 여전히 사용자가 직접 입력 -- microStep도 직접 입력 가능 +- goal과 duration은 여전히 사용자가 직접 입력 자동으로 하지 말 것: @@ -314,9 +314,9 @@ review-aware state가 된다. ## 11. UI/UX 원칙 -### `/app` teaser +### `/app` review dock -- hero보다 작음 +- entry stage보다 작음 - 한 줄 summary - secondary CTA - glass/card를 크게 쓰지 않음 @@ -335,7 +335,7 @@ review-aware state가 된다. ## 12. 구현 순서 -### Slice 1. `/app` weekly review teaser 추가 +### Slice 1. `/app` weekly review dock 추가 범위: diff --git a/docs/16_product_alignment_audit_plan.md b/docs/16_product_alignment_audit_plan.md index 137efaa..7408c70 100644 --- a/docs/16_product_alignment_audit_plan.md +++ b/docs/16_product_alignment_audit_plan.md @@ -69,7 +69,7 @@ Audit 중 충돌이 생기면 아래 순서로 판단한다. 1. `product_principles.md` 2. `/Users/ijeongmin/Desktop/corpi/viberoom/current_context.md` 3. route/flow 관련 상세 spec - - `09_app_entry_detailed_spec.md` + - `19_app_atmosphere_entry_spec.md` - `10_refocus_system_spec.md` - `11_away_return_recovery_spec.md` - `13_space_intent_card_collapsed_expanded_spec.md` @@ -345,7 +345,7 @@ Free / Pro를 아래 기준으로 본다. 8. `/space` goal complete choice 9. `/space` goal complete next 10. `/space` complete -> setup -> review teaser -11. `/app` weekly review teaser -> `/stats` -> `/app` +11. `/app` weekly review entry -> `/stats` -> `/app` 12. Pro 상태 handoff 각 시나리오마다 본다. diff --git a/docs/18_paused_session_reentry_spec.md b/docs/18_paused_session_reentry_spec.md index 13a2ffd..03869b2 100644 --- a/docs/18_paused_session_reentry_spec.md +++ b/docs/18_paused_session_reentry_spec.md @@ -12,7 +12,7 @@ Last Updated: 2026-03-15 관련 문서: -- `09_app_entry_detailed_spec.md` +- `19_app_atmosphere_entry_spec.md` - `10_refocus_system_spec.md` - `11_away_return_recovery_spec.md` - `15_app_stats_entry_flow_spec.md` @@ -205,7 +205,7 @@ paused session이 있는데 새 목표를 바로 시작하게 하면 처리: - `/app` 진입 -- single-goal start hero 노출 +- no-session entry shell 노출 --- diff --git a/docs/19_app_atmosphere_entry_spec.md b/docs/19_app_atmosphere_entry_spec.md index 7bacfb1..5fc0202 100644 --- a/docs/19_app_atmosphere_entry_spec.md +++ b/docs/19_app_atmosphere_entry_spec.md @@ -2,13 +2,12 @@ Last Updated: 2026-03-16 -이 문서는 `/app`을 **goal + duration + atmosphere` 중심의 premium focus entry surface**로 재설계하기 위한 기준 문서다. +이 문서는 `/app`을 **`goal + duration + atmosphere` 중심의 premium focus entry surface**로 재설계하기 위한 기준 문서다. 관련 문서: - `../../product_principles.md` - `../../current_context.md` -- `09_app_entry_detailed_spec.md` - `14_weekly_review_reframe_spec.md` - `15_app_stats_entry_flow_spec.md` - `18_paused_session_reentry_spec.md` @@ -27,7 +26,7 @@ Last Updated: 2026-03-16 - 첫 진입에서 VibeRoom만의 premium 감각이 충분히 전달되지 않는다 따라서 `/app`은 다시 planning home으로 돌아가면 안 되지만, -**goal + duration + atmosphere`를 한 화면에서 직관적으로 결정하는 premium entry stage**로 진화할 필요가 있다. +**`goal + duration + atmosphere`를 한 화면에서 직관적으로 결정하는 premium entry stage**로 진화할 필요가 있다. 핵심은 이것이다. @@ -444,4 +443,3 @@ Last Updated: 2026-03-16 - `/app`이 planner/dashboard처럼 보이지 않는다 - paused session에서는 resume gate가 새 entry shell보다 우선한다 - `70분` 같은 custom duration이 실제 세션 길이로 반영된다 - diff --git a/docs/90_current_state.md b/docs/90_current_state.md index ef823c5..d6b3cd6 100644 --- a/docs/90_current_state.md +++ b/docs/90_current_state.md @@ -9,14 +9,9 @@ Last Updated: 2026-03-15 - takeover confirm sheet에서만 current paused session을 정리하고 single-goal start 상태로 넘어간다 - silent abandon을 막기 위해 server `startSession()`도 current session 존재 시 direct start를 거절하도록 정리했다 - explicit confirm 이후에만 `abandon -> 새 목표 입력` 흐름이 가능하다 -- `/app` single-goal commitment gate 재구성: - - 2-step `goal -> ritual` flow 제거 - - current session이 있으면 `Resume` UI를 우선 노출하고, `/space`로 바로 이어가기만 제안하되 review entry는 조용한 secondary link로 유지 - - current session이 없으면 `goal 1개 + optional microStep 1개 + primary CTA`만 남긴 direct start 구조로 단순화 - - `환경 세팅`, `블록 정리`, scene/sound/timer 선택을 메인 진입 경로에서 제거 - - suggestion chip은 planner가 아니라 입력 마찰을 줄이는 용도로만 유지 - - 시작 시에는 기본 ritual(`forest · 50/10 · forest-birds`)로 세션을 열고, 세부 조정은 `/space`에서 하도록 역할을 분리 - - `/app`이 planner home이 아니라 commitment gate라는 역할을 문서와 구현 모두에서 다시 고정 +- `/app` 기존 single-goal commitment gate는 legacy로 내려갔다: + - 2-step `goal -> ritual` flow를 제거하고, current session이 있으면 `Resume` UI를 우선 노출하도록 정리했다 + - 현재 source-of-truth는 `goal + duration + atmosphere` 중심의 새 entry shell spec이다 - `/space` Refocus System slice 1 구현: - HUD recovery layer를 `paused / refocus / next-beat / complete` 단일 overlay 상태로 정리 - pause 직후 바로 편집 시트를 열지 않고, 작은 recovery prompt를 먼저 노출 @@ -100,11 +95,10 @@ Last Updated: 2026-03-15 - Calm Session OS 유료화 축 구현: - Free는 기본 시작, Pro는 더 잘 이어가기를 파는 구조로 재정의 - old `Scene Packs / Sound Packs / Profiles` 중심 copy를 `Daily Focus Plan / Rituals / Weekly Review` 중심으로 교체 -- `/app` route를 Session OS focus entry surface로 복구: +- `/app` route를 focus entry surface로 복구: - `/app` route가 `/space` redirect 대신 `FocusDashboardWidget`을 렌더링 - - current/next summary card와 list-first 구조를 제거하고, entry hero가 above-the-fold를 차지한다 - - 현재는 current session이 있으면 resume, 없으면 `goal + microStep + start`만 제안하는 single-goal entry로 정리됐다 - - scene/sound/timer는 기본 ritual로 시작하고, 세부 조정은 `/space`에서 담당한다 + - current/next summary card와 list-first 구조를 제거했다 + - 현재는 `Resume` gate가 구현되어 있고, no-session entry shell은 다음 slice에서 `goal + duration + atmosphere` 구조로 교체될 예정이다 - 플랜 tier 공유 store 추가: - `entities/plan/model/usePlanTier.ts` 추가 - localStorage 기반 Free/Pro 상태를 `/app`, `/space`, `/stats`, dock paywall에서 공통 사용 @@ -124,12 +118,12 @@ Last Updated: 2026-03-15 - 기존 `focus-summary` 응답을 주간 review view model로 변환해서 사용 - recovery는 서버의 `pause 뒤 복귀` 집계를 사용하고, `자리 비움 뒤 복귀`만 limited note로 남긴다 - `/app -> /stats` primary entry의 1차 연결: - - current session이 없고 최근 7일 데이터가 충분할 때 `/app` hero 아래에 low-emphasis `Weekly Review` teaser를 노출한다 - - teaser는 `/stats`로 연결되며, hero CTA보다 한 단계 아래 시각 우선순위를 유지한다 + - current session이 없고 최근 7일 데이터가 충분할 때 `/app`의 quiet secondary review dock에서 `Weekly Review` entry를 노출한다 + - resume 상태에서는 paused gate 안의 조용한 secondary entry로 review를 연다 - `/stats -> /app` handoff의 2차 연결: - `/stats` 마지막 CTA는 `/app?review=weekly&carryHint=...&entryPreset=forest-50-10`으로 연결된다 - - `/app`은 이 query를 받아 hero 위에 review-aware return hint를 노출한다 - - goal과 microStep은 자동 입력하지 않고, 방향만 가볍게 제안한다 + - `/app`은 이 query를 받아 entry stage 위의 review-aware return hint를 노출한다 + - goal과 duration은 자동 입력하지 않고, 방향만 가볍게 제안한다 - Pro personalized handoff 3차 연결: - Pro에서는 `/stats` carry-forward 섹션에 추천 ritual을 함께 보여준다 - `/stats` 마지막 CTA 카피가 generic start가 아니라 `가장 잘 맞은 ritual로 /app 돌아가기`로 바뀐다 @@ -314,9 +308,9 @@ Last Updated: 2026-03-15 ## NEXT -1. `/app` single-goal commitment gate 브라우저 스모크 -2. `/space` intent HUD / refocus / goal-complete hierarchy QA -3. `/stats` factual summary / trend / refresh 브라우저 QA +1. `/app` atmosphere entry shell 구현 +2. custom duration contract 정리 +3. weekly review dock 위치 재설계 ## RISKS diff --git a/docs/session_brief.md b/docs/session_brief.md index b8d6f31..8054976 100644 --- a/docs/session_brief.md +++ b/docs/session_brief.md @@ -82,12 +82,12 @@ Last Updated: 2026-03-15 - recovery tray가 열리면 base card는 자동으로 collapsed 상태를 유지한다. - expanded rail은 outside click으로 접히지만, decision tray는 outside click으로 닫히지 않는다. - rail 클릭은 펼침/접힘만 담당하고, 수정은 expanded 상태의 `수정` 액션으로만 진입한다. -- `/app`을 single-goal commitment gate로 다시 줄였다. - - 2-step ritual setup을 제거했다. - - current session이 있으면 `Resume` UI만 보여주고, `/space`로 이어가기만 제안한다. - - current session이 없으면 `goal 1개 + optional microStep 1개 + 바로 시작`만 남긴다. - - scene/sound/timer는 기본 ritual로 시작하고 `/space`에서 바꾸게 둔다. - - manage/list 성격의 affordance는 메인 진입 경로에서 제거했다. +- `/app`은 legacy single-goal gate에서 `goal + duration + atmosphere` 중심의 새 entry shell로 전환 중이다. + - current session이 있으면 `Resume` gate가 우선 노출된다. + - no-session 상태는 `goal 1개 + 예상 시간 + 선택된 atmosphere + 시작 CTA` 구조로 재설계 중이다. + - `microStep`은 `/app`에서 제거하고 `/space` recovery/refocus에서만 다시 잡는다. + - weekly review는 hero 아래 카드가 아니라 quiet secondary dock/entry로 유지한다. + - manage/list 성격의 affordance는 메인 진입 경로에서 계속 배제한다. - `/space`는 execution-only surface로 정리됐다. - setup drawer에서 Daily Plan / Ritual Library 섹션을 제거했다. - goal, scene, sound, timer만 확인하고 focus HUD로 진입한다. @@ -100,8 +100,9 @@ Last Updated: 2026-03-15 - 기존 `focus-summary` 응답은 review view model로 변환해서 쓴다. - recovery는 서버의 `pause 뒤 복귀` 집계를 사용하고, `away recovery`만 limited state로 남긴다. - `/app`에서 `/stats`로 들어가는 primary path 1차가 생겼다. - - current session이 없고 최근 7일 데이터가 충분하면 hero 아래에 weekly review teaser가 보인다. - - teaser는 `/stats`로 이동시키되, main start CTA보다 낮은 강조로 유지한다. + - current session이 없을 때는 quiet review dock에서 `/stats`로 진입할 수 있다. + - paused session 상태에서도 resume gate 안에 조용한 secondary review entry가 남는다. + - review entry는 main start/resume CTA보다 항상 낮은 강조를 유지한다. - `/app` Resume 상태에서도 weekly review entry가 보이게 정리했다. - review primary entry가 active session 상태에서 사라지지 않도록, resume card 안에 조용한 secondary review link를 추가했다. - `/stats` 마지막 CTA의 `/app` return handoff가 연결됐다. diff --git a/docs/work.md b/docs/work.md index 05759d9..738d4ef 100644 --- a/docs/work.md +++ b/docs/work.md @@ -99,7 +99,7 @@ - `/app` paused resume - `/app -> /stats -> /app` - `/space` pause / return / next beat / complete - - `/space` complete -> setup -> weekly review teaser + - `/space` complete -> setup -> weekly review entry - 제외 범위: - new feature 추가 금지 - 완료 조건: