51 lines
1.5 KiB
Markdown
51 lines
1.5 KiB
Markdown
|
|
# T712 — product readiness suggestions generic assign
|
|||
|
|
|
|||
|
|
> Status: `done`
|
|||
|
|
> Milestone: `M1` · Phase B
|
|||
|
|
> Kind: `feat` · Est. change: `~180 lines`
|
|||
|
|
|
|||
|
|
## Goal
|
|||
|
|
|
|||
|
|
在 watch 設定中顯示產品資料完整度、建議詞依據,並提供舊 generic watch 一次性補綁。
|
|||
|
|
|
|||
|
|
## Depends on
|
|||
|
|
|
|||
|
|
- T710、T711
|
|||
|
|
|
|||
|
|
## Inputs
|
|||
|
|
|
|||
|
|
- `../spec.md` §4.1、§4.6
|
|||
|
|
- Product 的 context/pain points/tags/capability/exclude fields
|
|||
|
|
|
|||
|
|
## Outputs
|
|||
|
|
|
|||
|
|
| 路徑 | 動作 | 說明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| `apps/web/src/components/radar/ProductContextReadiness.tsx` | add | 資料完整度與缺口提示 |
|
|||
|
|
| `apps/web/src/components/radar/WatchTermSuggestions.tsx` | edit/add | basis kind/text、include/exclude 採用 |
|
|||
|
|
| `apps/web/src/pages/RadarWatchesPage.tsx` | edit | generic 補綁與不可換綁狀態 |
|
|||
|
|
| `apps/web/src/pages/RadarWatchesPage.test.tsx` | edit | readiness/assign cases |
|
|||
|
|
|
|||
|
|
## Behavior
|
|||
|
|
|
|||
|
|
- 建議詞顯示來源,不以產品名稱充當需求證據。
|
|||
|
|
- 資料不足提示但不阻擋 product watch;Brand/Product 本體缺失才阻擋。
|
|||
|
|
- 補綁成功後 selector 只讀;更換產品提示建立新 watch。
|
|||
|
|
|
|||
|
|
## Out of scope
|
|||
|
|
|
|||
|
|
- 後端建議演算法(T741)
|
|||
|
|
- Product 編輯器重做
|
|||
|
|
|
|||
|
|
## Acceptance
|
|||
|
|
|
|||
|
|
- [x] generic 可補綁一次,第二次 mock 回 conflict 且 UI 保留原值。
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd apps/web && npm run test -- RadarWatchesPage && npm run check:tokens
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Implementation result (2026-08-10): added readiness checks, suggestion basis
|
|||
|
|
display, product-context suggestion requests, and a one-time generic watch
|
|||
|
|
assignment flow with unavailable resume protection.
|