# T841 — baseline version and query planner > Status: `done`(2026-08-11) > Milestone: `M4` > Est. change: `~180 lines` ## Goal 完成後系統可從最新 Brand/Product 建立免費 baseline,正確區分實質 input version,並產生 1–6 組合法使用者語言 QueryPlan。 ## Depends on - T840 ## Inputs - `apps/backend/internal/module/radar/usecase/product_context.go` - `apps/backend/internal/module/radar/usecase/suggest.go` - Spec §4.1–§4.2、驗收 #6、#7、#21、#22 ## Outputs ### 程式變更(預期路徑) | 路徑 | 動作 | 說明 | |------|------|------| | `apps/backend/internal/module/radar/usecase/demand_map_baseline.go` | add | Product truth→baseline、完整度與 fingerprint | | `apps/backend/internal/module/radar/usecase/query_plan.go` | add | 多組短詞與 exclude 產生 | | `apps/backend/internal/module/radar/usecase/query_plan_test.go` | add | 口語、純名稱、版本 table tests | ### 行為變更 - 產品名稱/圖片修改不改 input version;痛點、情境、能力、排除修改會改版。 - incomplete 產品阻擋新巡邏,不回成功空 Sweep。 ### API / 契約(若有) - QueryPlan 保存 input/map version 摘要,遵守 1–6 組短詞規則。 ## Out of scope - 不呼叫 provider、不做 AI enrichment。 ## Acceptance - [x] baseline 五類映射可回指產品 basis。 - [x] 純品牌/產品名不能獨立成 query。 - [ ] 指令: ```bash cd apps/backend && go test ./internal/module/radar/usecase -run 'DemandMap|QueryPlan|Baseline' -count=1 ``` ## Notes 自訂 phrase 保留但在實質產品改版後標記待確認。