refactor(rename): kb → kebab — 프로젝트 전체 rename #29

Merged
altair823 merged 3 commits from refactor/rename-kb-to-kebab into main 2026-05-02 04:04:08 +00:00
Owner

요약

프로젝트 이름 kbkebab 전체 rename. kb 약어로부터 떠올린 이름. 18 crate + binary + env vars + XDG paths + tracing + docs + 디자인 doc + 최초 보고서 모두 갱신.

3 commit 분할

911fb49 Cargo 패키지명 + 폴더 + Rust 모듈 path

  • workspace Cargo.toml: members crates/kb-*crates/kebab-*, repo URL altair823/kbaltair823/kebab.
  • 18 crate 폴더 git mv (history 보존). 각 crate Cargo.toml: name = "kb-*""kebab-*", path deps ../kb-*../kebab-*.
  • 모든 .rs: kb_<id> snake-case 모듈 path 18 개 → kebab_<id> 일괄 sed (단어 경계 \b 사용).
  • cargo check --workspace clean.

f1a448d Binary + env + XDG + file renames

  • [[bin]] name = "kb""kebab", clap #[command(name = "kb")]"kebab".
  • 모든 KB_* env var (30+ keys) → KEBAB_* (apply_env prefix 매칭 + 코드 + 테스트 + doc comment).
  • XDG paths: ~/.config/kb 등 → ~/.config/kebab. expand_path defaults + 테스트 hardcode.
  • SQLite filename kb.sqlitekebab.sqlite. SQLITE_FILE const + 테스트.
  • tracing target target: "kb-*""kebab-*" (10+ 곳).
  • file rename (git mv):
    • 2026-04-27-kb-final-form-design.md2026-04-27-kebab-final-form-design.md
    • kb_local_rust_report.mdkebab_local_rust_report.md
    • .kbignore.kebabignore (workspace ignore + snapshot fixture)
  • cargo test --workspace -j 1 clean (linker OOM 회피 위해 직렬).
  • cargo clippy --workspace --all-targets -- -D warnings clean.

f9714aa Docs sweep

  • 19 crate + 11 미래 component (kebab-tui, kebab-desktop, kebab-asr-whisper, kebab-ocr, kebab-mcp, kebab-vlm, kebab-rerank, kebab-vision-ocr, kebab-index, kebab-smoke, kebab-architecture) 모두 prefix 통일.
  • CLI 예제: kb <verb>kebab <verb> (fenced + inline backtick).
  • XDG / env / binary 경로 reference 동기화.
  • README + tasks/ + docs/ + 디자인 doc + 최초 보고서 + SMOKE / HOTFIXES.
  • tasks/phase-5-evaluation.md status: plannedcompleted (P5-2 머지 후 미반영분).
  • task-decomposition.mdgit -c user.name=kb 는 과거 history 기록용이라 그대로 (실제 git history 의 author 는 변경 불가).

의도된 보존 (변경 안 함)

  • task-decomposition.mduser.name=kb / user.email=kb@local — 과거 plan doc 안의 git author 기록.

머지 후 후속 작업

  1. Gitea repo renamealtair823-org/kbaltair823-org/kebab. PR 머지 후 별도로 진행 (PR 작업 중 rename 시 origin URL 변경 필요).
  2. Origin URL updategit remote set-url origin https://gitea.altair823.xyz/altair823-org/kebab.git.
  3. Working directory rename (옵션)/home/altair823/kb/home/altair823/kebab. 사용자 직접 (IDE 세션 / shell 영향).
  4. 기존 XDG dirs migration (옵션) — fresh start 합의했으니 자동 마이그레이션 helper 미추가. ~/.config/kb 그대로 두고 ~/.config/kebab 새로 사용.

Test plan

  • cargo check --workspace
  • cargo test --workspace -j 1 (모든 크레이트 green)
  • cargo clippy --workspace --all-targets -- -D warnings clean
  • grep sweep: kb-[a-z] / kb_[a-z] / \.config/kb / kb.sqlite / KB_[A-Z] 모두 0 hits (의도된 git author 제외)
  • file rename 후 모든 cross-reference path 살아있음

🤖 Generated with Claude Code

## 요약 프로젝트 이름 `kb` → `kebab` 전체 rename. `kb` 약어로부터 떠올린 이름. 18 crate + binary + env vars + XDG paths + tracing + docs + 디자인 doc + 최초 보고서 모두 갱신. ## 3 commit 분할 ### `911fb49` Cargo 패키지명 + 폴더 + Rust 모듈 path - workspace `Cargo.toml`: members `crates/kb-*` → `crates/kebab-*`, repo URL `altair823/kb` → `altair823/kebab`. - 18 crate 폴더 `git mv` (history 보존). 각 crate `Cargo.toml`: `name = "kb-*"` → `"kebab-*"`, path deps `../kb-*` → `../kebab-*`. - 모든 `.rs`: `kb_<id>` snake-case 모듈 path 18 개 → `kebab_<id>` 일괄 sed (단어 경계 `\b` 사용). - `cargo check --workspace` clean. ### `f1a448d` Binary + env + XDG + file renames - `[[bin]] name = "kb"` → `"kebab"`, clap `#[command(name = "kb")]` → `"kebab"`. - 모든 `KB_*` env var (30+ keys) → `KEBAB_*` (apply_env prefix 매칭 + 코드 + 테스트 + doc comment). - XDG paths: `~/.config/kb` 등 → `~/.config/kebab`. `expand_path` defaults + 테스트 hardcode. - SQLite filename `kb.sqlite` → `kebab.sqlite`. `SQLITE_FILE` const + 테스트. - tracing target `target: "kb-*"` → `"kebab-*"` (10+ 곳). - file rename (`git mv`): - `2026-04-27-kb-final-form-design.md` → `2026-04-27-kebab-final-form-design.md` - `kb_local_rust_report.md` → `kebab_local_rust_report.md` - `.kbignore` → `.kebabignore` (workspace ignore + snapshot fixture) - `cargo test --workspace -j 1` clean (linker OOM 회피 위해 직렬). - `cargo clippy --workspace --all-targets -- -D warnings` clean. ### `f9714aa` Docs sweep - 19 crate + 11 미래 component (`kebab-tui`, `kebab-desktop`, `kebab-asr-whisper`, `kebab-ocr`, `kebab-mcp`, `kebab-vlm`, `kebab-rerank`, `kebab-vision-ocr`, `kebab-index`, `kebab-smoke`, `kebab-architecture`) 모두 prefix 통일. - CLI 예제: `kb <verb>` → `kebab <verb>` (fenced + inline backtick). - XDG / env / binary 경로 reference 동기화. - README + tasks/ + docs/ + 디자인 doc + 최초 보고서 + SMOKE / HOTFIXES. - `tasks/phase-5-evaluation.md` `status: planned` → `completed` (P5-2 머지 후 미반영분). - `task-decomposition.md` 의 `git -c user.name=kb` 는 과거 history 기록용이라 그대로 (실제 git history 의 author 는 변경 불가). ## 의도된 보존 (변경 안 함) - `task-decomposition.md` 의 `user.name=kb` / `user.email=kb@local` — 과거 plan doc 안의 git author 기록. ## 머지 후 후속 작업 1. **Gitea repo rename** — `altair823-org/kb` → `altair823-org/kebab`. PR 머지 후 별도로 진행 (PR 작업 중 rename 시 origin URL 변경 필요). 2. **Origin URL update** — `git remote set-url origin https://gitea.altair823.xyz/altair823-org/kebab.git`. 3. **Working directory rename (옵션)** — `/home/altair823/kb` → `/home/altair823/kebab`. 사용자 직접 (IDE 세션 / shell 영향). 4. **기존 XDG dirs migration (옵션)** — fresh start 합의했으니 자동 마이그레이션 helper 미추가. `~/.config/kb` 그대로 두고 `~/.config/kebab` 새로 사용. ## Test plan - [x] `cargo check --workspace` - [x] `cargo test --workspace -j 1` (모든 크레이트 green) - [x] `cargo clippy --workspace --all-targets -- -D warnings` clean - [x] grep sweep: `kb-[a-z]` / `kb_[a-z]` / `\.config/kb` / `kb.sqlite` / `KB_[A-Z]` 모두 0 hits (의도된 git author 제외) - [x] file rename 후 모든 cross-reference path 살아있음 🤖 Generated with [Claude Code](https://claude.com/claude-code)
altair823 added 3 commits 2026-05-02 04:02:49 +00:00
프로젝트 이름 `kb` → `kebab` rename 의 첫 단계.

- workspace `Cargo.toml`: members `crates/kb-*` → `crates/kebab-*`,
  repository URL `altair823/kb` → `altair823/kebab`.
- 18 crate 폴더 rename via `git mv` (history 보존).
- 각 crate `Cargo.toml`: `name = "kb-*"` → `"kebab-*"`, path deps
  `../kb-*` → `../kebab-*`.
- 모든 `.rs`: `kb_<id>` snake-case 모듈 path 18 개 (`kb_core`,
  `kb_config`, `kb_app`, `kb_cli`, `kb_eval`, `kb_search`, `kb_chunk`,
  `kb_normalize`, `kb_source_fs`, `kb_parse_md`, `kb_parse_types`,
  `kb_store_sqlite`, `kb_store_vector`, `kb_embed`, `kb_embed_local`,
  `kb_llm`, `kb_llm_local`, `kb_rag`) → `kebab_<id>` 일괄 sed (단어
  경계 \\b 사용해 영어 문장 안의 "kb" 약어 미오염).

CLI binary 이름 (`[[bin]] name = "kb"`), 환경변수 `KB_*`, XDG paths,
tracing target, 그리고 docs sweep 은 다음 commit 에서.

## 검증

- `cargo check --workspace` clean — 모든 crate 빌드 통과 후 commit.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
두 번째 commit. 사용자 facing surface (CLI binary, env vars, XDG paths)
+ 코드 안 single-letter token (`KB_`, `kb.sqlite`, `/kb/`, tracing
target) 일괄 rename. 그리고 3 개 file rename:

- 디자인 doc `2026-04-27-kb-final-form-design.md` →
  `2026-04-27-kebab-final-form-design.md`
- 최초 보고서 `kb_local_rust_report.md` → `kebab_local_rust_report.md`
- workspace ignore `.kbignore` → `.kebabignore`

## 변경

- `crates/kebab-cli/Cargo.toml`: `[[bin]] name = "kb"` → `"kebab"`.
- `crates/kebab-cli/src/main.rs`: `#[command(name = "kb", …)]` →
  `name = "kebab"`.
- 모든 `KB_*` env var (코드 + doc + 테스트) → `KEBAB_*`. apply_env
  prefix 매칭 + 30+ 개 setting 키 모두.
- XDG paths: `~/.config/kb` / `~/.local/share/kb` / `~/.cache/kb` /
  `~/.local/state/kb` → `~/.config/kebab` 등. config defaults +
  expand_path tests + paths.rs 의 hardcode 모두.
- SQLite filename: `kb.sqlite` → `kebab.sqlite` (`SQLITE_FILE` const
  + 테스트 hardcode 모두).
- tracing target: `target: "kb-*"` → `"kebab-*"` (10+ 곳).
- snapshot fixture: `.kbignore` → `.kebabignore` (`fixtures/source-fs/
  tree-1.snapshot.json` 갱신).

## 검증

- `cargo test --workspace -j 1` clean (linker OOM 회피 위해 직렬).
- `cargo clippy --workspace --all-targets -- -D warnings` clean.

다음 commit 에서 docs sweep.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
마지막 commit. 모든 .md 안의 `kb` 단어 일괄 갱신.

- 19 개 crate 이름 (`kb-core`, `kb-app`, …) → `kebab-*` (Rust 모듈
  path 표기 `kb_*` → `kebab_*` 포함).
- 미래 component (`kb-tui`, `kb-desktop`, `kb-asr-whisper`, `kb-ocr`,
  `kb-mcp`, `kb-vlm`, `kb-rerank`, `kb-vision-ocr`, `kb-index`,
  `kb-smoke`, `kb-architecture`) → `kebab-*` (P6+ 가 시작될 때
  같은 prefix 사용).
- CLI 명령 예제: `kb ingest` / `kb search` / `kb ask` / `kb init` /
  `kb doctor` / `kb inspect` / `kb list` / `kb eval` →
  `kebab <verb>`. fenced code block + 인라인 backtick 모두.
- XDG paths + env vars + binary 경로 (`target/release/kb` →
  `target/release/kebab`) 동기화.
- design doc / 최초 보고서 / SMOKE / HOTFIXES / phase epic / task
  spec 모든 reference 통일.
- task-decomposition.md 의 `git -c user.name=kb` 는 과거 git history
  기록용 author 정보라 그대로 유지 (실제 git history 의 author 는
  변경 불가).
- `tasks/phase-5-evaluation.md` 의 `status: planned` →
  `completed` 도 같이 (P5-1 + P5-2 PR 머지 후 미반영분).

## 검증

- `grep -rEn "\bkb-[a-z]|\bkb_[a-z]|\.config/kb\b|kb\.sqlite|\bKB_[A-Z]"
   --include="*.md"` 0 hits (task-decomposition.md 의 git author
  제외).
- 모든 file path reference 살아있음 (renamed file 들 모두 새 path
  로 update).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
altair823 merged commit 2cb3cd6dd5 into main 2026-05-02 04:04:08 +00:00
altair823 deleted branch refactor/rename-kb-to-kebab 2026-05-02 04:04:12 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: altair823-org/kebab#29