# T770 — reply uses primary product snapshot

> Status: `todo`  
> Milestone: `M7` · Phase D  
> Kind: `feat` · Est. change: `~180 lines`

## Goal

新回覆只使用商機當下 PrimaryProduct snapshot 與正確 Brand，並繼續遵守選用 ServiceProfile 禁語。

## Depends on

- T762（P0 live 已驗收）

## Inputs

- `apps/backend/internal/module/radar/usecase/reply.go`
- `../spec.md` §4.5、驗收 #14

## Outputs

| 路徑 | 動作 | 說明 |
|------|------|------|
| `apps/backend/internal/module/radar/usecase/reply.go` | edit | prompt 加 primary Brand/Product snapshot 與 evidence |
| reply prompt／filter tests | edit/add | 多品牌不串牌、legacy generic、forbidden、changed primary |
| frontend reply panel tests | edit | 顯示使用中的產品與已送出不可回寫 |

## Behavior

- 無 primary 的 legacy 商機沿用 ServiceProfile 並標未指定產品。
- 改 primary 只影響後續生成；既有 ReplyVariant 不改。
- 不使用其他 ProductMatch 的承諾，不推測未公開資訊。

## Out of scope

- 自動送出／私訊 API
- Product 編輯

## Acceptance

- [ ] spec #14 多品牌 fixture 不串牌，既有 forbidden tests 綠。

```bash
cd apps/backend && go test ./internal/module/radar/... -count=1
cd apps/web && npm run test -- RadarTodayPage
```

