---
name: CuCu Note Full Feature E2E & DB Migration Loop
description: An autonomous workflow for the AI Agent to test all features of CuCu Note using the Browser tool, apply surgical code fixes, and run SQLite migrations where necessary.
---

# Mục tiêu chung
Thực hiện chạy kiểm thử "End-to-End" toàn bộ các tính năng của `CuCu Note` bằng cách thao tác trực tiếp trên giao diện Browser (sử dụng Browser Tool của Agent). Nếu phát hiện lỗi, Agent sẽ tự động dò lại code, sửa lỗi (Surgical Changes) hoặc bổ sung Database Migration, sau đó test lại cho tới khi chạy thành công 100%.

# Nguyên tắc hành động của Agent
Agent PHẢI CHẤP HÀNH 4 nguyên tắc sau trong mỗi vòng lặp thực thi:

1. **Khởi động và Test bằng Browser Tool:**
   - Mặc định Backend (cổng 5000) và Frontend (Vite) đã chạy (Nếu chưa chạy, gọi lệnh chạy ngầm).
   - Truy cập vào ứng dụng bằng `browser_subagent` và thao tác click/gõ phím như một User thật. Không chạy bằng script npm test ảo.

2. **Phát hiện lỗi và "Sửa theo kiểu Phẫu thuật" (Surgical Changes - CLAUDE.md):**
   - Khi phát hiện luồng bị nghẽn mặt UI hoặc Backend báo lỗi 500.
   - CHỈ SỬA TRÚNG CÁI CHỖ HỎNG. 
   - **CẤM** đụng chạm, refactor, hay "tối ưu" những đoạn code đang chạy ngon lành. Không động vào code cũ nếu nó không trực tiếp gây ra lỗi hiện tại.

3. **Cơ chế Khắc phục Database (Migration):**
   - Rất nhiều tính năng hiện tại bị lỗi là do Database SQLite đang **thiếu bảng** (ví dụ thiếu `cuccu_inbox`, `cuccu_attachments`, `cuccu_teams_...`).
   - Nếu lỗi trả về từ API/Backend là do thiếu DB/Column, Agent **PHẢI** tạo các Script Migration (code Python) ném vào thư mục `miniapp/cuccu_note/backend/db/migrate`.
   - Chạy script migrate này trước khi test lại.

4. **Vòng lặp Vô hạn (Loop until Done):**
   - Quy trình phải là: **[Test bằng Browser] -> [Thấy Lỗi] -> [Tìm nguyên nhân: API/DB/UI] -> [Sửa Code / Viết Migrate] -> [Test Lại bằng Browser]**.
   - Nếu Xong -> Đánh dấu X vào ô Checkbox (Tích `[x]`) ở danh sách bên dưới và tiếp tục tính năng mới.

---

# Danh sách kiểm thử (Agent tự động tích [x] sau khi pass)

Dưới đây là các User Flow cần được mô phỏng test bằng Browser Tool:

## Core Database Setup
- [ ] Rà soát source file `sqlite_client.py` để lấy danh sách toàn bộ constants Tables (VD: TABLE_TEAMS, TABLE_INBOX,...). So khớp với `memos.db` và chạy script tạo Migration Tool cho các bảng còn thiếu.
- [ ] Database đã được migrate đầy đủ các bảng cần thiết.

## 1. Xác thực & Phân quyền (Auth)
- [ ] Đăng ký tài khoản User mới qua giao diện.
- [ ] Login (Đăng nhập) thành công và điều hướng vào trang Dashboard/Home.
- [ ] Truy xuất thông tin Profile cá nhân.

## 2. Quản lý Ghi chú (Memo Management)
- [ ] Viết một Memo mới, nhấn Submit và đảm bảo Memo hiện lên Timeline.
- [ ] Chỉnh sửa (Edit) nội dung Memo vừa tạo.
- [ ] Thay đổi trạng thái Visibility (Private / Public / Workspace).
- [ ] Pin (Ghim) một Memo và un-pin nó.
- [ ] Đính kèm file (Upload ảnh/tài liệu) vào Memo.

## 3. Quản lý Cộng đồng / Đội nhóm (Teams)
- [ ] Chuyển hướng sang page Teams / Workspace.
- [ ] Tạo một Team mới với Tên và Mô tả.
- [ ] Viết một Memo mới ở phạm vi không gian Team (Workspace Memo).

## 4. Tương tác Mạng Xã Hội (Reactions & Comments)
- [ ] Thả cảm xúc (Reaction - Emoji) vào một bài Memo có sẵn.
- [ ] Viết một bình luận (Comment) phản hồi vào Memo của người khác.

## 5. Trung tâm Thông báo (Inbox System)
- [ ] Agent tự kích hoạt một thông báo đẩy về hệ thống.
- [ ] Truy cập mục The Inbox, đảm bảo thông báo hiển thị.
- [ ] Click Mark as Read (Đánh dấu đã đọc).

## 6. Tính năng Trí Tuệ Nhân Tạo (Chatbot)
- [ ] Mở mục Chatbot (Panel hoặc Page riêng).
- [ ] Chat với AI một câu chào hỏi đơn giản, đợi AI Loading và hiển thị luồng stream.
- [ ] Viết một truy vấn RAG kêu AI tổng hợp nội dung các Memo bạn vừa tự tạo ở Bước 2. Đảm bảo trả kết quả chuẩn.

---
*(Lặp lại cho đến khi toàn bộ tích `[x]` được hoàn thiện! Cuối cùng in ra thông báo hoàn thành.)*
