Files
kebab/HANDOFF.md
altair823 5527e195da docs: HANDOFF/INDEX 를 현재(v0.32.0) phase·component 대시보드로 슬림
doc-reorg(C) Phase 4a: 둘 다 심하게 stale(HANDOFF "한 줄 요약" v0.18.0 ·
이미 ship 된 fb-41 을 "미구현"으로 · v0.20 priorities 장기 closed; INDEX 는
삭제될 task spec 으로 82 markdown 링크 + 옛 버전 스탬프).

- HANDOFF 181→45줄: 현재 phase 표(흡수된 crate 반영) + 최근 마일스톤 포인터
  (dated 로그는 HOTFIXES/CHANGELOG/git) + 현재 다음-task 후보(P8/P9-5).
- INDEX 185→40줄: per-component 상태 표(spec 링크 제거) + HOTFIXES/CHANGELOG/
  설계계약 포인터. 옛 task spec 은 git history 안내.

durable 정보 손실 0(전부 HOTFIXES/CHANGELOG/ARCHITECTURE/code/git 에 있음).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Mc6W1fgsrbFKTsqA6P8La
2026-06-27 12:43:59 +00:00

45 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# HANDOFF — 진척도
> "지금 어디까지 됐고 다음에 뭘 할지"의 phase-단위 단일 출처. 사용법 → [README.md](README.md), 구조 → [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md), per-component 진행 → [tasks/INDEX.md](tasks/INDEX.md), 머지 후 deviation(동작 진실) → [tasks/HOTFIXES.md](tasks/HOTFIXES.md), 버전별 변경 → [CHANGELOG.md](CHANGELOG.md). 전체 문서 지도 → [DOCS.md](DOCS.md).
## 한 줄 요약
현재 **v0.32.0**. P0P7 + P9(CLI/MCP) + P10 머지 완료, P8(audio)·P9-5(desktop)만 보류. `kebab ingest` 가 markdown · 이미지(OCR+caption) · PDF(텍스트+page citation+scanned OCR) · 소스코드(Rust/Python/TS/JS/Go/Java/Kotlin/C/C++ AST + Tier2 리소스 + Tier3 fallback) 를 단일 binary 로 색인. `kebab search`(lexical/vector/hybrid RRF) / `kebab ask`(RAG + 근거 인용 + NLI groundedness + multi-hop) 가 매체 가로질러 동작. UI 는 CLI + MCP stdio server(TUI 는 v0.31.0 에서 제거).
## Phase 로드맵
| Phase | 내용 | 핵심 crate | 상태 |
|-------|------|-----------|------|
| **P0** | Workspace 뼈대 + 도메인 계약 + ID recipe | `kebab-core`/`kebab-config`/`kebab-app`/`kebab-cli` | ✅ |
| **P1** | Markdown ingestion (walk→parse→chunk→SQLite) | `kebab-source-fs`/`kebab-parse-md`/`kebab-chunk`/`kebab-store-sqlite` | ✅ |
| **P2** | FTS5 lexical 검색 + citation | `kebab-search` | ✅ |
| **P3** | embedding + LanceDB + hybrid(RRF) | `kebab-embed-local`/`kebab-store-vector`/`kebab-search` | ✅ |
| **P4** | LLM + RAG + grounded answer + NLI | `kebab-llm-local`/`kebab-rag`/`kebab-nli` | ✅ |
| **P5** | golden query / regression eval | `kebab-eval` | ✅ |
| **P6** | 이미지 ingestion (OCR + caption) | `kebab-parse-image` | ✅ |
| **P7** | PDF text + page citation + scanned OCR | `kebab-parse-pdf` + `kebab-app::pdf_ocr_apply` | ✅ |
| **P8** | 음성 transcription | `kebab-parse-audio` | ⏸ 보류 (whisper-rs 시스템 dep brainstorm 필요) |
| **P9** | agent surface (CLI/MCP/desktop) | `kebab-mcp`, `kebab-desktop`(P9-5) | 🟡 CLI/MCP ✅, desktop ⏸ |
| **P10** | code ingest framework | `kebab-parse-code`/`kebab-chunk` | ✅ (Rust/Py/TS/JS/Go/Java/Kotlin/C/C++ + Tier2/3) |
> trait 전용이던 `kebab-embed`/`kebab-llm`/`kebab-parse-types`/`kebab-normalize` 는 흡수됨(각각 kebab-core mock feature / kebab-parse-md module) — 현재 20 crate. 상세는 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).
## 최근 마일스톤
버전별 변경은 [CHANGELOG.md](CHANGELOG.md), 머지 후 deviation 의 dated 로그는 [tasks/HOTFIXES.md](tasks/HOTFIXES.md)(동작이 설계와 다를 때의 진실)에 있다. 굵직한 흐름만:
- **v0.32.0** — ponytail-audit over-engineering 정리 (죽은 scaffold 제거, 9 AST chunker→1, shim crate 흡수 22→20).
- **v0.31.0** — 척추 단순화(TUI·세션·candle 제거, config v5) + 임베딩/OCR/caption 캐시 전면화.
- **v0.270.30** — paddle-onnx 네이티브 OCR · provenance 출처 필터 · md-heading-v2 oversize 분할.
- **v0.180.26** — multi-hop RAG + NLI 검증 · 코드 ingest(P10) · arctic 임베더 · 한국어 형태소 검색.
## 다음 task 후보
- **P9-5 desktop (Tauri)** — 마지막 구조적 미완 component. `kebab-desktop` crate + PDF citation rendering UI. 사용자 우선순위(책·PDF) 부합.
- **P8 audio** — whisper-rs 시스템 dep vs 외부 transcription endpoint 결정 필요. 사용자 패턴상 보류.
- 그 외는 도그푸딩 follow-up — 발견 시 HOTFIXES 에 dated entry + 필요 시 ARCHITECTURE 갱신.
## 검증
릴리스 binary 의 종단 동작은 [docs/SMOKE.md](docs/SMOKE.md)(격리 KB 1세션 검증) + [docs/DOGFOOD.md](docs/DOGFOOD.md)(기능별 시나리오). 실 데이터 도그푸딩 evidence 는 HOTFIXES dated entry.