48 lines
1.3 KiB
Markdown
48 lines
1.3 KiB
Markdown
|
|
# 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
|
|||
|
|
```
|
|||
|
|
|