# Kế Hoạch: Tab Quản Lý Tiến Độ Dự Án

**Summary**
- Thêm tab mới `Tiến độ` trong chi tiết dự án để AI tạo WBS, timeline, dependency và task board/Kanban từ tri thức dự án.
- Mỗi lần AI tạo kế hoạch sẽ tạo **version mới**, không ghi đè version cũ.
- Thành viên dự án có thêm `skill_tags` dạng tag để AI phân bổ công việc theo kỹ năng.
- Không làm budget; resource chỉ là phân bổ nhân sự theo task, ngày bắt đầu/kết thúc, estimate giờ/ngày.

**Key Changes**
- Mở rộng Project Member:
  - Thêm `skill_tags: string[]` vào member payload/response/document.
  - Tab `Thành viên` thêm cột `Kỹ năng/Công việc` với tag editor.
  - Owner/admin được sửa tag kỹ năng; member thường chỉ xem.
- Thêm backend module schedule:
  - Collection `project_schedules`: `project_id`, `version`, `title`, `start_at`, `end_at`, `status`, `workflow_columns`, `generated_by`, `is_active`, metadata AI.
  - Collection `project_schedule_tasks`: `schedule_id`, `project_id`, `wbs_code`, `parent_id`, `title`, `description`, `required_skill_tags`, `assignee_user_ids`, `start_at`, `end_at`, `estimated_hours`, `dependency_task_ids`, `status_id`, `sort_order`, `progress`, `created_by_ai`.
  - API chính:
    - `GET /projects/{project_id}/schedules`
    - `POST /projects/{project_id}/schedules/generate`
    - `GET /projects/{project_id}/schedules/{schedule_id}`
    - `PATCH /projects/{project_id}/schedules/{schedule_id}`
    - `POST/PATCH/DELETE /projects/{project_id}/schedules/{schedule_id}/tasks`
    - `PATCH /projects/{project_id}/schedules/{schedule_id}/workflow`
- AI generation:
  - Modal tạo kế hoạch có datepicker chọn `start_at` và `end_at`.
  - Backend lấy project metadata, deadline, documents, meetings, approved contributions, summaries nếu có, và `skill_tags` của members.
  - AI trả JSON có WBS, dependencies, estimates, recommended assignees, risks/gaps ngắn.
  - Nếu tri thức thiếu, vẫn tạo kế hoạch high-level từ project description và đánh dấu `confidence/gaps`.
- Tab `Tiến độ` UI:
  - Empty state + nút `Tạo kế hoạch`.
  - Version selector để xem các plan cũ.
  - View chính gồm:
    - Timeline/Gantt đơn giản theo ngày.
    - WBS table: task, assignee, estimate, start/end, dependency, status.
    - Kanban board với trạng thái tùy chỉnh.
    - Workload panel theo thành viên: ai đang được giao việc gì, từ ngày nào đến ngày nào.
  - Workflow columns tùy chỉnh theo schedule; mặc định: `Backlog`, `Todo`, `In Progress`, `Review`, `Done`, nhưng owner/admin có thể đổi tên/thêm/xóa/sắp xếp.
- Quyền:
  - Owner/admin: tạo schedule, tạo version, sửa task, sửa workflow, assign task.
  - Member: xem schedule, cập nhật status/comment task được giao.
  - Không đưa schedule/task vào Chroma trong v1; đây là dữ liệu vận hành, không phải tri thức nguồn.

**Test Plan**
- Backend:
  - Tạo project member với `skill_tags`, update và response không mất dữ liệu.
  - Generate schedule với start/end hợp lệ, tạo version mới và task tương ứng.
  - Reject start date sau end date.
  - Generate nhiều lần tạo nhiều version, chỉ version mới nhất `is_active=true`.
  - Member không có quyền admin không được generate/edit workflow.
  - Assigned member chỉ cập nhật được task được giao.
- Frontend:
  - Tab `Thành viên` hiển thị/sửa tag kỹ năng đúng quyền.
  - Tab `Tiến độ` empty state, modal datepicker, loading/error/success.
  - Version selector đổi đúng dữ liệu.
  - Kanban drag/drop hoặc đổi status cập nhật task.
  - Timeline/WBS hiển thị đúng task dependency và assignee.
- AI:
  - Test với project ít dữ liệu, project nhiều tài liệu, và project có nhiều thành viên skill khác nhau.
  - Kiểm tra AI không tạo task ngoài phạm vi tri thức nếu không có căn cứ; nếu suy luận thì ghi vào gaps/assumptions.

**Assumptions**
- Tên tab dùng tiếng Việt là `Tiến độ`, tiếng Anh `Schedule`, tiếng Nhật `スケジュール`.
- V1 dùng toàn bộ tri thức dự án khi generate, chưa thêm bước chọn riêng tài liệu/cuộc họp.
- Không làm ngân sách, máy móc, cost tracking trong v1.
- Custom workflow là per-schedule, không phải global template cho toàn hệ thống.
