신규 spec 파일 추가 (구현 결과 반영). dogfood-feedback.md 의 F7 헤더 🔬 drafting → 🚀 promoted 로 갱신. F1 spec 의 후속 리스트에 F7 링크 추가. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.1 KiB
3.1 KiB
F1 Due Date Spec (Promoted)
Extracted from: 2026-04-25-dogfood-feedback.md F1
Plan: docs/superpowers/plans/2026-04-26-f1-due-date.md
Status: 🚀 promoted — implemented 2026-04-26
결정 (mini-brainstorm 결과)
| 결정 항목 | 값 | 근거 |
|---|---|---|
| 매칭 우선순위 | 규칙 파서 우선 → AI 응답 폴백 | 결정론적 매칭 우선 |
| 모호 표현 (월말, 주말, 퇴근 전) | 규칙은 medium confidence + iso=null, AI 위임 | false positive 회피 |
| 라벨 슬롯 | NoteCard 의 summary 와 tags 사이 인라인 (📅 YYYY-MM-DD) |
시각 노이즈 최소 |
| 만료 표시 | 회색 + 취소선 (라벨만, 본문 무수정) | slice §1.1 카피 정책 |
| 사용자 편집 | HTML date input, 클릭 → 편집 | 표준 UX |
| 시각 단위 / 음력 / 반복 일정 | 미지원 | F1 §Out |
| 만료 자동 처리 | 없음 (시각만) | dogfood 후 결정 |
| 별도 뷰 / 정렬 | 없음 | 후속 |
| Migration v2 backfill | NULL 기본 | 비파괴 |
| Pre-migration snapshot | <dbFile>.pre-v<N>.bak (F6-L1 follow-up #4) |
마이그레이션 결함 회수 |
범위 (PR 안에 포함됨)
src/main/db/migrations/m002_due_date.ts(신규)src/main/db/migrations/index.ts수정 (latestVersion추가, m002 등록)src/main/db/index.ts수정 (pre-migration 스냅샷 — F6-L1 후속 #4 반영)src/main/services/dueDateParser.ts(신규, 14 규칙)src/main/ai/schema.ts수정 (due_date필드 추가, AiResponse 확장)src/main/ai/prompt.ts수정 (PROMPT_VERSION = 2,todayKst인자)src/main/ai/InferenceProvider.ts수정 (GenerateInput.todayKst)src/main/ai/LocalOllamaProvider.ts수정 (todayKst 패스)src/main/ai/AiWorker.ts수정 (parseDueDate + AI 병합 +now()주입)src/main/repository/NoteRepository.ts수정 (updateAiResult.dueDate?,setDueDate, hydrate)src/main/ipc/inboxApi.ts수정 (inbox:setDueDate핸들러)src/preload/index.ts수정 (setDueDateexpose)src/shared/types.ts수정 (Note.dueDate,Note.dueDateEditedByUser,InboxApi.setDueDate)src/renderer/inbox/components/NoteCard.tsx수정 (DueDateBadge컴포넌트 + onSave)- 테스트 신규/확장: migrations, parser, schema, repo, AiWorker — 약 +44 단위 테스트
후속 (별 spec 또는 후속 항목 후보)
- F7 AI-primary due_date flow (🚀 promoted 2026-04-26) →
docs/superpowers/specs/2026-04-26-f7-ai-primary-due-date.md— 본 spec 의 "rule 우선 → AI fallback" 흐름을 "AI 우선 + rule 은 prompt 후보 힌트" 로 반전.'내일 모레'first-match-wins 한계 해소 - 별도 due 뷰 / 정렬 / 필터
- 만료 자동 처리 (자동 done 또는 자동 알림)
- 시각 단위 (오후 3시, 23:30 등) 처리
- 음력 / 절기
- 반복 일정 (매주 월요일, 매월 1일 등)
- 외부 캘린더 연동 (Google / Apple Calendar)
- 다중 매칭 처리 (현재는 first-match-wins; 가장 가까운 / 가장 명확한 등 옵션) — F7 으로 일부 해결
- AI 매칭 confidence 표시 (medium 일 때 사용자에게 "확실하지 않음" 힌트)
- 시각 표시 옵션 (D-day 카운터 등)