thread-master/docs/product/opportunity-inbox/tasks/T852-judge-structured-resul...

59 lines
1.8 KiB
Markdown
Raw Permalink Normal View History

2026-08-13 02:22:24 +00:00
# T852 — judge structured result cache
> Status: `done`2026-08-11
> Milestone: `M5`
> Est. change: `~200 lines`
## Goal
完成後 AI 深判只處理 shortlist不確定候選輸出可驗證 evidencebasisrisk並以版本唯一鍵復用有效 acceptedrejected 結果。
## Depends on
- T850、T851、T843
## Inputs
- `apps/backend/internal/module/radar/usecase/product_fit_ai.go`
- `apps/backend/internal/module/radar/usecase/judge.go`
- `apps/backend/internal/module/radar/domain/product_match.go`
- Spec §4.4、§5.3、驗收 #10、#16#18
## Outputs
### 程式變更(預期路徑)
| 路徑 | 動作 | 說明 |
|------|------|------|
| `apps/backend/internal/module/radar/domain/judgment_result.go` | add | versioned validinvalid result domain |
| `apps/backend/internal/module/radar/repository/judgment_result_memory.go` | add | memory cacheunique key |
| `apps/backend/internal/module/radar/usecase/judge_pipeline.go` | add/edit | shortlist、structured validation、reuse |
| `apps/backend/internal/module/radar/usecase/judge_pipeline_test.go` | add | validinvalidrejectedreuse tests |
### 行為變更
- provider公告純名不進 high完整 accepted 或 rejected 結果均可快取。
- 無法驗證的 evidencebasis 不形成有效快取。
### API / 契約(若有)
- 唯一鍵 ownersourceproductinput/map versionjudge kind。
## Out of scope
- 不接每日 Sweep checkpoint、不做 Mongo cache migration。
## Acceptance
- [x] 同候選跨 watchquery 重跑不再次呼叫 judge。
- [x] provider 結構成功但判定 rejected 正常計入有效結果。
- [ ] 指令:
```bash
cd apps/backend && go test ./internal/module/radar/usecase -run 'Judge|Judgment' -count=1
```
## Notes
AI 不能從品牌/產品名稱自行補痛點或作者背景。