AGENTS.md — Quy tắc cho AI Agent dự án CXK
Đọc file này TRƯỚC khi bắt đầu bất kỳ tác vụ nào.
1. Tổng quan & Vai trò
| Thông tin | Chi tiết |
|---|---|
| Dự án | Trợ lý AI Cơ Xương Khớp Tuổi Bạc (CXK) — Đề tài NCKH cấp PTTH |
| Mục tiêu | AI giúp người cao tuổi VN tự chăm sóc hệ CXK, phát hiện cờ đỏ (red flag) cần đi khám |
| Hạ tầng | Windows Server 2022 + IIS 10 + MSSQL 2022 + Python/FastAPI + Vue 3 |
| Viết tắt | Tên | Vai trò |
|---|---|---|
| NCS1 | Võ Trần Gia Hiếu (10A6, PTTH Xuân Đỉnh) | Nghiên cứu chính, core MVP |
| NCS2 | Đỗ Đoàn Anh Tuấn (10A6, PTTH Xuân Đỉnh) | Module camera quan sát cử động |
| CVYK | Lương y Vũ Thế Sỹ | Thẩm định nội dung y khoa |
| GVHD | Nguyễn Đảm | Hướng dẫn NCKH, review output, ký gate |
| VAGA | Công ty Vaga | Bảo trợ công nghệ (chỉ dùng ở credit/sponsor) |
Quy tắc dùng tên:
- ❌ "Tác giả" → ✅ "Nghiên cứu sinh" / "NCS"
- ❌ "Chuyên gia y khoa" → ✅ "CVYK" / "Lương y Vũ Thế Sỹ"
- ❌ Tên cũ nhà bảo trợ → ✅ "Công ty Vaga" (chỉ ở phần bảo trợ)
- ✅ "bác sĩ" — giữ nguyên khi nói chung ("nên đi khám bác sĩ")
2. Ngôn từ & Thuật ngữ (BẮT BUỘC)
- Viết đơn giản (đối tượng: học sinh PTTH), câu ≤25 từ.
- Tiếng Anh chỉ dùng cho tên kỹ thuật, lần đầu kèm giải thích: "bộ lọc an toàn (safety layer)".
- Giọng văn trung tính, khoa học, gần gũi.
- KHÔNG tạo thuật ngữ mới nếu chưa có trong Glossary.
Bảng thuật ngữ chuẩn (hay nhầm nhất)
| ❌ KHÔNG dùng | ✅ Dùng chuẩn |
|---|---|
| knowledge item/card | thẻ tri thức (knowledge card) |
| evidence item | thẻ bằng chứng (evidence card) |
| red flag, dấu hiệu nguy hiểm | cờ đỏ (red flag) |
| triage, phân loại rủi ro | phân loại mức độ (triage) |
| safety layer, tầng an toàn | bộ lọc an toàn (safety layer) |
| disclaimer, tuyên bố miễn trừ | lời khuyên an toàn (disclaimer) |
| gate, cổng chất lượng | cổng kiểm soát (quality gate) |
| pipeline, dây chuyền xử lý | quy trình (pipeline) |
| taxonomy, phân loại | bảng phân loại (taxonomy) |
| provenance, xuất xứ | truy vết nguồn (provenance) |
| benchmark | bộ kiểm thử chuẩn (benchmark) |
| accessibility | trợ năng (accessibility) |
Đầy đủ → docs/GLOSSARY.md. Ngoại lệ: knowledge-base/sources/ KHÔNG sửa (tài liệu y khoa gốc).
3. Cấu trúc thư mục (6 tầng)
flowchart TB ROOT["📁 CXK (Hệ Thống Trợ Lý AI)"] T1["📄 T1: Tài liệu & Nghiên cứu
docs/ (Báo cáo, kế hoạch, nhật ký)"] T2["🏥 T2: Kho tri thức y khoa
knowledge-base/ (QĐ 361, ĐHYHN, thẻ tri thức)"] T3["🛡️ T3: An toàn y khoa
safety/ (Cờ đỏ, rủi ro, phân loại mức độ)"] T4["⚙️ T4: Kỹ thuật
backend, frontend, voice, bot, camera"] T5["🧪 T5: Kiểm thử & Nghiên cứu NCT
testing/ (Benchmark, user research)"] T6["🌱 T6: Vận hành & Cộng đồng
community/, deployment/ (IIS, MSSQL)"] ROOT --> T1 ROOT --> T2 ROOT --> T3 ROOT --> T4 ROOT --> T5 ROOT --> T6 style ROOT fill:#006949,stroke:#004d36,color:#ffffff,stroke-width:2px,rx:8,ry:8 style T1 fill:#e8f5f0,stroke:#006949,stroke-width:1.5px,rx:6,ry:6 style T2 fill:#e8f5f0,stroke:#006949,stroke-width:2px,rx:6,ry:6 style T3 fill:#fee2e2,stroke:#b91c1c,stroke-width:2px,rx:6,ry:6 style T4 fill:#e0f2fe,stroke:#0369a1,stroke-width:1.5px,rx:6,ry:6 style T5 fill:#f4fae6,stroke:#8cb820,stroke-width:1.5px,rx:6,ry:6 style T6 fill:#fef3c7,stroke:#b45309,stroke-width:1.5px,rx:6,ry:6
Chi tiết → README.md | docs/INDEX.md
4. Quy trình review y khoa & Trạng thái
flowchart LR A["🤖 AI Draft
Tạo bản thảo tự động"] --> B["📝 NCS Review
Kiểm tra nguồn & schema"] B --> C["🩺 CVYK Review
Thẩm định lâm sàng"] C --> D["✅ APPROVED
Phê duyệt chính thức"] style A fill:#e0f2fe,stroke:#0369a1,stroke-width:2px,rx:8,ry:8 style B fill:#fef3c7,stroke:#b45309,stroke-width:2px,rx:8,ry:8 style C fill:#fff1eb,stroke:#f26121,stroke-width:2px,rx:8,ry:8 style D fill:#dcfce7,stroke:#15803d,stroke-width:2px,rx:8,ry:8
| Status | Ý nghĩa |
|---|---|
DRAFT |
Chưa ai kiểm tra |
AI_REVIEWED |
AI kiểm tra tự động |
NCS_REVIEWED |
NCS xác nhận |
CLINICAL_REVIEW |
CVYK đang thẩm định |
APPROVED |
Được phê duyệt |
BLOCKED_CONFLICT |
Mâu thuẫn nguồn, chờ giải quyết |
5. Tech Stack & Convention
| Thành phần | Công nghệ | Ghi chú |
|---|---|---|
| Backend | Python 3.11+ / FastAPI | PEP 8, docstring tiếng Việt |
| Frontend | Vue 3 | Trợ năng ưu tiên (font lớn, tương phản cao) |
| Database | MSSQL 2022 | Audit log + dữ liệu người dùng |
| Hosting | IIS 10 / Windows Server 2022 | HttpPlatformHandler |
| Tri thức | YAML knowledge cards | knowledge-base/, schema knowledge-base/schemas/ |
Convention:
- Tên file: SNAKE_CASE VIẾT HOA, tiếng Việt không dấu (vd: KIEN_TRUC_DU_AN.md)
- Tên file prompt: YYYYMMDD_HHMM_PROMPT_TEN_MO_TA.md — prefix thời gian tạo (UTC+7), lưu tại docs/research/prompts/. Ví dụ: 20260926_0720_PROMPT_CAP_NHAT_TOAN_BO_NCS2_CAMERA.md
- Commit: Tiếng Việt, prefix [module] (vd: [knowledge-base] Thêm 5 KC OA)
- Link nội bộ: Luôn relative path, KHÔNG file:/// hay absolute path
6. Files quan trọng
| File | Khi nào đọc |
|---|---|
| README.md | Luôn luôn |
| docs/GLOSSARY.md | Khi viết nội dung |
| docs/INDEX.md | Khi cần bối cảnh dự án |
| docs/project/project_charter.md | Khi cần scope/mục tiêu |
| docs/project/intended_use.md | Khi viết tính năng |
| safety/risk_register.md | Khi xử lý safety |
| knowledge-base/schemas/knowledge_item_schema.yaml | Khi tạo/sửa thẻ tri thức |
| docs/research/plans/KIEN_TRUC_DU_AN.md | Khi cần kiến trúc/roadmap |
| docs/research/plans/CAMERA_MODULE_TASK_BOARD.md | Khi làm module camera |
| docs/research/reports/DEEP_RESEARCH_CAMERA.md | Khi cần bối cảnh camera |
7. KHÔNG được làm
Y khoa
- ❌ Không chẩn đoán bệnh, kê đơn thuốc, khuyên bỏ thuốc, gợi ý điều trị cụ thể
- ❌ Không sửa nội dung CVYK đã APPROVED mà không có sự đồng ý
- ❌ Không dùng camera để chẩn đoán — chỉ quan sát cử động (movement observation)
- ❌ Không lưu video người dùng — xử lý on-device, chỉ lưu chỉ số
- ✅ Luôn khuyên đi khám khi phát hiện cờ đỏ
- ✅ Luôn trích dẫn nguồn cho thông tin y khoa
- ✅ Luôn cảnh báo "Camera chỉ thấy cử động bên ngoài" khi trả kết quả camera
Ngôn từ & Kỹ thuật
- ❌ Không dùng "Tác giả" — dùng "NCS"
- ❌ Không tạo thuật ngữ mới chưa có trong Glossary
- ❌ Không dùng jargon không giải thích
- ❌ Không dùng absolute path — chỉ relative path
- ❌ Không hardcode paths trong code — dùng
Path(__file__)hoặc config - ❌ Không commit secrets/credentials
- ❌ Không thay đổi schema mà không cập nhật
validate_schema.py
8. Encoding (BẮT BUỘC)
Quy tắc: Mọi file
.mdvà.pyPHẢI lưu UTF-8 không BOM.
| Hạng mục | Quy tắc |
|---|---|
| Python I/O | encoding="utf-8" cho mọi open() |
| PowerShell | -Encoding UTF8 cho Set-Content/Out-File |
| Console | $env:PYTHONIOENCODING = "utf-8" trước khi chạy scripts |
| BOM | KHÔNG dùng. Phát hiện → xoá |
| Kiểm tra/sửa | python tools/fix_encoding.py (dry-run) / --fix (dùng ftfy) |
# Đặt ở đầu mọi phiên PowerShell
$env:PYTHONIOENCODING = "utf-8"
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
9. Quản lý file trung gian
| Loại file | Vị trí cho phép |
|---|---|
| Script dùng lại | tools/ hoặc scripts/ (kèm docstring) |
| Script tạm 1 lần | Xoá ngay sau khi chạy |
| File test/draft | testing/scratch/ |
Cache, __pycache__ |
KHÔNG commit (.gitignore) |
Quy tắc: Không lưu file trung gian ở gốc, docs/, hay knowledge-base/.
10. Nhật ký hoạt động (BẮT BUỘC)
NHẬT KÝ ≠ KẾ HOẠCH. Diary ghi sự kiện ĐÃ XẢY RA, không ghi kế hoạch.
Quy trình (cuối phiên hoặc sau mỗi cụm task):
1. Xác định ngày (UTC+7).
2. File docs/diary/YYYY-MM-DD.md: chưa có → tạo theo docs/diary/_template.md; đã có → append (KHÔNG ghi đè).
3. Ghi: file đã tạo/sửa (relative path), tóm tắt 1-2 câu/task, quyết định quan trọng.
4. Nhiều phiên cùng ngày → header ### Phiên [HH:MM] — [Tên].
5. Cập nhật bản viết tay (BẮT BUỘC): Sau mỗi phiên, cập nhật section ✍️ BẢN VIẾT TAY — Phụ lục 3 ở cuối file diary với nội dung tóm tắt toàn ngày theo 6 mục PL3 (mục tiêu, dụng cụ, tiến trình, dữ liệu, lỗi/bài học, kế hoạch). NCS dùng bản này để chép tay vào sổ giấy.
KHÔNG ghi: nội dung y khoa chi tiết, kế hoạch tương lai, conversation ID, thông tin cá nhân.
Format: ✅ Xong | 🔄 Đang làm | ⚠️ Blocker. Mỗi task 1 dòng. Relative path.
11. Quy trình Obsidian & Validate
Workflow thẻ tri thức:
AI draft (Antigravity) → NCS review → Validate schema → CVYK review (Obsidian) → APPROVED
Skill: .agents/skills/cxk-obsidian/ — 7 script: create_kc, validate_schema, check_glossary, update_moc, sync_diary, build_docs_site, audit_vault.
Validate trước Gate:
python tools/check_structure.py # cấu trúc thư mục
python tools/validate_schema.py # schema thẻ tri thức
python tools/check_glossary.py # thuật ngữ
python .agents/skills/cxk-obsidian/scripts/audit_vault.py # audit vault
12. Checklist cuối phiên (BẮT BUỘC)
AI agent PHẢI thực hiện trước khi kết thúc phiên:
- [ ] Liệt kê file đã tạo/sửa
- [ ] Xoá file tạm, chuyển script hữu ích vào
tools/ - [ ] Kiểm tra không có
.pysai vị trí (gốc,docs/,knowledge-base/) - [ ]
python tools/check_structure.py— sửa HIGH ngay, MEDIUM nếu đang sửa file - [ ]
python tools/check_glossary.py— sửa HIGH ngay - [ ] Ghi diary
docs/diary/(xem Section 10) - [ ] Cập nhật
docs/INDEX.mdnếu thay đổi cấu trúc docs/ (đổi tên, di chuyển, tạo/xóa thư mục, tạo file quan trọng mới → sửa Section 5+7, tăng version, scan broken links) - [ ] Báo cáo tóm tắt cho NCS
Cập nhật lần cuối: 26/09/2026
Phiên bản: 2.1