# Ralph Task Cache
# Auto-generated from RALPH_TASK.md
# DO NOT EDIT - regenerated on task file change

source_file: RALPH_TASK.md
source_mtime: 1769696084
generated_at: 2026-01-29T15:00:11Z

tasks:
  - id: "line_18"
    line_number: 18
    status: pending
    parallel_group: 999999
    description: API backend được tổ chức rõ ràng:
    indent_level: 0
    raw_marker: -
  - id: "line_21"
    line_number: 21
    status: pending
    parallel_group: 999999
    description: Module agent (`backend/agent/*`) được dọn:
    indent_level: 0
    raw_marker: -
  - id: "line_24"
    line_number: 24
    status: pending
    parallel_group: 999999
    description: Các singleton/service quan trọng (Mongo client, ConversationManager, LLM factory, cache) có một nơi khởi tạo rõ ràng, tránh duplicate logic.
    indent_level: 0
    raw_marker: -
  - id: "line_25"
    line_number: 25
    status: pending
    parallel_group: 999999
    description: Đường dẫn, tên file, tên hàm tuân thủ convention nhất quán (snake_case cho Python, rõ domain).
    indent_level: 0
    raw_marker: -
  - id: "line_29"
    line_number: 29
    status: pending
    parallel_group: 999999
    description: Tất cả test trong `backend/tests` pass ổn định với:
    indent_level: 0
    raw_marker: -
  - id: "line_32"
    line_number: 32
    status: pending
    parallel_group: 999999
    description: Route `/api/agent/chat` và các route chính của `memos` được cover test:
    indent_level: 0
    raw_marker: -
  - id: "line_35"
    line_number: 35
    status: pending
    parallel_group: 999999
    description: Các xử lý lỗi quan trọng (validation input, timeout LLM, lỗi DB) đều:
    indent_level: 0
    raw_marker: -
  - id: "line_41"
    line_number: 41
    status: pending
    parallel_group: 999999
    description: Các đoạn code có nguy cơ N+1 hoặc vòng lặp lớn đã được rà soát:
    indent_level: 0
    raw_marker: -
  - id: "line_44"
    line_number: 44
    status: pending
    parallel_group: 999999
    description: Những chỗ cache phù hợp (ví dụ embedding, metadata ít đổi) tận dụng được `common/cache.py` hoặc service tương tự.
    indent_level: 0
    raw_marker: -
  - id: "line_45"
    line_number: 45
    status: pending
    parallel_group: 999999
    description: Các config quan trọng (model name, timeout, limit, feature flag) đọc từ cấu hình trung tâm (`config.py` / env), không hard-code rải rác.
    indent_level: 0
    raw_marker: -
  - id: "line_49"
    line_number: 49
    status: pending
    parallel_group: 999999
    description: Có hướng dẫn ngắn gọn trong `backend/readme.md` hoặc README chính:
    indent_level: 0
    raw_marker: -
  - id: "line_53"
    line_number: 53
    status: pending
    parallel_group: 999999
    description: `.ralph/guardrails.md` được cập nhật nếu backend/agent hay dính lỗi lặp lại:
    indent_level: 0
    raw_marker: -
  - id: "line_55"
    line_number: 55
    status: pending
    parallel_group: 999999
    description: Mọi file backend được sửa trong task này đều:
    indent_level: 0
    raw_marker: -
