119 lines
5.9 KiB
Markdown
119 lines
5.9 KiB
Markdown
|
|
# Tasks INDEX — brand-product-radar
|
|||
|
|
|
|||
|
|
> Plan:`../plan.md`(approved 2026-08-10)
|
|||
|
|
> Spec:`../spec.md`(approved 2026-08-10)
|
|||
|
|
> Status:`approved`(使用者 2026-08-10「請開始」)
|
|||
|
|
> Updated:2026-08-10 · 33 done/6 todo
|
|||
|
|
|
|||
|
|
## 硬規則
|
|||
|
|
|
|||
|
|
| 規則 | 內容 |
|
|||
|
|
|------|------|
|
|||
|
|
| 交付順序 | A → B frontend+mock → **UX 批准** → C live API → D 業務深化 |
|
|||
|
|
| 後端 | 只改 `generate/api/*.api` 後跑 `make gen-api`;業務只寫 `internal/logic/**`、`internal/module/**` |
|
|||
|
|
| 舊系統 | `old/` 只讀;所有交付只在 `apps/` 與本產品文件 |
|
|||
|
|
| 去重 | 同 owner+external identity 一筆 Opportunity;同 Opportunity+Product 一筆 ProductMatch |
|
|||
|
|
| 相容 | 舊 watch=generic、舊 opportunity=未指定產品,不猜測回填 |
|
|||
|
|
| 誠實錯誤 | 未實作/來源失效不得回 `102000` 空資料 |
|
|||
|
|
| 時間與列表 | UTC unix ns;`page/pageSize` → `pagination/list` |
|
|||
|
|
| Token | 會員 JWT 與 AI provider token 分離 |
|
|||
|
|
| Task 大小 | 每題約 100–200 行生產碼;不得順手帶入鄰題 |
|
|||
|
|
|
|||
|
|
## INDEX
|
|||
|
|
|
|||
|
|
| ID | Title | Phase / M | Kind | Status | Est. |
|
|||
|
|
|----|-------|-----------|------|--------|------|
|
|||
|
|
| T700 | radar product api contract goctl | A / M0 | feat | done | ~180 |
|
|||
|
|
| T701 | mongo product match indexes | A / M0 | feat | done | ~120 |
|
|||
|
|
| T702 | frontend product radar types repos | A / M0 | feat | done | ~170 |
|
|||
|
|
| T703 | compatibility fixtures not-ready guards | A / M0 | test | done | ~150 |
|
|||
|
|
| T710 | mock radar product repository | B / M1 | feat | done | ~190 |
|
|||
|
|
| T711 | watch brand product selector | B / M1 | feat | done | ~190 |
|
|||
|
|
| T712 | product readiness suggestions generic assign | B / M1 | feat | done | ~180 |
|
|||
|
|
| T713 | product delete impact ui watch tests | B / M1 | test | done | ~170 |
|
|||
|
|
| T720 | mock multi-product opportunity fixtures | B / M2 | test | done | ~150 |
|
|||
|
|
| T721 | today product filters cards | B / M2 | feat | done | ~200 |
|
|||
|
|
| T722 | product evidence primary selector | B / M2 | feat | done | ~190 |
|
|||
|
|
| T723 | all opportunities page | B / M2 | feat | done | ~200 |
|
|||
|
|
| T724 | explore import crm product context ux gate | B / M2 | feat | done | ~190 |
|
|||
|
|
| T730 | radar watch product domain repositories | C / M3 | feat | done | ~190 |
|
|||
|
|
| T731 | opportunity product match domain | C / M3 | feat | done | ~180 |
|
|||
|
|
| T732 | atomic product match repositories | C / M3 | feat | done | ~200 |
|
|||
|
|
| T733 | radar product mappers filters | C / M3 | feat | done | ~170 |
|
|||
|
|
| T734 | ownership legacy domain integration | C / M3 | test | done | ~180 |
|
|||
|
|
| T740 | product context snapshot loader | C / M4 | feat | done | ~170 |
|
|||
|
|
| T741 | product demand term suggestions | C / M4 | feat | done | ~180 |
|
|||
|
|
| T742 | product fit deterministic scorer | C / M4 | feat | done | ~200 |
|
|||
|
|
| T743 | product fit ai structured fallback | C / M4 | feat | done | ~190 |
|
|||
|
|
| T744 | product match merge primary arbitration | C / M4 | feat | done | ~200 |
|
|||
|
|
| T745 | fit stale concurrency tests | C / M4 | test | done | ~190 |
|
|||
|
|
| T750 | product watch create assign lifecycle api | C / M5 | feat | done | ~190 |
|
|||
|
|
| T751 | sweep explore product pipeline | C / M5 | feat | done | ~200 |
|
|||
|
|
| T752 | import quota sweep counters | C / M5 | feat | done | ~180 |
|
|||
|
|
| T753 | today all results filters ordering | C / M5 | feat | done | ~200 |
|
|||
|
|
| T754 | primary product override api | C / M5 | feat | done | ~160 |
|
|||
|
|
| T755 | product delete pauses watches | C / M5 | feat | done | ~180 |
|
|||
|
|
| T760 | live radar product repo mapping | C / M6 | feat | done | ~200 |
|
|||
|
|
| T761 | live product radar pages states | C / M6 | feat | done | ~190 |
|
|||
|
|
| T762 | p0 cross-layer integration gate | C / M6 | test | done | ~200 |
|
|||
|
|
| T770 | reply uses primary product snapshot | D / M7 | feat | todo | ~180 |
|
|||
|
|
| T771 | contact touch product attribution | D / M7 | feat | todo | ~180 |
|
|||
|
|
| T772 | outcome event product attribution | D / M7 | feat | todo | ~160 |
|
|||
|
|
| T773 | product opportunity accuracy gate | D / M7 | test | done → shared T870/T871 | ~150 |
|
|||
|
|
| T774 | product match race metering regression | D / M7 | test | done → shared T872 | ~190 |
|
|||
|
|
| T775 | full regression testing gaps docs | D / M7 | docs | done → shared T873 | ~140 |
|
|||
|
|
|
|||
|
|
## 建議執行順序
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
T700 → T701 → T702 → T703
|
|||
|
|
→ T710 → T711 → T712 → T713
|
|||
|
|
→ T720 → T721 → T722 → T723 → T724
|
|||
|
|
──【Phase B UX 批准】
|
|||
|
|
→ T730 → T731 → T732 → T733 → T734
|
|||
|
|
→ T740 → T741 → T742 → T743 → T744 → T745
|
|||
|
|
→ T750 → T751 → T752 → T753 → T754 → T755
|
|||
|
|
→ T760 → T761 → T762
|
|||
|
|
──【P0 live 驗收】
|
|||
|
|
→ T770 → T771 → T772 → T773 → T774 → T775
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 可並行組合
|
|||
|
|
|
|||
|
|
| 組合 | 收斂點 |
|
|||
|
|
|------|--------|
|
|||
|
|
| T701 ‖ T702 | T703 |
|
|||
|
|
| T711 ‖ T712 | T713 |
|
|||
|
|
| T721 ‖ T723 | T724 |
|
|||
|
|
| T730 ‖ T731 | T732 |
|
|||
|
|
| T741 ‖ T742 | T743/T744 |
|
|||
|
|
| T753 ‖ T754 ‖ T755 | T760 |
|
|||
|
|
| T770 ‖ T771 ‖ T772 | T774 |
|
|||
|
|
|
|||
|
|
## Spec 驗收覆蓋
|
|||
|
|
|
|||
|
|
| Spec §9 | 主要 tasks |
|
|||
|
|
|---------|------------|
|
|||
|
|
| #1 合法 Brand/Product | T711、T730、T750、T762 |
|
|||
|
|
| #2 痛點而非品牌名 | T720、T742、T743、T773 |
|
|||
|
|
| #3 單純同名不 eligible | T720、T742、T745、T773 |
|
|||
|
|
| #4 同貼文多產品單卡 | T720–T722、T732、T744、T762 |
|
|||
|
|
| #5 自動主推高分產品 | T722、T744、T762 |
|
|||
|
|
| #6 人工主推不被覆蓋 | T722、T744、T754、T762 |
|
|||
|
|
| #7 產品更新不改舊證據 | T731、T740、T745 |
|
|||
|
|
| #8 stale 只在全部結果 | T720、T723、T745、T753 |
|
|||
|
|
| #9 刪產品暫停 watch | T713、T755、T761 |
|
|||
|
|
| #10 舊資料相容 | T703、T734、T760、T775 |
|
|||
|
|
| #11 no eligible 空狀態 | T721、T753、T761 |
|
|||
|
|
| #12 worker 競態去重 | T732、T745、T774 |
|
|||
|
|
| #13 owner 隔離 | T703、T734、T750、T754 |
|
|||
|
|
| #14 回覆不串牌 | T724、T770、T775 |
|
|||
|
|
|
|||
|
|
## 閘門
|
|||
|
|
|
|||
|
|
- [x] Tasks breakdown 已批准(2026-08-10/使用者「請開始」)
|
|||
|
|
- README phase=`ready-to-implement`。
|
|||
|
|
- 實作需由使用者指定單一 `T###` 或明確要求全部執行;目前 T700 已完成。
|
|||
|
|
- T724 結束後必須先取得 Phase B UX 批准,才可開始 T730。
|
|||
|
|
- T762 結束後完成 P0 live 驗收,才進 Phase D。
|