thread-master/docs/product/opportunity-inbox/tasks/T843-demand-map-enrichment-...

59 lines
1.7 KiB
Markdown
Raw Permalink Normal View History

2026-08-13 02:22:24 +00:00
# T843 — demand map enrichment metering byok
> Status: `done`2026-08-11
> Milestone: `M4`
> Est. change: `~190 lines`
## Goal
完成後使用者確認 CostPreview 後才可用 AI 擴充 DemandMap成功才切換版本並正確記錄 platformBYOK 用量。
## Depends on
- T840、T841、T842
## Inputs
- `apps/backend/internal/module/radar/usecase/suggest.go`
- `apps/backend/internal/module/usage/domain/**`
- `apps/backend/internal/logic/radar/**`
- Spec §4.1、§5.1§5.3、驗收 #17、#20、#22
## Outputs
### 程式變更(預期路徑)
| 路徑 | 動作 | 說明 |
|------|------|------|
| `apps/backend/internal/module/radar/usecase/demand_map_enrich.go` | add | preview gate、AI output validation、merge |
| `apps/backend/internal/logic/radar/enrich_demand_map_logic.go` | add | authenticated action |
| `apps/backend/internal/module/radar/usecase/demand_map_enrich_test.go` | add | success、invalid output、retry、BYOK |
| `apps/backend/internal/module/usage/**` | edit | 沿用 meter、source=`radar.demand_map` |
### 行為變更
- provider 未完成有效結構時不切 current map依既有失敗退點規則處理。
- BYOK platform credits=0count/source 仍增加。
### API / 契約(若有)
- POST enrichment 必須帶 preview_id、credit_ceiling、context version。
## Out of scope
- 不做每日 sweep、不改產品真相、不新增第五 meter。
## Acceptance
- [x] enrichment 成功、失敗、重試與版本衝突行為可對帳。
- [x] AI token 不回前端。
- [ ] 指令:
```bash
cd apps/backend && go test ./internal/module/radar/... ./internal/module/usage/... -run 'DemandMap|Enrich|Meter' -count=1
```
## Notes
AI phrases 必須帶 basis不得把模型推測當產品承諾。