- Add bulk_search_item.v1 + bulk_search_response.v1 wire schemas
- Register both in WIRE_SCHEMAS const
- README: --bulk flag mention + MCP tool list 7→8 (bulk_search)
- SMOKE: bulk multi-query walkthrough (CLI + MCP equivalent)
- Design §2.2: Bulk multi-query (fb-42) subsection (additive minor)
- SKILL: mcp__kebab__bulk_search section + tool table row
- Task spec status open→completed, banner replaced
- INDEX: fb-42 row 머지 (rerank hint deferred)
- Fix: missed Capabilities {bulk_search} in cli wire.rs test (Task 7 leftover)
- Fix: missed tools.len() 7→8 in cli_mcp_smoke (Task 5 leftover)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
9.7 KiB
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.
- P0 — p0/ — 1 component
- P1 — p1/ — 6 components
- P2 — p2/ — 2 components
- P3 — p3/ — 5 components
- P4 — p4/ — 3 components
- P5 — p5/ — 2 components
- P6 — p6/ — 4 components
- P7 — p7/ — 3 components
- P8 — p8/ — 2 components
- P9 — p9/ — 5 components + 도그푸딩 피드백
-
p9-dogfooding 피드백 인덱스 — 사용자가 직접 돌려보며 수집한 UX 잡음 → p9-fb-01 ~ 20 으로 분해 + 구현 20/20 ✅ (2026-05-03 완료)
-
p9-fb-22 cursor mid-string editing + Ask follow-tail (post-도그푸딩)
-
p9-fb-24 status bar + Library header + page scroll (post-도그푸딩)
-
p9-fb-25 config workspace.include 제거 + 지원 형식 가시성 (post-도그푸딩)
-
⏳ fb-32 ~ fb-42: 백로그 only — 미구현 + brainstorm 선행 필요. spec 작성 시 superpowers:brainstorming 부터 시작. status: open. 다른 세션에서 이 그룹 손대기 전 사용자 확인 필요. 번호 = release 순서 — 작은 번호일수록 먼저 작업 (2026-05-06 renumber).
🎯 0.3.x — agent foundation (MCP + introspection) ✅ 완료
- p9-fb-26 ingest 로그 출력 일관성 — ✅ 머지 (2026-05-07)
- p9-fb-27 introspection + structured error wire — ✅ 머지 + v0.3.0 cut (2026-05-07)
- p9-fb-28 agent invocation flags (--readonly / --quiet) — ✅ 머지 (2026-05-07)
- p9-fb-29 HTTP daemon (
kebab serve) — 🚫 deferred (2026-05-07) — fb-30 stdio MCP 가 동일 가치 제공, daemon 복잡도 회피. P+ 재개 trigger 는 spec 참조. - p9-fb-30 MCP server — ✅ 머지 + v0.3.1 cut (2026-05-07)
- p9-fb-31 single-file / stdin ingest — ✅ 머지 + v0.3.2 cut (2026-05-07)
🎯 0.4.0 — agent surface refinement (additive only)
- p9-fb-32 stale doc indicator — ✅ 머지 + v0.4.0 cut 후보 (2026-05-09)
- p9-fb-33 streaming ask (ndjson delta) — ✅ 머지 + v0.5.0 cut 후보 (2026-05-09)
- p9-fb-34 output budget controls — ✅ 머지 + v0.5.0 cut 후보 (2026-05-09)
- p9-fb-35 verbatim fetch — ✅ 머지 + v0.5.0 cut 후보 (2026-05-09)
- p9-fb-36 search filter args — ✅ 머지 (2026-05-10)
- p9-fb-37 trace + stats — ✅ 머지 (2026-05-10)
🎯 0.5.0 — RAG quality (cascade 동반: V00X + reindex)
- p9-fb-38 score semantics — ✅ 머지 (2026-05-10)
- p9-fb-39 retrieval precision 튜닝 — ⏳ 미구현, brainstorm 필요 (embedding_version cascade)
- p9-fb-40 fact-grounded answer — ✅ 머지 (2026-05-10)
🎯 0.6.0 또는 P+ — reasoning
- p9-fb-41 multi-hop reasoning — ⏳ 미구현, brainstorm 필요 (XL, eval 인프라 선행)
- p9-fb-42 bulk multi-query + re-rank hint — ✅ 머지 (2026-05-10) — bulk only, rerank hint deferred
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 데모 통과.