Files
kebab/tasks/INDEX.md
altair823 d643f9fd1a docs(tasks): P6-4 image ingest wiring task spec
P6-1 / P6-2 / P6-3 의 라이브러리 파이프라인 (`ImageExtractor`,
`OllamaVisionOcr`, `apply_caption`) 이 모두 머지되어 있지만
`kebab-app::ingest_with_config` 의 dispatch 가 markdown 만 처리하므로
CLI 에서 이미지 자산이 색인되지 않는 미완 구간 존재. 본 spec 은
그 wiring 을 별도 component task 로 잡아 P6-1/2/3 의 frozen contract
는 보존하고 통합만 본 task 의 contract 로 진행되게 한다.

핵심 결정 (사용자 brainstorming 반영):
- 청킹 옵션 A — `kebab-chunk::md_heading_v1` 에 image-only document
  분기 추가, 단일 합성 청크 emit.
- 청크 텍스트 포맷 (β) — `<alt>\n\n<ocr.joined>\n\n<caption.text>`
  plain concatenation. 라벨 없음. 빈 부분 drop.
- 실패 정책 (b) Lenient — extract 성공이면 doc 저장, OCR/caption
  부분 실패는 Provenance Warning + `errors` 카운터 미증가.
- LM 인스턴스 — ingest 세션당 1회 빌드, `&dyn LanguageModel` 공유.
- 책 / 스캔 PDF — P6-4 scope 외, P7 PDF 라인이 책임.
- P6-5 (image-scale-hardening) 미시작 — 사용자 시나리오가
  \"다이어그램 / 스크린샷 / 카메라 사진\" 으로 좁아져 불필요.

INDEX.md: P6 \"3 components\" → \"4 components\".

contract: docs/superpowers/specs/2026-04-27-kebab-final-form-design.md
sections: §3.4 ImageRefBlock, §6.1 ingest pipeline, §7.2
Extractor/Chunker traits, §9.1 image extraction policy.
2026-05-02 07:01:56 +00:00

4.9 KiB
Raw Blame History

title, source, date
title source date
KB 작업 단위 인덱스 kebab_local_rust_report.md 2026-04-27

KB 작업 단위 인덱스

kebab_local_rust_report.md 의 Phase 로드맵을 아키텍처 수준 작업 단위로 분해. 각 task 문서는 독립적으로 착수/검수 가능한 단위.

의존 그래프

P0 ── P1 ── P2 ── P3 ── P4 ── P5
                              │
                              ├─ P6 (image)
                              ├─ P7 (pdf)
                              ├─ P8 (audio)
                              └─ P9 (TUI/desktop)

P0P5 는 직렬. P6P9 는 P5 이후 병렬 가능.

작업 단위

# 코드 제목 핵심 산출 crate 선행
P0 phase-0-skeleton.md Workspace 뼈대 + 도메인 계약 kebab-core, kebab-parse-types, kebab-config, kebab-app, kebab-cli
P1 phase-1-markdown-ingestion.md Markdown ingestion 파이프라인 kebab-source-fs, kebab-parse-md, kebab-normalize, kebab-chunk, kebab-store-sqlite P0
P2 phase-2-lexical-search.md SQLite FTS5 lexical 검색 + citation kebab-search (lexical) P1
P3 phase-3-vector-hybrid.md Local embedding + LanceDB + hybrid kebab-embed, kebab-embed-local, kebab-store-vector, kebab-search P2
P4 phase-4-local-llm-rag.md Local LLM + RAG + grounded answer kebab-llm, kebab-llm-local, kebab-rag P3
P5 phase-5-evaluation.md Golden query / regression eval kebab-eval P4
P6 phase-6-image.md 이미지 ingestion (OCR + caption) kebab-parse-image P5
P7 phase-7-pdf.md PDF text + page citation kebab-parse-pdf P5
P8 phase-8-audio.md 음성 transcription + timestamp citation kebab-parse-audio P5
P9 phase-9-ui.md TUI + desktop app kebab-tui, kebab-desktop P5

Component task decomposition (per phase)

각 phase 의 component-level 분해. AI sub-agent 1세션 = 1 task 가 sweet spot.

Post-merge 핫픽스

머지 후 발견된 버그들과 그 follow-up PR들은 HOTFIXES.md에 dated 로그로 기록한다. 원래 task spec은 frozen 상태로 두고, post-merge 동작 변경은 HOTFIXES.md를 source of truth로 본다.

모든 task 공통 규약

  • 의존성 경계 (Allowed / Forbidden) 위반 금지. report §19 참조.
  • citation 없는 검색 결과 / RAG 응답 금지.
  • 원본 파일 파괴 금지. 파생물만 재생성.
  • 모든 record 에 version (parser/chunker/embedding/index/prompt) 기록.
  • 각 phase 완료 = cargo check --workspace && cargo test --workspace 통과 + 해당 phase 의 완료 조건 CLI 데모 통과.