# T742 — product fit deterministic scorer

> Status: `done`  
> Milestone: `M4` · Phase C  
> Kind: `feat` · Est. change: `~200 lines`

## Goal

建立可離線測試的四維產品適配 scorer，輸出完整證據、風險、band 與 eligible。

## Depends on

- T731、T740

## Inputs

- `../spec.md` §3.2
- Product context snapshot 與 CandidatePost

## Outputs

| 路徑 | 動作 | 說明 |
|------|------|------|
| `apps/backend/internal/module/radar/domain/product_scoring.go` | add | 權重、band、eligible／exclude rules |
| `apps/backend/internal/module/radar/usecase/product_fit.go` | add | deterministic evidence matching |
| scorer tests | add | boundary、name-only、exclude、unknown audience |

## Behavior

- pain 35、scenario 25、audience 20、capability 20。
- 正分必帶候選 excerpt 與 product basis；未知受眾給 0。
- 單純產品名命中不 eligible；exclude term 命中附明確 reason。

## Out of scope

- AI structured output（T743）
- persistence merge（T744）

## Acceptance

- [x] spec #2、#3 與所有分數門檻有 table tests。

```bash
cd apps/backend && go test ./internal/module/radar/domain/... ./internal/module/radar/usecase/... -count=1
```

Implementation result (2026-08-10): deterministic scoring now applies the
35/25/20/20 pain／scenario／audience／capability weights, captures candidate
excerpts and catalog basis for every positive dimension, keeps unknown audience
at zero, and hard-excludes provider/announcement/noise or configured exclude
terms. Product-name-only hits remain weak and ineligible.
