# T722 — product evidence primary selector

> Status: `done`  
> Milestone: `M2` · Phase B  
> Kind: `feat` · Est. change: `~190 lines`

## Goal

使用者可比較 ProductMatch 四維證據並人工選定主推產品，且理解 override 的持續效果。

## Depends on

- T721

## Inputs

- `../spec.md` §3.2、§3.3、§4.4、驗收 #5、#6
- T720 fixtures

## Outputs

| 路徑 | 動作 | 說明 |
|------|------|------|
| `apps/web/src/components/radar/ProductMatchDetails.tsx` | add | 四維理由、excerpt、basis、risks、其他產品比較 |
| `apps/web/src/components/radar/PrimaryProductPicker.tsx` | add | eligible 選擇與 weak/excluded reason flow |
| `apps/web/src/pages/RadarTodayPage.tsx` | edit | 展開與 mutation state |
| `apps/web/src/pages/RadarTodayPage.test.tsx` | edit | auto／manual primary cases |

## Behavior

- 正分 evidence 顯示公開 excerpt 與 product basis。
- weak／excluded 需明確確認與理由；成功後顯示人工指定標記。
- 新的高分 mock match 不覆蓋人工 primary。

## Out of scope

- 真 primary API（T754）
- 改 Product 資料

## Acceptance

- [x] spec #5、#6 互動測試通過。

```bash
cd apps/web && npm run test -- RadarTodayPage && npm run build
```

Implementation result (2026-08-10): added expandable four-dimension evidence,
excerpt/basis/risk display, and an eligible-only primary picker that records a
human reason and preserves the override marker.
