--- phase: P9 component: kebab-cli + kebab-search task_id: p9-fb-42 title: "Bulk multi-query + re-rank hint — agent loop 효율" status: completed target_version: 0.6.0+ depends_on: [] unblocks: [] contract_source: ../../docs/superpowers/specs/2026-04-27-kebab-final-form-design.md contract_sections: [§4 search] source_feedback: 사용자 도그푸딩 2026-05-06 — agent 가 N 개 query 동시 검색 / 결과 set 을 다른 관점으로 재정렬 원함. 현재는 N 회 subprocess 호출 + 단일 정렬 기준. --- # p9-fb-42 — Bulk multi-query + re-rank hint > ✅ **Bulk multi-query 부분 구현 완료.** 본 spec 의 rerank hint lever 는 별도 task 로 분리 (fb-39 cross-encoder 설계 후). > > - Design: [`docs/superpowers/specs/2026-05-10-p9-fb-42-bulk-multi-query-design.md`](../../docs/superpowers/specs/2026-05-10-p9-fb-42-bulk-multi-query-design.md) > - Plan: [`docs/superpowers/plans/2026-05-10-p9-fb-42-bulk-multi-query.md`](../../docs/superpowers/plans/2026-05-10-p9-fb-42-bulk-multi-query.md) ## 증상 / 동기 - agent 가 query decomposition (fb-41) 후 N 개 sub-query 검색 — N 회 subprocess fork. - 검색 결과 set 보고 "이 중 X 관점으로 다시 정렬" 요청 — 현재는 client 측에서 재호출. ## Goal (skeleton) - `kebab search --queries '[{"q":"a","k":5},{"q":"b","k":5}]'` — bulk JSON input. response 는 query 별 결과 array. - `kebab search Q --rerank-hint "focus on X"` — top-N retrieve 후 LLM 재정렬 (cross-encoder 가능 시 selection). ## 후속 작업 — brainstorm 필요 항목 - bulk input 형식 — JSON array / ndjson stdin. - 결과 stream vs final — 큰 multi-query 면 stream 유리. - re-rank hint 의 LLM 모델 — kebab-llm 의 default 사용. - fb-39 (precision tuning) 의 cross-encoder 와 re-rank hint 통합 가능. - fb-29 daemon 위에서 더 의미 — subprocess overhead 이미 daemon 으로 해소되면 우선순위 낮음. ## Risks / notes - Nice-to-have — fb-30 / 29 / 31 / 34 / 35 보다 우선순위 낮음. - re-rank hint 는 LLM 호출 추가 — latency / cost. - fb-39, fb-41 와 영역 겹침.