# v0.2.8+ Roadmap — F17~F25 cut 분할 + 우선순위

**작성일:** 2026-05-09
**저자:** 김태현
**선행 문서:**

- `docs/superpowers/specs/2026-04-25-dogfood-feedback.md` (F17~F25 raw + chore 아이콘)
- `docs/superpowers/v024-backlog.md` (잔여 23건 — v0.2.6 cut 후 deferred)
- `docs/superpowers/strategy/strategy.md` (심리학 전략)

**목적:** v0.2.7 release 후 dogfood 9건 누적 + chore 1건 의 cut sequencing + 우선순위 + dependency 결정. v0.2.8 brainstorm 진입 직전 alignment 문서.

---

## 1. 항목 요약

| ID | 제목 | scope | 분류 |
|---|---|---|---|
| F17 | 휴지통 의미 분기 (완료/보관/버림) | 1주 (옵션 C 보관함만 별도) | 데이터 모델 |
| F18 | 메모 이동 시 사유 입력 | 1일 (F17 묶음) | 데이터 모델 |
| F19 | 획기적 recall (search/context/AI/회고/spaced/자연어) | A 단독 3-4일 / 묶음 1-2주 | UX 본질 |
| F20 | 기존 메모 raw_text 수정 (load-bearing invariant 재검토) | 옵션 B 3-4일 | 데이터 모델 |
| F21 | 다기기 git-based sync (양방향 + Configure + conflict) | 1-2주 | 인프라 |
| F22 | NoteCard 이미지 회색 placeholder bug | 1-2일 | 명확한 bug |
| F23 | 로컬 LLM 활성화 옵션 (Ollama-less 모드) | 3-4일 | 환경 대응 |
| F24 | 이미지 멀티모달 vision AI | 1주 (F22 prerequisite) | AI 확장 |
| F25 | 사이드바 + 메모 저장소 리스트 | 옵션 결정 후 1-3주 | UI 큰 변화 |
| chore | 앱 아이콘 SVG → ICO/ICNS/PNG + builder 통합 | 0.5일 | release polish |

---

## 2. Dependency Graph

```dot
digraph G {
  rankdir=LR;
  F22 -> F24 [label="prerequisite (이미지 렌더 → vision 결과 surface)"];
  F17 -> F18 [label="conceptual 강한 결합 (status + reason)"];
  F17 -> F19 [label="status 분기 데이터가 recall 입력"];
  F20 -> F21 [label="user_edited_text 가 sync 충돌 정책 입력"];
  F23 -> F19 [label="Ollama-less 시 recall 단순화 (tag 부재)"];
  F23 -> F17 [label="raw-only 모드에서 status 자동 분류 무력"];
  F25 -> F17 [label="저장소 + status + tag 분기 layer 정합 필요"];
  chore [shape=box, style=filled];
  F22 [shape=box, style=filled];
  chore -> "v0.2.8";
  F22 -> "v0.2.8";
}
```

**핵심 prerequisite chain:**

- F22 → F24 (이미지 보여야 vision 결과 surface 의미)
- F20 → F21 (sync 충돌 정책 = `user_edited_text` 우선순위)
- F17 + F23 → F19 (recall 알고리즘 입력은 status / Ollama-less 영향)

**독립 항목 (다른 항목 영향 받지 않음):**

- F22 (bug fix)
- chore (icon)

---

## 3. Cut 분할 + 버전 매핑

### Cut A — v0.2.8 (1주 미만, 빠른 polish)

**테마:** dogfood UX 마찰 + release polish

| 항목 | scope |
|---|---|
| F22 (이미지 렌더링 fix) | 1-2일 — `inkling-media://` custom protocol + `<img>` |
| chore (앱 아이콘) | 0.5일 — SVG → ICO/ICNS/PNG 다중 size + electron-builder config |

**합 2-3일.** 명확한 작업, 빠른 release. 의사결정 X (기술 detail 만).

### Cut B — v0.2.9 (2주, 데이터 모델 정비 1차)

**테마:** 휴지통의 의미 분기 + 사유 + Ollama-less

| 항목 | scope |
|---|---|
| F17 (status — 옵션 C 보관함만 별도) | 1주 — `archived_at` 컬럼 + UI 탭 + 마이그레이션 |
| F18 (사유 입력 — preset + 자유 텍스트) | 1일 (F17 묶음) |
| F23 (Ollama-less 토글) | 3-4일 — ai_status='disabled' enum + capture skip + UI fallback |

**합 1.5-2주.** F17/F18 같은 데이터 모델 변경 cut 안에 함께. F23 의 raw-only 모드가 F17 status 와 같은 schema 영역이라 효율.

**의사결정 필요 (brainstorm 단계)**:

- F17 옵션 A/B/C 중 — C 추천 (보관함만 별도) 가 가장 균형
- F18 preset 항목 명세 ("완료" / "급하지 않음" / "잘못 적음" / "기타")
- F23 ON↔OFF 전환 정책 (B1 추천 — 잔류)

### Cut C — v0.2.10 (1주, raw_text invariant)

**테마:** F20 단독 — load-bearing invariant 재검토

| 항목 | scope |
|---|---|
| F20 (raw_text 수정 — 옵션 B `user_edited_text`) | 3-4일 |

**합 1주.** Cut C 단독 cut 인 이유 = invariant 정책 변경 자체가 의사결정 큰 작업. 별도 PR 로 review focus 보장. 후속 Cut D (sync) 의 prerequisite.

**의사결정 필요**:

- 옵션 A (raw_text 직접 수정 + 원본 lost) vs B (`user_edited_text` 분기) — B 추천
- AI 재실행 시 input — raw_text vs user_edited_text 우선순위

### Cut D — v0.2.11 (1.5-2주, recall 1차)

**테마:** F19 — search 진입 + 회고 view

| 항목 | scope |
|---|---|
| F19 옵션 A (FTS5 free text search) | 3-4일 |
| F19 옵션 D (회고 view) | 1주 |

**합 1.5-2주.** F19 의 6 옵션 중 가장 작은 + 가치 큰 둘 (search + 회고). B/C/E/F 는 v0.3+ deferred.

**의사결정 필요**:

- search box 위치 (header / 사이드바 — F25 결정 영향)
- 회고 view 트리거 (수동 라우트 / 월요일 자동 banner)

### Cut E — v0.3.0 (2주, 다기기 sync)

**테마:** F21 — 양방향 sync + Configure UI

| 항목 | scope |
|---|---|
| F21 옵션 A (양방향 sync — fetch+rebase+import) | 1주 |
| F21 옵션 B (Configure UI) | 3-4일 |
| F21 옵션 C (conflict UI) | 0.5주 |

**합 2주.** F20 의 user_edited_text 가 conflict 정책 입력 — 따라서 Cut C 후. v0.3.0 = MINOR bump (semver 엄밀히도 minor — 새 feature 큰 영역).

### Cut F — v0.3.1 (1-1.5주, 멀티모달 vision)

**테마:** F24 — Ollama vision 모델 활용

| 항목 | scope |
|---|---|
| F24 (capability detection + 멀티모달 prompt + InferenceProvider 확장) | 1주 |

**합 1주.** F22 prerequisite 충족 (Cut A) 이므로 진행 가능. F23 (Ollama-less) OFF 시 자동 OFF.

### Cut G — v0.3.2 (1-3주, 사이드바 + 저장소)

**테마:** F25 — UI 큰 변화

| 항목 | scope |
|---|---|
| F25 옵션 A (다중 profile) | 2-3주 — 큰 refactor |
| F25 옵션 B (notebook_id) | 1주 |
| F25 옵션 C (다중 sync remote) | 0.5주 |

**의사결정 필요 (직접 사용자 의도 확인)**:

- "메모 저장소" = 다중 DB 분리 (A) / 카테고리 폴더 (B) / sync remote (C) 어느 의미인가

---

## 4. 우선순위 + 시간선 추정

```
2026-05-09 ~ 2026-05-15  Cut A  (v0.2.8)  ✦ 빠른 polish
2026-05-15 ~ 2026-05-29  Cut B  (v0.2.9)  ✦ 데이터 모델 정비
2026-05-29 ~ 2026-06-05  Cut C  (v0.2.10) ✦ invariant 변경
2026-06-05 ~ 2026-06-19  Cut D  (v0.2.11) ✦ recall 1차
2026-06-19 ~ 2026-07-03  Cut E  (v0.3.0)  ✦ 다기기 sync
2026-07-03 ~ 2026-07-10  Cut F  (v0.3.1)  ✦ 멀티모달
2026-07-10 ~ 2026-07-31  Cut G  (v0.3.2)  ✦ 사이드바 + 저장소
```

**총 약 12주.** 본인 dogfood 2주 완주 종료 조건 (v0.4 slice §1.3) 은 Cut B 종료 시점 도달. 그 후 Cut C-G 는 외부 확장 영역.

---

## 5. Risk + Open Questions

| ID | 질문 |
|---|---|
| F17 | A/B/C 중 결정 — dogfood 1주 측정 후? |
| F18 | preset 항목 정확 명세 |
| F19 | recall 6 옵션 중 cut D 에 A+D 외 추가 여부 |
| F20 | invariant 폐기 (옵션 A) 충분 vs B (`user_edited_text`) 분기 — B 균형 추천 |
| F21 | conflict 처리 default (rebase / merge / 사용자 prompt) |
| F23 | default ON / OFF — 본인 LAN Ollama 가정 시 ON, 외부 user 첫 실행 OFF? |
| F24 | vision 모델 default 추천 (한국어 + 이미지) — dogfood 검증 필요 |
| F25 | "메모 저장소" 정의 (A/B/C) — 직접 사용자 확인 |

---

## 6. v0.2.8 brainstorm 진입 시 결정 사항

Cut A (v0.2.8) 는 의사결정 거의 없는 작업이라 brainstorm 가벼움. 그러나 절차상 진입.

**Cut A brainstorm focus:**

1. F22 — `inkling-media://` custom protocol 디테일 (path traversal 검사 / fallback / thumbnail vs full-size)
2. chore — 아이콘 size 매트릭스 (16/32/64/128/256/512/1024) + electron-builder config (`build.win.icon`/`build.mac.icon`/`build.linux.icon`)
3. v0.2.8 release notes 초안

이후 Cut B brainstorm 은 F17 옵션 결정 + F18 preset + F23 정책 등 의사결정 多. 별도 brainstorm 세션.

---

## 7. 변경 이력

- 2026-05-09: 작성. F17~F25 + chore 9+1 entry triage. Cut A~G 분할.
