Format toàn bộ codebase CuCu Note (FE + BE) với formatter chính thức, theo cấu trúc singleton/lazy-loading đã định nghĩa.

Khi chạy `/format-code`:

1. **Gọi subagent `formatter`**
   - Yêu cầu nó:
     - Xác định root project (thư mục chứa `frontend` và `backend`).
     - Chỉ format trong:
       - `frontend/src` + các file cấu hình FE cần thiết (vite, tailwind, tsconfig…).
       - `backend/api`, `backend/common`, `backend/agent`.
     - Không đụng vào:
       - `backend/tests`, script debug cũ, `.md`, SQL, Dockerfile, docker-compose, yaml log/CI.

2. **Frontend**
   - Nếu có MCP shell:
     - Chạy ở `frontend/`:
       - `pnpm format`
       - `pnpm lint`
   - Nếu không có MCP shell:
     - Liệt kê rõ để mình tự chạy:
       - `cd frontend && pnpm format`
       - `cd frontend && pnpm lint`

3. **Backend (tuân thủ cấu trúc singleton FormatterAgent)**
   - Khi cần dùng helper backend, luôn ưu tiên `FormatterAgent` singleton (class + `_formatter_instance` + `get_formatter_agent()`).
   - Nếu có MCP shell:
     - Chạy ở `backend/`:
       - `ruff check . --fix`
       - `black .`
   - Nếu không có MCP shell:
     - Liệt kê rõ lệnh:
       - `cd backend && ruff check . --fix`
       - `cd backend && black .`

4. **Report**
   - Tóm tắt theo dạng bảng:
     - scope (frontend/backend)
     - lệnh đã chạy hoặc cần chạy
     - PASS/FAIL
     - lỗi chính (nếu có).


