thread-master/docs/product/opportunity-inbox/requirements.md

172 lines
15 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Requirements: 商機工作收件匣與產品需求搜尋
> Status: `approved`
> Status note: 使用者 2026-08-11「幫我拆吧」視為批准需求並要求繼續拆解
> Slug: `opportunity-inbox`
> Last updated: `2026-08-11`
> Depends on: `demand-radar`、`brand-product-radar`
## 1. 一句話
讓經營者用一個簡單收件匣處理每天找到的商機,系統先把產品能力翻成使用者真正會說的痛點與求助語言,再用低成本前處理和分層判定找出更貼近產品的貼文,並讓每一筆點數消耗可預期、可追溯且不重複。
## 2. 誰用、在什麼情境
| 角色 | 目標 |
|------|------|
| 每天巡邏商機的經營者 | 快速看完待處理結果,完成有價值的商機,移除不相關內容 |
| 單品牌、多產品經營者 | 知道貼文對應哪個產品與哪個痛點,不因產品名稱相似而誤判 |
| 重視成本的付費會員 | 在手動探索或 AI 動作前知道可能耗點,事後能查到實際用量 |
| 自備 AI 金鑰的會員 | 沿用 BYOK 規則,不扣平台點數但保留呼叫與結果紀錄 |
| 營運人員 | 能比較結果品質、使用量與成本,避免為增加結果數量無限制燒點 |
## 3. 背景與動機As-is → 為什麼改)
- **現況問題:** 「今日商機」與「全部商機」分散了同一件工作;卡片資訊與操作過多,第一次使用者不清楚下一步。找到的結果也可能只命中表面關鍵字,未必真的在表達產品能解決的痛點。
- **現況問題:** 使用者缺少「已完成」與可復原的「移除」流程,已看過或判定無關的內容容易繼續干擾待辦,甚至再次出現。
- **現況問題:** 現有產品詞建議雖會讀取品牌與產品資料,但尚未形成可檢查的需求地圖;候選前處理主要靠字面排除與基本分類,對同義句、口語痛點和隱含求助的辨識不足。
- **現況問題:** 搜尋、AI 判定與重新生成可能耗用點數,但商機工作流程沒有在需要決策的位置清楚說明預估、實際消耗與重試規則。
- **不改的後果:** 結果越多,人工篩選成本和 AI 成本也越高;使用者會覺得這只是 Threads 關鍵字搜尋加上一個複雜介面,無法信任排序或持續每日使用。
- **參考文件(非需求本體):** `docs/product/demand-radar/`、`docs/product/brand-product-radar/`、`docs/product/haixun-console/spec.md`。
## 4. 目標To-be
### 4.1 必須達成P0
1. **一個商機工作收件匣**
- 把每日結果與歷史結果收斂成同一個工作入口,以「待處理/已完成/已移除」表達工作狀態。
- 「今天/近 7 天/全部」是時間範圍,不是三套不同流程。
- 預設畫面只回答:對方遇到什麼問題、最適合哪個產品、證據是什麼、現在要完成或移除。
- 回覆草稿、CRM、其他產品匹配與完整判定放在次層詳情不阻礙快速瀏覽。
2. **完成與軟移除**
- 使用者可把一筆商機標示為已完成,之後仍可查看並恢復為待處理。
- 使用者可移除不想再看的商機,移除後預設不在待處理清單出現,但保留來源識別,避免同一篇公開內容被下一次巡邏重新當成新商機。
- 移除可復原,並可記錄「不符合痛點、同業/廣告、過時、已解決、重複、其他」等原因。
- 「已完成」只代表工作進度;「已移除+原因」才可作為後續品質調校的負向訊號,兩者不得混用。
3. **先建立產品需求地圖,再產生搜尋語言**
- 每個產品的搜尋上下文至少整理成:使用者症狀/困擾語言、發生情境、想達成的結果、正在找解法的訊號、不適合或應排除的訊號。
- 需求地圖必須能回指品牌與產品中已有的受眾、痛點、情境和能力,不得自行捏造產品用途。
- 搜尋詞以使用者可能說出的短句與多種表達方式為主,產品名與品牌名只能當輔助訊號,不能單獨證明商機。
- 使用者可檢查與調整需求地圖及搜尋建議;產品資料不足時,系統應指出缺口並降低信心。
4. **分層處理,先便宜後昂貴**
- 搜尋採「廣召回、嚴排序」:先取回較多候選,再經去重、時間、語言、同業/公告/廣告排除、問題句與求助句抽取等低成本前處理。
- 候選至少同時具備需求訊號,以及痛點、情境或期望結果中的一項產品證據,才可進入高優先商機。
- 通過前處理的候選先做產品語意適配排序,只有高價值或難以判斷的候選才使用較昂貴的 AI 深度判定。
- 未達高優先門檻但仍有合理證據的結果可以保留在較低順位,讓使用者取得更多結果;不可把純名稱命中或明確雜訊灌入商機數量。
5. **可解釋的優先排序與時間排序**
- 預設以「產品痛點適配、真實需求意圖、證據品質、貼文新鮮度」形成推薦順序,其中產品痛點適配為最高權重。
- 使用者可改按最新、最舊、產品適配、需求意圖排序,並可選今天、近 7 天或全部時間。
- 時間排序以來源貼文的發布時間為準;未知時間不得假裝成最新。
- 每筆高順位商機都必須顯示可回指原文的需求證據與產品適配原因;只提到品牌或產品名稱不得進入高順位。
6. **扣點透明且不重複**
- 瀏覽、篩選、排序、完成、移除與復原不扣點。
- 手動觸發會耗點的搜尋、需求地圖 AI 優化、深度判定或回覆生成前,顯示本次動作的扣點類型與可得的預估;實際完成後顯示本次實際耗點。
- 每日自動巡邏不要求逐次確認,但必須受方案配額與使用者可理解的每日成本上限保護;達上限時停止新增付費判定並說明有多少候選尚未處理,不得靜默消失。
- 候選在前處理階段被排除,不產生 AI 深度判定點數AI 已完成判定但結果不適合,仍屬已使用服務,可正常計點。
- 同一候選、同一產品版本已有有效判定時,重跑、跨雷達命中或頁面重試不得重複判定、重複扣點。
- 在付費供應商呼叫前失敗不扣點;工作中斷後續跑時,已成功完成並記錄的部分不得再扣。若供應商已完成有效工作,即使最終沒有建立商機,也應如實記錄用量。
- 沿用既有平台代付與 BYOK 規則BYOK 不扣平台點數,但保留呼叫次數與來源紀錄;不新增難以理解的第五種用量分類。
- 每次巡邏可查看搜尋命中、前處理排除、AI 判定、建立/合併商機、未處理候選與實際耗點,使用者能理解點數花在哪裡。
7. **結果品質必須可驗收**
- 建立含有效商機、口語改寫、同業銷售、公告、泛討論、重複與過時內容的代表性標註集。
- 高順位前十筆至少八筆同時具有真實需求及產品適配證據。
- 純產品名/品牌名命中、同業叫賣與公告不得進入高順位。
- 完成與移除後,同一來源在各時間範圍、排序方式與下一次巡邏中的狀態一致。
### 4.2 應該有P1
1. 將移除原因按產品彙整,建議新增排除語言或降低某類需求語言權重;任何會改變後續巡邏的建議都須由使用者確認。
2. 將品質調校集中批次執行,先顯示預估耗點,不因每次移除操作立即呼叫 AI。
3. 顯示每產品的候選數、前處理通過率、深度判定率、高順位有效率與每筆有效商機平均耗點,供產品與價格校準。
4. 支援批次完成、批次移除與可逆的短期復原操作。
### 4.3 以後再說P2
1. 在足夠且已確認的正負樣本上建立個人化排序,但不得讓個人化規則不可解釋。
2. 在使用者設定的月度預算內,自動調整各產品的探索廣度與深度判定比例。
3. 擴充其他公開來源,沿用同一需求地圖、去重、狀態與扣點原則。
## 5. 範圍
### In scope
- 商機單一收件匣、三種工作狀態、時間範圍與排序。
- 單筆完成、軟移除、復原、移除原因及跨巡邏不再浮現。
- 產品需求地圖、搜尋語言建議、候選前處理、產品適配排序與 AI 深度判定分層。
- 手動與自動巡邏的扣點可見性、防重扣、上限提示與用量追溯。
- 代表性品質資料集與高順位準確度驗收。
### Out of scope明確不做
- 不重做 Threads 抓取底座、排程器、CRM、金流、方案、用量計量或 AI 供應商抽象。
- 不用硬刪除清除商機歷史,也不因移除自動封鎖作者或刪除來源內容。
- P0 不因每次完成或移除即時訓練模型,也不自動修改品牌或產品真相。
- 不保證找到的公開發文者一定有預算或會購買;只判斷其公開表達的需求與產品適配。
- 不以增加 AI 呼叫數換取表面上的結果數量,也不在點數不足時假裝完成全部判定。
- 不調整既有方案售價;成本與品質數據只供後續校準。
## 6. 使用者故事(可驗收)
| ID | 作為… | 我想要… | 以便… | 驗收要點 |
|----|--------|---------|--------|----------|
| OI-01 | 第一次使用者 | 一進頁面只看到待處理商機與明確動作 | 不用先理解多個頁面和複雜流程 | 可在同一入口切換待處理、已完成、已移除與時間範圍 |
| OI-02 | 經營者 | 把已處理商機標成完成 | 待辦只留下還要看的內容 | 完成後離開待處理;可查看與恢復;不扣點 |
| OI-03 | 經營者 | 移除不相關或重複貼文並留下原因 | 相同雜訊不再反覆出現 | 移除後下一次巡邏不新建同來源;可復原;不扣點 |
| OI-04 | 產品經營者 | 先看產品需求地圖再開始找 | 確認系統找的是痛點語言,不只是產品名稱 | 五類需求資訊可檢查且能回指產品資料;資料不足有提示 |
| OI-05 | 業務 | 依推薦或時間整理商機 | 先處理最適合或最新的需求 | 推薦、最新、最舊、產品適配、需求意圖排序結果一致且時間未知不冒充最新 |
| OI-06 | 付費會員 | 在手動付費動作前知道可能耗點 | 決定是否值得執行 | 動作前有扣點類型/預估,完成後有實際耗點與用量入口 |
| OI-07 | 每日巡邏使用者 | 成本到上限時知道哪些工作沒做完 | 不把零結果誤認為沒有市場 | 顯示未判定候選數、停止原因與後續選項;不靜默丟棄 |
| OI-08 | 重跑工作的使用者 | 不為同一份有效判定付兩次 | 信任系統用量 | 同候選、同產品版本重跑或跨雷達合併只計一次有效判定 |
| OI-09 | BYOK 會員 | 使用自己的金鑰執行判定 | 不占平台點數且仍看得到用量 | 平台點數為零;呼叫次數、來源與巡邏結果可查 |
| OI-10 | 營運 | 用標註資料驗證排序 | 確認價值高於關鍵字搜尋 | 前十至少八筆有效;名稱命中、同業與公告不進高順位 |
## 7. 成功標準
- [ ] 新使用者不需離開商機入口,即可完成「查看證據 → 完成或移除 → 查看已處理結果」的完整流程。
- [ ] 完成、移除、復原、篩選與排序均不產生 AI 或搜尋點數。
- [ ] 被軟移除的同來源內容不會在後續巡邏重新成為新商機,且仍可由使用者復原。
- [ ] 每筆高順位商機至少有一段需求證據與一項產品痛點/情境/期望結果的適配證據。
- [ ] 代表性標註集中,高順位前十筆至少八筆有效,且沒有只靠品牌名或產品名進榜的結果。
- [ ] 每次巡邏皆可對帳命中、前處理排除、AI 判定、建立/合併、未處理與實際耗點。
- [ ] 同候選、同產品版本在重試、重跑或跨雷達命中時不重複扣 AI 判定點數。
- [ ] 達點數或每日成本上限時,畫面明確說明停止原因與未處理數量,不以成功空結果掩蓋。
- [ ] 使用者可按推薦、最新、最舊、產品適配與需求意圖排序,且時間排序以來源發布時間為準。
## 8. 約束與假設
- 技術 / 合規 / 時程約束:沿用既有 UTC unix nanoseconds、回應格式、列表分頁、guarded job、會員權限、AI token 隔離、平台代付BYOK 與方案配額規則。
- 技術 / 合規 / 時程約束:交付仍依 Phase A → B 前端與 mock → C 接真 API → D 業務深化;本需求不得繞過既有 goctl 後端流程。
- 技術 / 合規 / 時程約束:產品真相仍由 BrandProduct 提供,需求地圖只做可追溯轉譯,不成為另一份自動覆寫的產品資料。
- 假設(未驗證當真):使用者更在意高順位的準確度與處理速度,而非首頁塞入最多結果;較低信心但具基本證據的結果仍可在後段查看。
- 假設(未驗證當真):低成本前處理能顯著減少昂貴 AI 判定量;需要以真實巡邏成本與標註集驗證。
- 假設(未驗證當真):既有四種用量分類足以承載新流程,只需沿用來源標籤分辨商機用途。
## 9. 風險
| 風險 | 影響 | 緩解(需求層,非實作細節) |
|------|------|---------------------------|
| 廣召回帶來大量雜訊 | 清單變多但更難用 | 高順位設證據硬門檻,低信心結果後置,標註集持續驗收 |
| 前處理過嚴 | 真正需求在 AI 前被誤排除 | 區分明確雜訊與低信心候選;保留各階段數量與抽樣稽核能力 |
| 需求地圖把產品用途想太多 | 搜尋與排序偏離真實產品 | 每項內容回指品牌/產品資料,缺資料就提示,不由模型補故事 |
| 自動巡邏耗點不可控 | 使用者點數快速耗盡、產品毛利受損 | 先便宜後昂貴、每日成本上限、候選去重、結果與耗點可對帳 |
| 為避免重扣而沿用過期判定 | 產品更新後仍使用舊結論 | 防重以產品版本為邊界;產品實質變更後可重新判定並清楚告知可能耗點 |
| 移除被當成永久訓練真相 | 一次誤按導致未來漏商機 | 軟移除可復原P0 只記原因P1 建議需人工確認後才影響巡邏 |
| 已完成與不適合混在一起 | 排序學到錯誤訊號 | 完成只表示流程進度,移除原因才是負向品質訊號 |
## 10. 開放問題
1. **每日自動巡邏成本上限的預設值**應沿用方案固定值還是允許會員為每個產品再設更低上限需求預設P0 沿用方案固定上限並清楚顯示,個別產品自訂列 P1。
2. **移除資料保留多久?** 需求預設:保留來源識別與狀態,直到使用者主動復原或依既有資料保留政策清除;不提供不可逆的單筆硬刪除。
3. **產品什麼變更算新版本、允許重新扣點判定?** 需求預設:只有會影響需求地圖的受眾、痛點、情境、能力或排除訊號變更才算;純名稱或顯示資訊修改不算。
## 11. 批准
- [x] 需求已批准2026-08-11使用者
- 批准後下一步:只撰寫 `spec.md`把狀態、排序、扣點、防重與巡邏統計定成行為契約spec 再批准後才進 planplan 批准後才拆 tasks。