# Skill: Viết Đặc tả Use Case (Use Case Specification) - Phiên bản v1

## 1. Mục đích (Purpose)
Kỹ năng này giúp BA chuyển hóa toàn bộ các thông tin yêu cầu nghiệp vụ đã được thống nhất sau quá trình Q&A thành một tài liệu Đặc tả Use Case (Use Case Spec) hoàn chỉnh. Tài liệu này là "nguồn sự thật duy nhất" (Single Source of Truth) giúp đội ngũ Dev lập trình chính xác và đội ngũ Test thiết kế toàn bộ kịch bản kiểm thử (Test Cases/Scripts).

Ngôn ngữ output: auto-detect theo ngôn ngữ của ticket/task input — xem `custom/rules/output-language.md` (input tiếng Việt → output tiếng Việt; ngược lại mặc định tiếng Anh).

## 2. Kiến thức cần có (Prerequisite Knowledge)
- **Cấu trúc Use Case chuẩn:** Hiểu rõ các thành phần của một Use Case Spec bao gồm: Thông tin chung, Mô tả màn hình, Mô tả thành phần UI, Luồng hoạt động (Activity Flow) và Quy tắc nghiệp vụ (Business Rules).
- **Cách mô tả Luồng xử lý (Flow):** 
  - Phân biệt hành động của Tác nhân (Actor Action) và phản hồi của Hệ thống (System Response).
  - Trình bày mạch lạc theo các bước đánh số thứ tự (1, 2, 3...).
- **Tính liên kết logic:** Đảm bảo mã lỗi, thông báo lỗi trong Business Rules phải khớp với các mô tả thành phần UI và vị trí hiển thị lỗi trên Prototype.

## 3. Quy trình thực hiện (Step-by-step Process)
- **Bước 1: Điền thông tin chung (General Information):**
  Xác định chính xác Function Name, Description, Actors, Trigger, Pre-Conditions, Main Flow tóm tắt, và Post-Conditions.
- **Bước 2: Tích hợp thiết kế màn hình:**
  Nhúng mã nguồn HTML/CSS (hoặc đường dẫn liên kết) của màn hình thiết kế tương ứng vào mục Screen Description.
- **Bước 3: Mô tả các thành phần UI (UI Components):**
  Lập bảng chi tiết tất cả các control trên giao diện (các input fields, buttons, links, labels). Đối với mỗi thành phần, cần làm rõ:
    - Kiểu dữ liệu nhập vào (Text, Number, Date...).
    - Độ dài giới hạn (Min/Max length).
    - Tính bắt buộc (Mandatory: Yes/No).
    - Giá trị mặc định (Default Value).
    - Mô tả hành vi (Description).
- **Bước 4: Thiết kế sơ đồ Mermaid (Activity Flow):**
  Áp dụng kỹ năng `@skill-ba-mermaid-flowchart-v1.md` để vẽ và nhúng biểu đồ Mermaid.
- **Bước 5: Đặc tả Business Rules (Quy tắc nghiệp vụ):**
  Áp dụng kỹ năng `@skill-ba-build-business-rules-v1.md` để viết chi tiết các điều kiện kiểm tra, validation logic và câu thông báo lỗi đi kèm.

## 4. Checklist kiểm tra (Checklist for Verification)
- [ ] Luồng đi (Flow) có mô tả rõ ràng sự tương tác qua lại giữa Actor và System chưa?
- [ ] Bảng mô tả UI Components có bị bỏ sót bất kỳ thành phần nào trên prototype HTML không?
- [ ] Các Business Rules (BR) đã được đánh mã số rõ ràng (BR1, BR2, BR3...) để dễ tham chiếu chưa?
- [ ] Mọi trường hợp báo lỗi đều có câu thông báo lỗi (Error message) đi kèm chi tiết chưa?
- [ ] Tài liệu có sử dụng định dạng markdown chuẩn và cấu trúc thống nhất theo mẫu `@skill-ba-uc-template-v1.md` chưa?

## 5. Output mong đợi (Expected Output)
- Một tài liệu đặc tả Use Case hoàn chỉnh định dạng markdown, đặt tên theo chuẩn: `UC-Spec_v1.md` trong thư mục `02.BA-Specs/04.UC-Specs/[functionId]/`.
