Files
kebab/tasks/INDEX.md
altair823 710945c4b0 refactor(parse-md): absorb kebab-normalize + kebab-parse-types — 24 → 22 crates + §3.7b 재작성
design §3.7b 의 thin layer (ParsedBlock 류) 가 4 parser 중 1개 (markdown) 만 lift 를
경유하는 현실 — fan-in/fan-out 모두 1 → layer 의미 잃음. kebab-normalize (1097 LOC)
+ kebab-parse-types (98 LOC) 둘을 kebab-parse-md 로 흡수.

설계: docs/superpowers/specs/2026-05-26-normalize-absorption-spec.md
플랜: docs/superpowers/plans/2026-05-26-normalize-absorption-plan.md
HOTFIXES: tasks/HOTFIXES.md 의 2026-05-26 entry (design deviation)

- 5 사용 type + 3 forward-declared struct → kebab-parse-md::types module 의 pub explicit re-export.
- build_canonical_document + derive_title + warning_agent → kebab-parse-md::normalize module.
- 4 hard-coded agent literal (lib.rs:122/128/134/153) + warning_agent body return + tracing target literal 모두 보존 — stage label 일관성.
- kebab-app callsite (lib.rs:51 use + :1119 context string) + Cargo.toml 의 2 dep (regular + dead) 제거.
- kebab-chunk + kebab-store-sqlite 의 [dev-dependencies] kebab-normalize → 제거 (kebab-parse-md 로 갈음). 통합 test source 의 use shift.
- test file 이동 (kebab-normalize/tests/normalize_snapshot.rs → kebab-parse-md/tests/).
- workspace Cargo.toml: Hunk (a) members 2 entry 삭제 + Hunk (b) version 0.18.0 → 0.19.0 (frozen contract 변경).
- design §3.7b 4-단락 재작성 (원래 intent 보존 + 현재 상태 + 보존된 surface + future re-extraction trigger).
- design §8 graph 갱신 (3 edge 제거 + 2 forbidden bullet 의미 갱신 + commentary).
- ARCHITECTURE.md crate graph + directory tree mechanical 갱신.
- tasks/INDEX.md L169 closure mention + "Future work / deferred" 섹션 신설 (image/pdf normalize integration entry).
- tasks/HOTFIXES.md 신규 entry (4-block — design deviation Symptom).
- HANDOFF.md cross-link 한 줄.
- 3 dead struct (ParsedImageRegion / ParsedPdfPage / ParsedAudioSegment) 는 보존 — v0.20+ image/pdf normalize integration 의 future surface (spec §11).

Wire / surface impact: 0건. CLI / TUI / MCP / --json 출력 / config / XDG path /
parser_version 모두 unchanged. wire-invisible provenance.events[].agent + tracing target
literal "kb-normalize" 도 보존 — old DB row 와 new DB row 의 audit log 일관성.

Verification: cargo test --workspace --no-fail-fast -j 1 → 1313 passed / 0 failed (172 result blocks).
cargo clippy --workspace --all-targets -j 1 -- -D warnings → 0 warning (5m 46s).
cargo metadata --no-deps --format-version 1 | jq '.workspace_members | length' = 22.
cargo tree -p kebab-app --depth 2 | grep -E "kebab_(parse_types|normalize)" = 0 줄.
2026-05-26 15:00:59 +00:00

16 KiB
Raw Permalink 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
P10 p10/INDEX.md Code ingest framework + AST chunkers kebab-parse-code, kebab-source-fs (code walk) 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로 본다.

Future work / deferred

  • v0.20+ image/pdf normalize integration — design §3.7b intent 미구현 (3 dead struct ParsedImageRegion / ParsedPdfPage / ParsedAudioSegment 보존). PR #186 (normalize-absorption) 의 spec §11 (docs/superpowers/specs/2026-05-26-normalize-absorption-spec.md) 참조.

모든 task 공통 규약

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