마지막 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>
95 lines
2.6 KiB
Markdown
95 lines
2.6 KiB
Markdown
---
|
|
phase: P<N>
|
|
component: <crate-or-module-name>
|
|
task_id: p<N>-<i>
|
|
title: "<Component title>"
|
|
status: planned
|
|
depends_on: [] # other task_ids
|
|
unblocks: [] # other task_ids
|
|
contract_source: ../docs/superpowers/specs/2026-04-27-kebab-final-form-design.md
|
|
contract_sections: [] # e.g. [§3.5, §5.5, §7.2]
|
|
---
|
|
|
|
# <task_id> — <Component title>
|
|
|
|
## Goal
|
|
|
|
<One sentence. The user-facing outcome of this task.>
|
|
|
|
## Why now / why this size
|
|
|
|
<One paragraph. Why this is the right unit of work and how it slots into the phase.>
|
|
|
|
## Allowed dependencies
|
|
|
|
- `kebab-core`
|
|
- <other crates per design §8>
|
|
- <external crates with versions>
|
|
|
|
## Forbidden dependencies
|
|
|
|
- <list — every crate banned per design §8 Allowed/Forbidden table>
|
|
|
|
If any item here is needed during implementation, STOP and update the frozen design doc first.
|
|
|
|
## Inputs
|
|
|
|
| input | type | source |
|
|
|-------|------|--------|
|
|
| ... | ... | ... |
|
|
|
|
## Outputs
|
|
|
|
| output | type | downstream consumer |
|
|
|--------|------|---------------------|
|
|
| ... | ... | ... |
|
|
|
|
## Public surface (signatures only — no new types)
|
|
|
|
```rust
|
|
// Cite only types/traits already defined in the frozen design doc.
|
|
// If a new helper is needed, mark it "internal" and keep it crate-private.
|
|
```
|
|
|
|
## Behavior contract
|
|
|
|
- <bullet list of must-hold invariants>
|
|
- <reference to design doc section numbers>
|
|
- <determinism / version recording / error policy>
|
|
|
|
## Storage / wire effects
|
|
|
|
- DB tables touched (read/write)
|
|
- LanceDB tables touched (read/write)
|
|
- Filesystem paths created/read
|
|
- Wire schema objects emitted (must conform to `*.v1`)
|
|
|
|
## Test plan
|
|
|
|
| kind | description | fixture / data |
|
|
|------|-------------|----------------|
|
|
| unit | ... | ... |
|
|
| snapshot | ... (JSON freeze) | `fixtures/...` |
|
|
| contract | trait round-trip | mock impls |
|
|
| integration | end-to-end via `kebab-app` facade | tmp workspace |
|
|
|
|
All tests must run under `cargo test -p <crate>` and not require external network or Ollama unless explicitly stated.
|
|
|
|
## Definition of Done
|
|
|
|
- [ ] `cargo check -p <crate>` passes
|
|
- [ ] `cargo test -p <crate>` passes
|
|
- [ ] No imports outside Allowed dependencies
|
|
- [ ] All emitted wire JSON validates against `docs/wire-schema/v1/<schema>.schema.json` (when applicable)
|
|
- [ ] All record version fields populated per design §9
|
|
- [ ] PR body links the relevant design section numbers
|
|
|
|
## Out of scope
|
|
|
|
- <explicit list — features that other tasks cover>
|
|
- <future-phase work>
|
|
|
|
## Risks / notes
|
|
|
|
- <one paragraph max — known traps, version coupling, perf concerns>
|