F4 의 6개 cue 메커니즘 중 외부 신호 없이 즉시 구현 가능한 두 가지 (C 환경 앵커, F 정체성 고리) 를 묶어 promoted spec 으로 추출. A (잠금 hook), D (variable interval prompt), B (ambient if-then) 는 dogfood soak 측정 결과를 본 뒤 결정. F4 헤더를 🌱 raw → 🔬 drafting (C·E·F promoted) 로 갱신하고, F4 진행 상태에 두 promoted 경로를 명시.
2.1 KiB
2.1 KiB
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()): numbersrc/main/ipc/inboxApi.ts—inbox:todayCount핸들러src/preload/index.ts—getTodayCount브리지src/shared/types.ts—InboxApi.getTodayCount()src/renderer/inbox/store.ts—todayCount필드 + load/refreshsrc/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.countToday4 케이스 (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, 아이콘 자산 필요