## Mục đích
- Tóm tắt cách các thư mục trong `.bmad-odoo-dev` liên kết và hỗ trợ nhau khi vận hành bộ tác nhân Odoo.
- Làm rõ luồng thực thi từ yêu cầu người dùng → chọn tác nhân → chạy tác vụ → dùng mẫu/checklist → tạo tài liệu/đầu ra.
- Biểu đồ Mermaid hiển thị được ngay trong Markdown Preview (Mermaid enabled).

## Cấu trúc và vai trò thư mục
- `agents/`: Định nghĩa persona và lệnh cho từng vai trò (analyst, architect, developer, QA, PM, SM). Mỗi agent liệt kê dependencies cần bật khi thực thi.
- `tasks/`: Quy trình thao tác cụ thể (ví dụ: `create-odoo-addon.md`, `create-odoo-epic.md`, `create-next-story.md`, `plan-odoo-migration.md`). Nhiệm vụ sẽ gọi template/checklist tương ứng và sinh đầu ra.
- `templates/`: Khung tài liệu dùng để điền (PRD, Epic, Story, Architecture, Quick Addon). Được các task và agent tham chiếu.
- `checklists/`: Danh sách kiểm tra chuẩn hóa (ví dụ: module dev, migration, story draft) để đảm bảo chất lượng và tính đầy đủ.
- `data/`: Kiến thức nền và ghi chú tham khảo (ví dụ: `odoo-knowledge-base.md`) hỗ trợ quyết định nghiệp vụ/kỹ thuật.
- `config.yaml` & `install-manifest.yaml`: Metadata pack, phiên bản, và liệt kê file; không tham gia trực tiếp luồng nghiệp vụ nhưng dùng cho quản trị/cài đặt.

## Phạm vi thư mục mã nguồn
- Phát triển custom: `Odoo-DPT/**`, `Odoo-DX/**`
- Core Odoo (chỉ đọc/không chỉnh trực tiếp): `enterprise/**`, `addons/**`
- Pattern file để phân tích logic: `**/*.py`, `**/*.xml`

## Quy trình liên kết tổng quát
1) Người dùng chọn tác nhân (ví dụ `odoo-analyst`) → agent kích hoạt persona, expose các lệnh.
2) Agent nhận yêu cầu → ánh xạ sang task phù hợp (theo `commands` và `dependencies` trong file agent).
3) Task được thực thi:
   - Nếu cần khung tài liệu, task gọi `templates/…` để tạo PRD/Epic/Story/Architecture.
   - Nếu cần kiểm soát chất lượng, task gọi `checklists/…` và yêu cầu người dùng/agent tick các mục.
   - Nếu cần tri thức, task/agent tham chiếu `data/odoo-knowledge-base.md` để tra cứu quy trình Odoo, module, best practices.
4) Đầu ra: tài liệu hoặc hiện vật phát triển (PRD, Epic, Story, kế hoạch migration, hướng dẫn deploy, addon skeleton). Đầu ra thường được ghi vào thư mục dự án người dùng chỉ định (không nằm trong `.bmad-odoo-dev`).
5) Vòng lặp phản hồi: người dùng/QA/SM rà soát bằng checklist, cập nhật tài liệu qua agent tương ứng, sau đó chuyển tiếp cho developer/architect để triển khai.

## Biểu đồ tuần tự (Mermaid)
```mermaid
%%{init: {
  "theme": "default",
  "themeVariables": {
    "primaryColor": "#f5f5f5",
    "primaryBorderColor": "#0f172a",
    "primaryTextColor": "#0f172a",
    "lineColor": "#0f172a",
    "textColor": "#0f172a",
    "secondaryTextColor": "#0f172a",
    "noteTextColor": "#0f172a",
    "fontSize": "14px",
    "fontFamily": "Inter, Arial, sans-serif"
  }
}}%%
sequenceDiagram
    participant User as Người dùng
    participant Agent as Agent (ví dụ: odoo-analyst)
    participant Task as Task trong tasks/
    participant Template as Template / Checklist
    participant Data as data/odoo-knowledge-base.md
    participant Output as Tài liệu/Kết quả

    User->>Agent: Yêu cầu (tạo Epic/Story/PRD…)
    Agent->>Agent: Ánh xạ lệnh -> chọn Task phù hợp
    Agent->>Task: Kích hoạt quy trình (dependencies)
    Task-->>Template: Nạp khung PRD/Epic/Story hoặc checklist
    Task-->>Data: Tra cứu kiến thức Odoo khi cần
    Template-->>Task: Trả khung cần điền
    Data-->>Task: Cung cấp thông tin tham khảo
    Task->>Agent: Yêu cầu điền dữ liệu / xác nhận checklist
    Agent->>User: Hỏi thông tin, xác nhận bước
    User-->>Agent: Cung cấp dữ liệu nghiệp vụ/kỹ thuật
    Agent-->>Task: Điền khung, cập nhật checklist
    Task->>Output: Sinh tài liệu/kết quả (PRD/Epic/Story/KH migration)
    Output-->>User: Bàn giao đầu ra
```

## Ghi chú sử dụng nhanh
- Tra cứu nhanh tri thức: mở `data/odoo-knowledge-base.md`.
- Muốn đảm bảo chất lượng đầu ra: ép chạy checklist liên quan trong `checklists/`.
- Tạo tài liệu mới: dùng agent → chạy task tương ứng → task sẽ kéo template cần thiết.
- Thêm quy trình riêng: tạo task mới trong `tasks/` và trỏ đến template/checklist/data phù hợp.

