diff --git a/docs/superpowers/specs/2026-04-25-dogfood-feedback.md b/docs/superpowers/specs/2026-04-25-dogfood-feedback.md index 14b3162..9d15022 100644 --- a/docs/superpowers/specs/2026-04-25-dogfood-feedback.md +++ b/docs/superpowers/specs/2026-04-25-dogfood-feedback.md @@ -270,13 +270,15 @@ H1 이 미달이면 본 항목 ❌ rejected. --- -## F4. 떠오른 순간 → "Inkling!" 자동 연상 만들기 (🌱 raw) +## F4. 떠오른 순간 → "Inkling!" 자동 연상 만들기 (🔬 drafting — C·E·F promoted) **발견:** 2026-04-26 dogfood 시작 직전 사고 실험. 슬라이스 v0.4 와 strategy.md §3 가 **이미 알고 있는 contextual cue** (회의 후, 퇴근 전, 디버깅 후) 의 if-then 만 다루고, **ambient/spontaneous 떠오름** (샤워, 산책, 대화 중, 자기 전) 은 사각지대. **진행 상태:** - E (Zeigarnik priming) — 🚀 promoted → `docs/superpowers/specs/2026-04-26-f3-f4e-copy.md` -- A·B·C·D·F — 🌱 raw, 측정 후 결정 +- C (환경 앵커) — 🚀 promoted → `docs/superpowers/specs/2026-04-26-f4-cf-cue.md` +- F (정체성 고리) — 🚀 promoted → `docs/superpowers/specs/2026-04-26-f4-cf-cue.md` +- A (잠금 hook), D (variable interval prompt), B (ambient if-then) — 🌱 raw, 측정 후 결정 ### 관찰 diff --git a/docs/superpowers/specs/2026-04-26-f4-cf-cue.md b/docs/superpowers/specs/2026-04-26-f4-cf-cue.md new file mode 100644 index 0000000..b7a0e6c --- /dev/null +++ b/docs/superpowers/specs/2026-04-26-f4-cf-cue.md @@ -0,0 +1,35 @@ +# F4-C·F Cue 강화 Spec (Promoted) + +**Extracted from:** `2026-04-25-dogfood-feedback.md` F4 §"C. 환경 앵커" + §"F. 정체성 고리" +**Status:** 🚀 promoted — implemented 2026-04-26 + +## 결정 (mini-brainstorm 결과) + +| 결정 | 값 | 근거 | +|------|-----|------| +| 트레이 색·뱃지 | nativeImage 색 변경 미지원 → tooltip + 메뉴 비활성 라벨로 대체 | 빈 아이콘 위에 색칠 비용 vs 텍스트 신호 비용 | +| 트레이 메뉴 첫 항목 | count > 0: `오늘 N번 잡아둠` (비활성) | 시야에 들어오는 매 트레이 클릭에 정체성 노출 | +| 트레이 tooltip | `Inkling — 오늘 N` (always) | 호버 시 즉시 신호 | +| Inbox 헤더 | count > 0: `오늘 N번 잡아뒀다` / 0: `오늘은 처음 한 줄?` | F4-F 정체성 고리 + F4-E Zeigarnik priming 결합 | +| 갱신 주기 | 60초 interval + AI worker onUpdate + focus event | renderer/store + main/tray 분리 | +| count 정의 | KST 자정 기준 created_at | ContinuityService 와 같은 KST 정의 | + +## 범위 (PR 안에 포함됨) + +- `src/main/repository/NoteRepository.ts` — `countToday(now: Date = new Date()): number` +- `src/main/ipc/inboxApi.ts` — `inbox:todayCount` 핸들러 +- `src/preload/index.ts` — `getTodayCount` 브리지 +- `src/shared/types.ts` — `InboxApi.getTodayCount()` +- `src/renderer/inbox/store.ts` — `todayCount` 필드 + load/refresh +- `src/renderer/inbox/components/IdentityCounter.tsx` — 신규 컴포넌트 +- `src/renderer/inbox/App.tsx` — 헤더에 IdentityCounter 추가 +- `src/main/tray.ts` — `refreshTray(todayCount)` export, 메뉴 첫 항목 동적 + tooltip 동적 +- `src/main/index.ts` — 60초 interval + AiWorker onUpdate hook +- 테스트 — `NoteRepository.countToday` 4 케이스 (empty, KST date filtering, midnight crossover, default arg) + +## 후속 + +- F4-A (잠금/잠금해제 hook) — measurement-dependent, dogfood soak 후 +- F4-D (variable interval random prompt) — measurement-dependent +- F4-B (ambient if-then) — strategy 재검토와 묶임, 별 spec +- 트레이 아이콘 PNG 색 변형 (count > 0 = 활성 색, 0 = 회색) — 별 spec, 아이콘 자산 필요