feat(search): provenance 출처 필터 — [[workspace.sources]] 멀티소스 + --source/--source-type #208

Merged
altair823 merged 1 commits from feat/source-type-filter into main 2026-06-23 15:52:35 +00:00
Owner

개요

혼합 출처 KB(위키 + jira 등)에서 색인은 전부 하되 질의 시 출처로 좁히는 provenance 필터를 추가합니다. A/B 실험(Phase-1/2/3)의 결론 — 전역 trust 곱셈가중(weighted-RRF)은 반증(θ=0.85만으로 incident MRR 0.918→0.340 절벽, 점수 압축), 출처 필터가 see-saw 없는 올바른 레버 — 을 구현했습니다.

변경

  • config [[workspace.sources]] (각 id/root/exclude/trust_level/source_type). 단일 root → implicit default source 정규화. id 유일·비어있지 않음 검증.
  • config schema v3→v4 (step_3_to_4, root→[[workspace.sources]] id=default 미러, 멱등)
  • V014 documents.source_id 컬럼+인덱스 (additive, DEFAULT 'default', 재색인 0)
  • 도메인/파서 Metadata.source_id + BodyHints trust precedence (frontmatter > source 기본값 > Primary)
  • ingest --root 미지정 시 resolved_sources() 순회 + doc마다 source_id/trust stamp
  • 검색 SearchFilters.source_type/source_id → lexical + vector 두 site (IN, OR)
  • CLI kebab search --source <id> / --source-type <type> (repeatable/comma-sep)

검증

  • cargo check / clippy --workspace --all-targets -- -D warnings green
  • 전 크레이트 테스트 0 fail
  • 도그푸딩(620 doc, jira400+wiki220): --source wiki concept MRR 0.780→0.810, --source jira incident 0.918→0.975, trust precedence 실측(jira=secondary 기본값)

호환성 / 버전

  • 단일 root 사용자 무영향 (자동 default source + V014 additive backfill, 재색인 0)
  • version 0.28.0 → 0.29.0 (신규 CLI flag + config 키 + V014 migration → minor)

Follow-up (이번 PR 범위 밖, HOTFIXES 기록)

  • MCP search 필터 미노출 · kebab list source_id 미표시 · RAG provenance 라벨 미구현

자세한 내용: tasks/HOTFIXES.md (2026-06-21), docs/release-notes/v0.29.0-draft.md.

🤖 Generated with Claude Code

## 개요 혼합 출처 KB(위키 + jira 등)에서 **색인은 전부 하되 질의 시 출처로 좁히는** provenance 필터를 추가합니다. A/B 실험(Phase-1/2/3)의 결론 — 전역 trust 곱셈가중(weighted-RRF)은 반증(θ=0.85만으로 incident MRR 0.918→0.340 절벽, 점수 압축), 출처 필터가 see-saw 없는 올바른 레버 — 을 구현했습니다. ## 변경 - **config** `[[workspace.sources]]` (각 id/root/exclude/trust_level/source_type). 단일 root → implicit `default` source 정규화. id 유일·비어있지 않음 검증. - **config schema v3→v4** (`step_3_to_4`, root→`[[workspace.sources]]` id=default 미러, 멱등) - **V014** `documents.source_id` 컬럼+인덱스 (additive, DEFAULT `'default'`, 재색인 0) - **도메인/파서** `Metadata.source_id` + `BodyHints` trust precedence (frontmatter > source 기본값 > Primary) - **ingest** `--root` 미지정 시 `resolved_sources()` 순회 + doc마다 source_id/trust stamp - **검색** `SearchFilters.source_type/source_id` → lexical + vector 두 site (IN, OR) - **CLI** `kebab search --source <id>` / `--source-type <type>` (repeatable/comma-sep) ## 검증 - `cargo check` / `clippy --workspace --all-targets -- -D warnings` green - 전 크레이트 테스트 0 fail - 도그푸딩(620 doc, jira400+wiki220): `--source wiki` concept MRR 0.780→0.810, `--source jira` incident 0.918→0.975, trust precedence 실측(jira=secondary 기본값) ## 호환성 / 버전 - 단일 root 사용자 무영향 (자동 `default` source + V014 additive backfill, 재색인 0) - version 0.28.0 → **0.29.0** (신규 CLI flag + config 키 + V014 migration → minor) ## Follow-up (이번 PR 범위 밖, HOTFIXES 기록) - MCP search 필터 미노출 · `kebab list` source_id 미표시 · RAG provenance 라벨 미구현 자세한 내용: `tasks/HOTFIXES.md` (2026-06-21), `docs/release-notes/v0.29.0-draft.md`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
altair823 added 1 commit 2026-06-21 08:37:43 +00:00
혼합 출처 KB(위키+jira 등)에서 색인은 전부 하되 질의 시 출처로 좁히는 provenance
레버. 전역 trust 곱셈가중(weighted-RRF)은 A/B 에서 반증(θ=0.85 만으로 incident MRR
0.918→0.340 절벽, 점수 압축) — 필터가 see-saw 없는 올바른 레버.

- config [[workspace.sources]] (각 id/root/exclude/trust_level/source_type);
  단일 root 는 implicit `default` source 로 정규화. validate: id 유일·비어있지 않음.
- config schema v3→v4 (step_3_to_4, root→[[workspace.sources]] id=default 미러, 멱등)
- V014 documents.source_id 컬럼+인덱스 (additive, DEFAULT 'default', 재색인 0)
- Metadata.source_id + BodyHints trust precedence(frontmatter > source 기본값 > Primary)
- ingest: --root 미지정 시 resolved_sources() 순회 + doc 마다 source_id/trust stamp
- 검색 SearchFilters.source_type/source_id → lexical + vector 두 site (IN, OR)
- CLI kebab search --source <id> / --source-type <type> (repeatable/comma-sep)

도그푸딩(620 doc, jira400+wiki220): --source wiki 로 개념 질의 MRR 0.780→0.810,
--source jira 로 incident 0.918→0.975. trust precedence 실측(jira=secondary 기본값).

version bump 0.28.0 → 0.29.0 (신규 CLI flag + config 키 + V014 migration → minor).
follow-up: MCP search 필터 미노출 · kebab list source_id 미표시 · RAG provenance 라벨.

자세한 내용: tasks/HOTFIXES.md (2026-06-21), docs/release-notes/v0.29.0-draft.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Mc6W1fgsrbFKTsqA6P8La
altair823 merged commit cda6c2d820 into main 2026-06-23 15:52:35 +00:00
altair823 deleted branch feat/source-type-filter 2026-06-23 15:52:39 +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#208