# 🔨 Fashion AI Dashboard — 2-panel UI + Rules + Score Tester

**Status:** doing  
**Priority:** high  
**Started:** 2026-04-15  
**Owner:** team

## Mục tiêu
Dashboard quản lý AI phối đồ cho admin: xem/edit matches, chỉnh rules, test score.

## Checklist
- [x] Thiết kế 2-panel layout (list trái + detail phải)
- [x] API list sản phẩm với `has_ai_matches`
- [x] Tab "Phối đồ AI" — xem matches theo dịp
- [x] Tab "Mô tả SP" — xem description_data
- [x] Tab "Test Score" — nhập mã SP đích, xem điểm breakdown
- [x] Modal Rules — Weights / Color / Style / Roles / Occasion
- [x] API `GET /rules/config` và `PUT /rules/config`
- [x] API `POST /score-test` với breakdown chi tiết
- [x] Engine `_score_breakdown()` và `_build_reason()`
- [x] Batch AI với progress bar polling
- [ ] Validate fashion_rules.json schema trước khi lưu
- [ ] Test batch full catalog (timeout?)
- [ ] Nút Reset rules về mặc định

## Context
- Frontend: `backend/static/fashion-matches/`
- Backend: `backend/api/fashion_matches_route.py`
- Engine: `backend/worker/stylist_engine.py`
- Rules: `backend/worker/fashion_rules.json`

## Blockers
—
