diff --git a/docs/superpowers/specs/2026-04-25-dogfood-feedback.md b/docs/superpowers/specs/2026-04-25-dogfood-feedback.md index cb2cf2e..923258e 100644 --- a/docs/superpowers/specs/2026-04-25-dogfood-feedback.md +++ b/docs/superpowers/specs/2026-04-25-dogfood-feedback.md @@ -159,6 +159,111 @@ H1 이 미달이면 본 항목 ❌ rejected. --- +## F3. "구출" 카피가 한국어로 어색함 (🌱 raw) + +**발견:** 2026-04-26 dogfood 첫날, 메모 1건 캡처 후 OS 토스트 알림에서 "방금 하나의 업무 기억을 구출했습니다" 문구가 떴을 때. + +### 관찰 + +`구출(rescue)` 은 한국어 일상어로 거의 쓰이지 않는다. 인질·재난 맥락에서 주로 쓰이는 어휘라서 "메모 한 줄 적었더니 구출됐다" 라는 표현이 어색하게 들린다. 영어 원문 의도(rescue a thought before you lose it) 를 직역한 결과로 추정. + +현재 "구출" 등장 표면 (코드 경로 기준): + +| # | 표면 | 위치 | 문구 | +|---|------|------|------| +| 1 | OS 토스트 (회전 카피 4종 중 3번째) | `src/main/services/NotificationService.ts:6` | `방금 하나의 업무 기억을 구출했습니다.` | +| 2 | 트레이 메뉴 | `src/main/tray.ts:13` | `기억 구출하기` | +| 3 | 트레이 메뉴 | `src/main/tray.ts:12` | `구출한 메모 보기` | +| 4 | Inbox 빈 상태 | `src/renderer/inbox/App.tsx:44` | `첫 기억을 구출해보세요.` | +| 5 | QuickCapture 힌트 | `src/renderer/quickcapture/App.tsx:68` | `Ctrl+Enter 구출 · Esc 취소 · 이미지 붙여넣기` | + +추가 영향 표면 (코드 외): +- `package.json` `description: "Inkling — local-first 기억 구출 도구"` +- `tests/e2e/smoke.spec.ts:29` 의 단언 `await expect(inbox.getByText('첫 기억을 구출해보세요.')).toBeVisible()` +- `docs/superpowers/specs/2026-04-24-inkling-vertical-slice-design.md` §5.5 의 카피 테이블 (519~523행) +- `docs/superpowers/strategy/strategy.md` 의 §1, §3 — "메모 작성 → 기억 구출" 으로 핵심 행동을 재정의한 **전략적 선언** 그 자체 + +### 제안 방향 + +**카피 변경 + strategy 문서의 어휘 결정 재검토를 한 항목으로 묶음.** + +대체 후보 (전략 의도 보존도 vs 자연스러움 트레이드오프): + +| 후보 | 의도 보존 | 자연스러움 | 비고 | +|------|----------|-----------|------| +| **꺼내 놓기** | 중 | 상 | "머릿속에서 꺼낸다" 직관, 기존 strategy "꺼내는 1회 행동" 표현과 일치 | +| **잡아두기** | 중 | 상 | "잊기 전에 잡아둔다" 어감, 가벼움 | +| **한 줄 던지기** | 상 | 상 | 슬라이스 §1.1 "3초 안에 던지고" 표현 그대로. 캡처 행위에 적합 | +| **남겨두기** | 하 | 상 | 평이함, 의도성 약함 | +| **적어두기/메모하기** | 하 | 상 | 전략 의도 상실 ("메모 작성" 회귀) | +| **챙겨두기** | 중 | 상 | 알림 카피에 자연 ("하나 챙겨뒀습니다") | +| **(현행) 구출** | 상 | 하 | 어색함 | + +권장 1차안 — **표면별 다른 동사 허용** (한 단어로 통일 강제 안 함): + +| 표면 | 권장 카피 | +|------|----------| +| 토스트 회전 카피 #3 | `방금 한 줄 잡아뒀습니다.` 또는 `머릿속에서 한 줄 꺼내뒀습니다.` | +| 트레이: 새 메모 | `한 줄 적기` 또는 `빠르게 한 줄` | +| 트레이: Inbox 열기 | `보관한 메모 보기` 또는 `Inkling 열기` | +| 빈 상태 | `첫 한 줄을 던져보세요.` 또는 `머릿속에 떠다니는 한 줄을 적어보세요.` | +| QC 힌트 | `Ctrl+Enter 저장 · Esc 취소 · 이미지 붙여넣기` | + +핵심: "구출" 의 행동적 의미("정리·작성이 아니라 머릿속에서 꺼내기만") 는 보존하되, 직역체 한 단어로 강제하지 않고 표면별 자연 문맥에 맞춰 동사를 분배. + +### 결정 대기 + +1. **Strategy 문서 §1, §3 의 "기억 구출" 선언을 함께 수정할 것인가?** — "구출" 은 단순 UI 카피가 아니라 전략 어휘다. 카피만 바꾸면 strategy 와 코드가 어긋난다. 같이 바꾸려면 strategy.md §1·§3·§7 갱신 + "꺼내기" / "한 줄" 같은 새 키워드 정의. +2. 단일 동사로 통일할 것인가, 표면별 자연어로 분배할 것인가? — 통일은 브랜딩 자산, 분배는 자연스러움. +3. 제품명 표어 ("local-first 기억 구출 도구") 는 어디까지 따라가는가? — `package.json description`, GitHub README 첫 문단, 향후 onboarding 문구 모두 영향. +4. e2e smoke 의 단언 문구 변경 시 카피 freeze 관행을 도입할지 — 카피 변경마다 e2e fix 가 따라오면 마찰 큼. 단언을 더 약하게 (`getByRole('main')` 등) 잡거나 카피 상수 import 가 대안. +5. 캡처-보상 카피 4종 중 #1, #2, #4 (`이 생각은 이제 Inkling이 들고 있습니다.` / `나중에 찾을 수 있게 보관했습니다.` / `기록 완료. 이제 잊어도 됩니다.`) 는 그대로 유지해도 자연스러우니 #3 만 교체로 충분한가? 아니면 전체 톤 재정렬? + +### 가설·측정 + +| # | 가설 | 측정 | +|---|------|------| +| H1 | 본인 dogfood 1주 누적 시 "구출" 표현에 대한 위화감 토스트/메뉴 노출당 ≥ 1회 보고 | 일일 dogfood 로그의 카피 마찰 항목 | +| H2 | 권장안 적용 시 카피 위화감 보고 0건/주로 감소 | 동일 로그 | +| H3 | 외부인(가족·동료) 1명에게 권장안 vs 현행 블라인드 비교 시 권장안이 자연스럽다고 답함 | 정성 1회 | + +### 범위 + +- **In:** + - `NotificationService.REWARD_COPIES` 의 #3 교체 + - 트레이 메뉴 라벨 2개 + - Inbox 빈 상태 + QuickCapture 힌트 + - `package.json description` + - smoke spec 단언 문구 동기화 + - 카피 테이블 (`2026-04-24-inkling-vertical-slice-design.md` §5.5) + - **strategy.md §1·§3·§7 의 "기억 구출" 어휘 결정** 동시 갱신 여부 결정 +- **Out:** + - 회전 카피 4종 전면 재작성 (필요하면 별 항목으로 분리) + - onboarding 흐름 (슬라이스 외) + - 로고·앱 아이콘 텍스트 + - 다국어 (영어 카피) + +### 영향 + +- **Schema:** 없음 +- **코드:** + - `src/main/services/NotificationService.ts` — 회전 카피 한 줄 + - `src/main/tray.ts` — 메뉴 라벨 2곳 + - `src/renderer/inbox/App.tsx` — 빈 상태 문구 + - `src/renderer/quickcapture/App.tsx` — 힌트 + - `package.json` — description + - `tests/e2e/smoke.spec.ts` — 단언 문구 (또는 셀렉터 약화) +- **문서:** + - `docs/superpowers/specs/2026-04-24-inkling-vertical-slice-design.md` 카피 테이블 + - `docs/superpowers/strategy/strategy.md` — 결정 대기 #1 결과에 따라 부분 또는 전면 + - 본 문서 — promoted 시 별 spec 으로 추출 + +### 메모 + +이 항목은 strategy 문서와의 어휘 일관성 결정이 함께 묶여 있어서, 단순 카피 PR 로 끝낼지 / strategy 재검토 미니 spec 으로 승격할지 결정 대기 #1 의 답이 promoted 경로를 좌우함. drafting 단계에서 결정 대기 #1 부터 답하고 ready-for-spec 으로 넘기는 순서 권장. + +--- + ## (다음 항목 자리) -새 피드백 추가 시 `## F3. 짧은 제목 (🌱 raw)` 헤더로 시작. 표준 슬롯 6개 채우거나 비워둔 채 시작 가능. +새 피드백 추가 시 `## F4. 짧은 제목 (🌱 raw)` 헤더로 시작. 표준 슬롯 6개 채우거나 비워둔 채 시작 가능.