106 lines
5.5 KiB
Markdown
106 lines
5.5 KiB
Markdown
|
|
# Tasks INDEX — opportunity-inbox
|
|||
|
|
|
|||
|
|
> Plan:`../plan.md`(approved 2026-08-11)
|
|||
|
|
> Spec:`../spec.md`(approved 2026-08-11)
|
|||
|
|
> Status:`in-progress`(Phase A–C 與 M7 驗收資產已完成;live rollout 文件同步中)
|
|||
|
|
> Updated:2026-08-11
|
|||
|
|
|
|||
|
|
## 硬規則
|
|||
|
|
|
|||
|
|
| 規則 | 內容 |
|
|||
|
|
|------|------|
|
|||
|
|
| 交付順序 | M0 Phase A → M1/M2 Phase B frontend+mock → **UX 批准** → M3–M6 Phase C live → M7 Phase D 品質與回歸 |
|
|||
|
|
| 後端 | 只改 `apps/backend/generate/api/*.api` 後跑 `make gen-api`;業務只寫 `internal/logic/**`、`internal/module/**` |
|
|||
|
|
| 舊系統 | `old/` 只讀;所有交付只在 `apps/` 與本產品文件 |
|
|||
|
|
| 狀態 | ReviewState 與 OpportunityStatus 分離;accepted 仍是 CRM,completed 只是工作完成 |
|
|||
|
|
| 去重 | owner+source identity 一筆 Opportunity;同來源 tombstone 不新建、不重判 |
|
|||
|
|
| 扣點 | review/列表/前處理免費;provider 成功才依既有 meter 計點;有效判定唯一鍵防重扣 |
|
|||
|
|
| 時間/列表 | UTC unix ns;`page/pageSize` → `pagination/list`;排序由 server side 穩定執行 |
|
|||
|
|
| Token | 會員 JWT 與 AI provider token 分離;BYOK 平台 credits=0 但保留 count/source |
|
|||
|
|
| Task 大小 | 每題約 100–200 行 production change;跨 milestone 能力需拆開 |
|
|||
|
|
|
|||
|
|
## INDEX
|
|||
|
|
|
|||
|
|
| ID | Title | Phase / M | Kind | Status | Est. |
|
|||
|
|
|----|-------|-----------|------|--------|------|
|
|||
|
|
| T800 | radar inbox contract goctl | A / M0 | feat | done | ~180 |
|
|||
|
|
| T801 | frontend inbox domain repository seam | A / M0 | feat | done | ~160 |
|
|||
|
|
| T802 | legacy mapping and contract guards | A / M0 | test | done | ~160 |
|
|||
|
|
| T810 | single opportunity inbox shell | B / M1 | feat | done | ~180 |
|
|||
|
|
| T811 | mock review state repository | B / M1 | feat | done | ~180 |
|
|||
|
|
| T812 | inbox card detail and actions | B / M1 | feat | done | ~190 |
|
|||
|
|
| T813 | inbox filters sorting url empty tests | B / M1 | test | done | ~180 |
|
|||
|
|
| T820 | demand map mock editor | B / M2 | feat | done | ~190 |
|
|||
|
|
| T821 | query plan preview mock | B / M2 | feat | done | ~150 |
|
|||
|
|
| T822 | cost preview and credit confirmation mock | B / M2 | feat | done | ~170 |
|
|||
|
|
| T823 | sweep funnel mock and ux gate tests | B / M2 | test | done | ~180 |
|
|||
|
|
| T830 | review state domain and mapping | C / M3 | feat | done | ~180 |
|
|||
|
|
| T831 | memory review audit tombstone | C / M3 | feat | done | ~190 |
|
|||
|
|
| T832 | mongo review fields migration indexes | C / M3 | feat | done | ~180 |
|
|||
|
|
| T833 | review state api list and compatibility | C / M3 | feat | done | ~190 |
|
|||
|
|
| T840 | demand map domain repository | C / M4 | feat | done | ~190 |
|
|||
|
|
| T841 | baseline version and query planner | C / M4 | feat | done | ~180 |
|
|||
|
|
| T842 | cost preview quota gate | C / M4 | feat | done | ~190 |
|
|||
|
|
| T843 | demand map enrichment metering byok | C / M4 | feat | done | ~190 |
|
|||
|
|
| T850 | candidate normalization prefilter | C / M5 | feat | done | ~190 |
|
|||
|
|
| T851 | evidence extraction priority scorer | C / M5 | feat | done | ~190 |
|
|||
|
|
| T852 | judge structured result cache | C / M5 | feat | done | ~200 |
|
|||
|
|
| T853 | idempotent judgment metering fixtures | C / M5 | test | done | ~180 |
|
|||
|
|
| T860 | sweep pipeline demand map prefilter | C / M6 | feat | done | ~200 |
|
|||
|
|
| T861 | sweep checkpoint resume budget | C / M6 | feat | done | ~190 |
|
|||
|
|
| T862 | sweep funnel counters and api | C / M6 | feat | done | ~180 |
|
|||
|
|
| T863 | live repository inbox integration | C / M6 | feat | done | ~190 |
|
|||
|
|
| T870 | opportunity inbox accuracy dataset | D / M7 | test | done | ~160 |
|
|||
|
|
| T871 | precision and cost evaluation gate | D / M7 | test | done | ~170 |
|
|||
|
|
| T872 | race retry and duplicate charge regression | D / M7 | test | done | ~190 |
|
|||
|
|
| T873 | compatibility rollout and gaps docs | D / M7 | docs | done | ~140 |
|
|||
|
|
|
|||
|
|
## 建議執行順序
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
T800 → T801 → T802
|
|||
|
|
→ T810 → T811 → T812 → T813
|
|||
|
|
→ T820 → T821 → T822 → T823
|
|||
|
|
──【Phase B UX 批准】
|
|||
|
|
→ T830 → T831 → T832 → T833
|
|||
|
|
→ T840 → T841 → T842 → T843
|
|||
|
|
→ T850 → T851 → T852 → T853
|
|||
|
|
→ T860 → T861 → T862 → T863
|
|||
|
|
──【P0 live 驗收】
|
|||
|
|
→ T870 → T871 → T872 → T873
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 可並行組合
|
|||
|
|
|
|||
|
|
| 組合 | 收斂點 |
|
|||
|
|
|------|--------|
|
|||
|
|
| T800 ‖ T801 | T802 |
|
|||
|
|
| T810 ‖ T811 | T812/T813 |
|
|||
|
|
| T820 ‖ T821 | T822/T823 |
|
|||
|
|
| T830 ‖ T831 | T832 |
|
|||
|
|
| T840 ‖ T841 | T842 |
|
|||
|
|
| T850 ‖ T851 | T852/T853 |
|
|||
|
|
| T860 ‖ T861 | T862/T863 |
|
|||
|
|
| T870 ‖ T871 | T872/T873 |
|
|||
|
|
|
|||
|
|
## Spec 驗收覆蓋
|
|||
|
|
|
|||
|
|
| Spec 場景 | 主要 tasks |
|
|||
|
|
|-----------|------------|
|
|||
|
|
| #1–#5 收件匣、完成、移除、復原、CRM 同步 | T810–T813、T830–T833、T863 |
|
|||
|
|
| #6–#7 DemandMap、QueryPlan、incomplete | T820–T821、T840–T841、T860 |
|
|||
|
|
| #8–#12 前處理、證據、排序、未知時間 | T850–T851、T863、T870–T871 |
|
|||
|
|
| #13–#15 CostPreview、0 hit、前處理排除 | T822、T842、T860–T862 |
|
|||
|
|
| #16–#20 計點、失敗退點、續跑、ceiling、BYOK | T822、T843、T852–T853、T861–T862、T872 |
|
|||
|
|
| #21–#22 版本與重判 | T841–T843、T852、T872 |
|
|||
|
|
| #23–#24 accuracy 與 today redirect | T813、T863、T870–T873 |
|
|||
|
|
|
|||
|
|
## 閘門
|
|||
|
|
|
|||
|
|
- [x] Task breakdown 已批准:使用者已要求「全部執行」(2026-08-11)。
|
|||
|
|
- README phase=`in-progress`。
|
|||
|
|
- M1–M2 完成後必須先取得 Phase B UX 批准,才可開始 M3。
|
|||
|
|
- M6 完成後必須通過 P0 live 驗收,才可開始 M7。
|
|||
|
|
- `brand-product-radar` T773–T775 與 T870–T873 重疊的 accuracy/race/回歸輸出只實作一次,完成時在兩份 INDEX 交叉引用。
|
|||
|
|
- 實作時使用者需指定單一 T### 或明確要求一批;不可把未批准的 neighbor task 順手帶入。
|