Files
inkling/docs/superpowers/specs/2026-04-26-f5-export.md
altair823 f4d78456ae docs(spec): promote F5 export
Extracted to own spec with mini-brainstorm decisions captured.
F5 in dogfood-feedback.md marked 🚀 promoted with link.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 10:46:37 +09:00

2.5 KiB

F5 Export Spec (Promoted)

Extracted from: 2026-04-25-dogfood-feedback.md F5 Plan: docs/superpowers/plans/2026-04-26-f5-export.md Status: 🚀 promoted — implemented 2026-04-26

결정 (mini-brainstorm 결과)

결정 항목 근거
포맷 one-file-per-note + frontmatter + index.jsonl + manifest.json + README RAG 친화 + Obsidian 호환
미디어 포함 기본 ON, includeMedia 옵션화 사용자 선택 가능, dialog 에 평문 경고
삭제된 노트 현 시점 스냅샷만 soft-delete 컬럼 없음 (slice 외 별 spec 후보)
provenance 평탄 enum (title_source: 'ai'|'user') parser 호환성 우선
embedding_text raw_text 단독 가장 미가공, 사용자 별 가공 가능
파일명 YYYY-MM-DD-{id8}-{slugified-ai_title}.md (export 시점 동결) 가독 + 정렬, AI 제목 변경 시 새 파일명 (의도)
트리거 트레이 메뉴 "내보내기..." 만 슬라이스 외부 dep 없이
version inkling_export_version: 1 첫 출시, 향후 변경 시 manifest 로 식별
경고 dialog 에 raw_text 평문 + 비공개 위치 권장 명시 슬라이스 §1.1 보안 톤

범위 (PR 안에 포함됨)

  • src/main/services/exportFormat.ts (pure: slugify, composeFilename, composeFrontmatter, composeMarkdown, composeIndexJsonl, composeManifest)
  • src/main/services/ExportService.ts (orchestrator)
  • src/main/repository/NoteRepository.ts 수정 — listAll() 신규 (asc 순)
  • src/main/services/MediaStore.ts 수정 — absolutePath() 신규
  • src/main/index.ts 수정 — ExportService instantiate + dialog import + 4th tray callback
  • src/main/tray.ts 수정 — 4번째 callback runExport + "내보내기..." 메뉴
  • tests/unit/exportFormat.test.ts (26 단위 테스트)
  • tests/unit/ExportService.test.ts (6 단위 테스트)

출력 트리

<targetDir>/
├── notes/
│   └── 2026-04-25-014a3b9c-주간-회고.md
├── media/
│   └── 014a3b9c__1.png
├── index.jsonl
├── manifest.json
└── README.md

후속 (별 spec 또는 후속 항목 후보)

  • 증분 export (변경된 노트만)
  • watch 모드 (자동 동기화)
  • CLI 플래그 (--export <dir>)
  • 다중 형식 (CSV, 단일 JSON, OPML)
  • 외부 SaaS 동기화 (Confluence, Notion)
  • export 시 raw_text 마스킹/익명화 옵션
  • Importer (F6-L3 가 자매 항목)
  • embedding_text 합성 규칙 옵션화 (title+summary+raw_text 등)
  • 파일명 안정성 옵션 (id-only naming 으로 AI 제목 변경 영향 0)