# Checklist sẵn sàng tạo PR Dùng bởi `fix-implementer` (bước 9) và `regression-reviewer` (bước 8). Bám theo `.gitea/PULL_REQUEST_TEMPLATE.md` và `docs/governance/definition-of-done.md`. ## A. Cổng chất lượng - [ ] `python scripts/run_quality_gate.py` — xanh cả 5 cổng, **có dán output thật**. - [ ] Gate C: `domain/`/`application/` không import PySide6/PyQt/`ui`/`app`. - [ ] Gate A: không secret/plaintext mới. - [ ] Gate S: không file nào > 400 LOC. - [ ] Gate O: không module mồ côi (file mới đã được import trong cùng commit). - [ ] Gate A/N: pytest xanh; test vốn đỏ từ trước được ghi riêng. ## B. Kiểm chứng - [ ] Test regression tồn tại và **đỏ trước / xanh sau**. - [ ] Test chạy được headless (`QT_QPA_PLATFORM=offscreen`). - [ ] Đã kiểm bằng mắt ở dark + light — hoặc ghi rõ "chưa kiểm chứng bằng mắt" kèm lý do. - [ ] Đã kiểm ở các ngôn ngữ liên quan. ## C. Phạm vi & lịch sử - [ ] Một PR = một thay đổi logic. Không refactor lẫn vào. - [ ] Không đổi format/indent toàn file; diff đọc được. - [ ] Nhánh riêng, không commit thẳng `main`. - [ ] Commit message nêu nguyên nhân gốc + `file:line` + issue. - [ ] Không commit `.env`, `config.json` local, dữ liệu dưới `.cowork_local/`, `.venv`. ## D. Bảo mật - [ ] Không secret/PII/đường dẫn cá nhân trong code, test fixture, commit message, PR body. - [ ] Ảnh chụp màn hình đính kèm đã được redact. - [ ] Nếu chạm permission / credential / MCP write-exec / sandbox / network / TLS / isolation / model routing / xoá dữ liệu → đánh dấu `security-review: required` và ghi rõ trong PR rằng **CI xanh không đủ để merge**. ## E. Nội dung PR - [ ] Summary nói **tại sao**, không chỉ **cái gì**. - [ ] Change Type đã tick. - [ ] Scope: nêu rõ cả phần **cố ý không** làm. - [ ] Validation: có lệnh và output thật. - [ ] Security Impact: đã điền, kể cả khi là "không có". - [ ] Compatibility: đã tick. - [ ] Reviewer Notes: chỉ ra chỗ cần soi kỹ nhất. - [ ] Tài liệu (`docs/`, ảnh `docs/screens/`) đã cập nhật nếu cần. ## F. Ranh giới - [ ] Agent **không** tự merge, **không** tự đóng issue. - [ ] Nếu là đóng góp của FSG AI Core: hiểu rằng chỉ "Done" khi PR đã merge vào Cowork Local, kèm đủ core issue reference, PR, evidence, reviewer phía Cowork, merge reference.