# Tác Vụ Shard Tài Liệu

## Mục đích
Phân rã tài liệu lớn (PRD, kiến trúc, epic) thành các story triển khai được, tuân chuẩn BMAD-METHOD và cung cấp ngữ cảnh đầy đủ cho phát triển do AI thực thi.

## Khi dùng
**Dùng khi:**
- Chuyển PRD đầy đủ thành stories
- Bẻ nhỏ kiến trúc kỹ thuật thành tác vụ triển khai
- Chuyển epic thành stories quản lý được
- Cần bộ stories phối hợp từ đặc tả lớn
- Tuân mẫu sharding story của BMAD-METHOD

**Đầu vào thường gặp:** PRD, tài liệu kiến trúc, epic nghiệp vụ, đặc tả chức năng.

## Điều kiện tiên quyết
**Đầu vào bắt buộc:** tài liệu nguồn cần shard; hiểu rõ năng lực dev & cấu trúc sprint; phiên bản Odoo mục tiêu & ràng buộc kỹ thuật; ưu tiên và timeline của stakeholder.  
**Cấu trúc tài liệu kỳ vọng:** yêu cầu & mục tiêu nghiệp vụ rõ; chỉ dẫn kỹ thuật/kiến trúc; persona & workflow; tiêu chí chấp nhận/thành công.

## Quy trình shard

### 1) Phân tích & chuẩn bị tài liệu
**Đánh giá tài liệu**
- Loại tài liệu: [PRD/Architecture/Epic/Other]
- Phạm vi nghiệp vụ: [năng lực chính]
- Độ phức tạp kỹ thuật
- Ảnh hưởng người dùng
- Yêu cầu tích hợp
- Ràng buộc timeline

**Chiến lược shard**
- Story size mục tiêu (ví dụ: 2-5 ngày dev)
- Độ dài sprint
- Số pha giao hàng
- Dependencies chính ảnh hưởng thứ tự

### 2) Phân rã giá trị nghiệp vụ
**Xác định value streams** (giá trị có thể giao độc lập)
```yaml
value_streams:
  stream_1:
    name: "[Value Stream 1]"
    business_value: "[Giá trị mang lại]"
    user_impact: "[Người dùng hưởng lợi]"
    complexity: "[H/M/L]"
    dependencies: "[Điều kiện tiên quyết]"
  stream_2:
    name: "[Value Stream 2]"
    ...
```

**Nhận diện story trong từng stream**
```yaml
value_stream_stories:
  stream_1_stories:
    - story_concept: "[Ví dụ: User registration]"
      user_persona: "[Persona]"
      business_value: "[Giá trị]"
      estimated_complexity: "[Story points/ước tính]"
    - story_concept: "[Ví dụ: Authentication & security]"
      ...
```

### 3) Ánh xạ kiến trúc kỹ thuật
**Thành phần kỹ thuật cần có**
```yaml
technical_components:
  models:
    - component: "[model.name]"
      purpose: "[Mục đích]"
      complexity: "[H/M/L]"
      dependencies: "[Phụ thuộc kỹ thuật]"
  views:
    - component: "[view name]"
      purpose: "[UI purpose]"
      complexity: "[H/M/L]"
      dependencies: "[Models/data liên quan]"
  integrations:
    - component: "[integration name]"
      purpose: "[Mục đích tích hợp]"
      complexity: "[H/M/L]"
      dependencies: "[Hệ thống/API ngoài]"
```

**Mapping story ↔ component**
```yaml
story_component_mapping:
  story_1:
    components:
      - models: "[Models cho story]"
      - views: "[Views cho story]"
      - integrations: "[Tích hợp cần có]"
      - tests: "[Yêu cầu kiểm thử]"
```

### 4) Soạn story chi tiết
Áp dụng template cho từng story:
```yaml
story_details:
  story_id: "[STORY-ID]"
  title: "[Tiêu đề]"

  user_story: |
    As a [persona],
    I want [capability],
    So that [measurable value].

  business_context: |
    [Bối cảnh nghiệp vụ, lý do, vị trí trong mục tiêu tổng thể]

  technical_context: |
    [Kiến trúc/triển khai, tích hợp, hiệu năng, bảo mật]

  acceptance_criteria:
    functional:
      - criteria: |
          GIVEN [context]
          WHEN [action]
          THEN [expected result]
    non_functional:
      - performance: "[Yêu cầu hiệu năng]"
      - security: "[Yêu cầu bảo mật]"
      - usability: "[Yêu cầu UX]"

  implementation_guidance:
    approach: "[Cách tiếp cận kỹ thuật]"
    components: "[Thành phần sẽ tạo/sửa]"
    patterns: "[Design patterns cần tuân]"

  tasks:
    - category: "[Ví dụ: Models]"
      items:
        - task: "[Nhiệm vụ cụ thể]"
          estimated_effort: "[Ước tính]"
```

### 5) Ưu tiên & sắp xếp story
**Phân tích phụ thuộc**
```yaml
story_dependencies:
  story_1:
    prerequisites:
      - "[Story phải xong trước]"
      - "[Phụ thuộc ngoài]"
    enables:
      - "[Story kích hoạt]"
    risk_factors:
      - "[Rủi ro ảnh hưởng timeline]"
```

**Lập chuỗi giao hàng**
```yaml
delivery_phases:
  phase_1:
    name: "[MVP/Phase 1]"
    business_objective: "[Giá trị phase]"
    stories:
      - id: "[STORY-ID-1]"
        priority: "High"
        rationale: "[Lý do nằm ở phase 1]"
    success_criteria: "[Cách đo thành công phase]"
  phase_2:
    ...
```

### 6) Kế hoạch đảm bảo chất lượng
**Chiến lược kiểm thử xuyên story**
```yaml
testing_strategy:
  integration_testing:
    scope: "[Điểm tích hợp giữa stories]"
    approach: "[Cách test]"
    validation: "[Tiêu chí đạt]"
  user_acceptance_testing:
    scenarios: "[Kịch bản end-to-end]"
    stakeholders: "[Ai tham gia UAT]"
    success_criteria: "[Tiêu chí hoàn tất UAT]"
  performance_testing:
    scope: "[Yêu cầu hiệu năng]"
    benchmarks: "[Benchmark cần đạt]"
    validation: "[Cách đo/kiểm]"
```

**Quality gates cấp story & phase**
```yaml
quality_gates:
  story_completion:
    - "AC đầy đủ"
    - "Unit tests pass"
    - "Code review hoàn tất"
  phase_completion:
    - "Integration tests pass"
    - "UAT được xác nhận"
    - "Benchmarks hiệu năng đạt"
```

### 7) Đánh giá rủi ro & giảm thiểu
**Rủi ro xuyên story**
```yaml
risks:
  technical_risks:
    - risk: "[Rủi ro kỹ thuật]"
      impact: "[H/M/L]"
      probability: "[H/M/L]"
      affected_stories: "[Story bị ảnh hưởng]"
      mitigation: "[Cách giảm thiểu]"
  business_risks:
    - risk: "[Rủi ro nghiệp vụ]"
      impact: "[H/M/L]"
      probability: "[H/M/L]"
      affected_stories: "[Story bị ảnh hưởng]"
      mitigation: "[Giảm thiểu]"
```

### 8) Thẩm định & hoàn tất
**Độ đầy đủ**
- [ ] Bao phủ toàn bộ yêu cầu nghiệp vụ nguồn
- [ ] Mỗi story có giá trị độc lập đo được
- [ ] Kiến trúc kỹ thuật được xử lý đầy đủ
- [ ] Persona & workflow được hỗ trợ
- [ ] Yêu cầu tích hợp được đề cập

**Tính khả thi**
- [ ] Ước tính khớp năng lực dev
- [ ] Dependencies có timeline xử lý thực tế
- [ ] Cách tiếp cận kỹ thuật vững
- [ ] Nguồn lực sẵn có
- [ ] Timeline khả thi

**Căn chỉnh stakeholders**
- [ ] Nghiệp vụ phê duyệt breakdown
- [ ] Kỹ thuật xác nhận approach
- [ ] Ưu tiên/thứ tự phù hợp mục tiêu
- [ ] Yêu cầu chất lượng thống nhất
- [ ] Chiến lược giảm rủi ro được chấp thuận

## Template đầu ra
**Tóm tắt bộ story**
```yaml
sharding_summary:
  source_document: "[Tên & phiên bản]"
  sharding_date: "[Ngày shard]"
  total_stories: "[Số story]"
  estimated_total_effort: "[Tổng effort]"
  delivery_phases: "[Số pha]"

story_collection:
  - story_id: "[STORY-ID-1]"
    title: "[Tiêu đề]"
    priority: "[H/M/L]"
    phase: "[Pha]"
    estimated_effort: "[Effort]"
    dependencies: "[Dependencies]"
  - story_id: "[STORY-ID-2]"
    ...

delivery_roadmap:
  phase_1:
    stories: "[IDs]"
    business_value: "[Giá trị]"
    timeline: "[Thời gian]"
  phase_2:
    stories: "[IDs]"
    business_value: "[Giá trị]"
    timeline: "[Thời gian]"

cross_story_considerations:
  integration_points: "[Điểm tích hợp chính]"
  shared_components: "[Thành phần dùng chung]"
  testing_strategy: "[Chiến lược test tổng thể]"
  risk_mitigation: "[Rủi ro chính & giảm thiểu]"
```

## Tiêu chí thành công
1) Bao phủ đầy đủ yêu cầu nguồn  
2) Mỗi story có giá trị độc lập đo được  
3) Story sẵn sàng triển khai với ngữ cảnh đầy đủ  
4) Phạm vi thực tế với năng lực & timeline  
5) Dependencies rõ và có kế hoạch xử lý  
6) Chiến lược kiểm thử bảo đảm phủ hết  
7) Stakeholder phê duyệt breakdown & cách tiếp cận

## Hướng dẫn quan trọng
- **Giá trị nghiệp vụ**: mọi story phải có giá trị đo được; ưu tiên để giao sớm  
- **Nhất quán kỹ thuật**: giữ kiến trúc đồng bộ; quản lý thành phần dùng chung  
- **Hiệu quả phát triển**: chia story vừa sức; giảm phụ thuộc; cung cấp ngữ cảnh đủ để không phải tra cứu thêm  
- **QA**: định nghĩa AC rõ; quality gates cho story/phase; kế hoạch test xuyên story

Sharding hiệu quả biến đặc tả lớn thành các story khả thi, giữ nguyên bối cảnh nghiệp vụ và tính mạch lạc kỹ thuật, giúp tăng tốc và nâng chất lượng phát triển.***