# FoxHSK Practice Maps — Antigravity Handoff

Gửi nguyên folder `public/assets/practice-island/` cho Antigravity.

## Bộ đã sẵn sàng

| Skill | Folder | Node | Mockup |
| --- | --- | ---: | ---: |
| Nghe | `listening/` | 5 | PC + Mobile |
| Nói | `speaking/` | 5 | PC + Mobile |
| Đọc | `reading/` | 6 | PC + Mobile |
| Viết | `writing/` | 5 | PC + Mobile |

## File phải đọc theo thứ tự

1. `listening/IMPLEMENTATION-ANTIGRAVITY.md`
2. `listening/PRACTICE-MAP-PIPELINE.md`
3. `listening/practiceMapConfigs.example.ts`
4. README trong từng folder skill.

Plan executor chuẩn: `.agents/handoff/2026-09-23-practice-skill-maps.plan.md`.

## Quyết định UI đã khóa

- Style sạch, pastel, 3D-cartoon nhẹ như màn chính `/luyen-tap`; không thêm phong cảnh rậm hoặc props nhỏ.
- Không có cờ.
- Asset node/Foxi là WebP alpha, không chứa tên trạm.
- Mỗi trạm chỉ có **một pill tên HTML duy nhất**; pill là `Link` điều hướng.
- Không render nút `Vào học` thứ hai.
- Dùng một component generic `PracticeSkillMap.tsx` và một config `practiceMapConfigs.ts` cho cả bốn skill.
- Nếu config thiếu/sai `branchId`, fallback về grid hiện tại thay vì trắng trang.

## Allowlist triển khai

- `src/components/practice/PracticeArena.tsx`
- `src/components/practice/PracticeSkillMap.tsx` (mới)
- `src/components/practice/practiceMapConfigs.ts` (mới)
- Walkthrough tương ứng trong `.agents/handoff/`

Không sửa assets, `practiceArenaData.ts`, route, top bar, bottom navigation, version hoặc file deploy.
