CI / test (push) Canceled after 0s
fix các bug theo yêu cầu https://fptsoftware362-my.sharepoint.com/❌/g/personal/nampdt_fpt_com/IQAHBJ4A9xqDTLgvt2bhukJEAdRB5LRz2hbJpTivvIiBSYM?wdExp=TEAMS-TREATMENT&web=1&isSPOFile=1&ovuser=f01e930a-b52e-42b1-b70f-a8882b5d043b%2CAnhTNM1%40fpt.com&clickparams=eyJBcHBOYW1lIjoiVGVhbXMtRGVza3RvcCIsIkFwcFZlcnNpb24iOiI0OS8yNjA4MTMxOTMxNyIsIkhhc0ZlZGVyYXRlZFVzZXIiOmZhbHNlfQ%3D%3D --------- Co-authored-by: Duy Le Huu <duylh19@fpt.com> Reviewed-on: #10 Co-authored-by: Anh Tran Nguyen Minh <anhtnm1@fpt.com>
159 lines
4.4 KiB
Markdown
159 lines
4.4 KiB
Markdown
# Checklist sẵn sàng tạo PR
|
|
|
|
Checklist này được sử dụng bởi:
|
|
|
|
* `fix-implementer` — kiểm tra ở bước 9.
|
|
* `regression-reviewer` — kiểm tra ở bước 8.
|
|
|
|
Tham chiếu:
|
|
|
|
* `.gitea/PULL_REQUEST_TEMPLATE.md`
|
|
* `docs/governance/definition-of-done.md`
|
|
|
|
---
|
|
|
|
## A. Kiểm tra chất lượng
|
|
|
|
* [ ] Chạy `python scripts/run_quality_gate.py`.
|
|
Cả **5 quality gate đều phải PASS** và phải ghi lại **output thực tế**.
|
|
|
|
* [ ] **Gate C:** Các thư mục `domain/` và `application/` không được import:
|
|
- `PySide6`
|
|
- `PyQt`
|
|
- `ui`
|
|
- `app`
|
|
|
|
* [ ] **Gate A:** Không tạo thêm secret hoặc thông tin nhạy cảm dạng plaintext.
|
|
|
|
* [ ] **Gate S:** Không có file nào vượt quá **400 dòng code (LOC)**.
|
|
|
|
* [ ] **Gate O:** Không có file/module mới bị bỏ quên.
|
|
File Python mới phải được sử dụng/import trong cùng thay đổi.
|
|
|
|
* [ ] **Gate A/N:** Test phải PASS.
|
|
Nếu đã có test FAIL từ trước thì phải ghi rõ đó là **lỗi có sẵn**, không phải lỗi do bản sửa này gây ra.
|
|
|
|
---
|
|
|
|
## B. Kiểm tra bản sửa
|
|
|
|
* [ ] Có **regression test** cho lỗi đã sửa.
|
|
|
|
* [ ] Regression test phải chứng minh được:
|
|
- **Trước khi sửa:** test FAIL.
|
|
- **Sau khi sửa:** test PASS.
|
|
|
|
* [ ] Test chạy được ở chế độ headless:
|
|
`QT_QPA_PLATFORM=offscreen`
|
|
|
|
* [ ] Nếu thay đổi liên quan đến UI:
|
|
- Đã kiểm tra giao diện ở **Dark Mode**.
|
|
- Đã kiểm tra giao diện ở **Light Mode**.
|
|
- Nếu chưa thể kiểm tra bằng mắt, phải ghi rõ:
|
|
**"Chưa kiểm chứng bằng mắt"** và nêu lý do.
|
|
|
|
* [ ] Nếu thay đổi liên quan đến ngôn ngữ:
|
|
đã kiểm tra các ngôn ngữ bị ảnh hưởng.
|
|
|
|
---
|
|
|
|
## C. Kiểm tra phạm vi thay đổi và Git
|
|
|
|
* [ ] Một PR chỉ giải quyết **một thay đổi logic chính**.
|
|
Không đưa refactor không liên quan vào cùng PR.
|
|
|
|
* [ ] Không tự ý format hoặc thay đổi indent của toàn bộ file.
|
|
Diff phải rõ ràng và dễ review.
|
|
|
|
* [ ] Làm việc trên **branch riêng**.
|
|
Không commit trực tiếp vào `main`.
|
|
|
|
* [ ] Commit message phải nêu:
|
|
- Nguyên nhân gốc của lỗi.
|
|
- Vị trí code liên quan (`file:line`).
|
|
- Issue liên quan.
|
|
|
|
* [ ] Không commit các file/dữ liệu sau:
|
|
- `.env`
|
|
- `config.json` local
|
|
- `.cowork_local/`
|
|
- `.venv/`
|
|
|
|
---
|
|
|
|
## D. Kiểm tra bảo mật
|
|
|
|
* [ ] Không có các thông tin sau trong code, test fixture, commit message hoặc PR body:
|
|
- Secret
|
|
- PII/thông tin cá nhân
|
|
- Đường dẫn chứa thông tin cá nhân trên máy local
|
|
|
|
* [ ] Nếu có ảnh chụp màn hình trong PR:
|
|
đã che (redact) toàn bộ thông tin nhạy cảm trước khi đính kèm.
|
|
|
|
* [ ] Nếu thay đổi liên quan đến một trong các nội dung sau:
|
|
|
|
```
|
|
- Permission/quyền truy cập
|
|
- Credential/thông tin xác thực
|
|
- MCP write/exec
|
|
- Sandbox
|
|
- Network
|
|
- TLS
|
|
- Isolation
|
|
- Model routing
|
|
- Xóa dữ liệu
|
|
|
|
thì phải:
|
|
|
|
1. Đặt `security-review: required`.
|
|
2. Ghi rõ trong PR rằng:
|
|
**"CI xanh không có nghĩa là có thể merge ngay."**
|
|
3. Chờ security review theo quy trình trước khi merge.
|
|
```
|
|
|
|
---
|
|
|
|
## E. Kiểm tra nội dung PR
|
|
|
|
* [ ] **Summary** phải giải thích **tại sao cần sửa**, không chỉ mô tả đã sửa cái gì.
|
|
|
|
* [ ] Đã chọn **Change Type** phù hợp.
|
|
|
|
* [ ] **Scope** phải ghi rõ:
|
|
- Những gì đã thay đổi.
|
|
- Những gì **cố ý không thay đổi**.
|
|
|
|
* [ ] **Validation** phải ghi:
|
|
- Lệnh đã chạy.
|
|
- Kết quả thực tế/output.
|
|
|
|
* [ ] **Security Impact** phải được điền.
|
|
Nếu không ảnh hưởng bảo mật, ghi rõ **"Không có"**.
|
|
|
|
* [ ] Đã chọn **Compatibility** phù hợp.
|
|
|
|
* [ ] **Reviewer Notes** phải chỉ ra những phần reviewer cần kiểm tra kỹ nhất.
|
|
|
|
* [ ] Đã cập nhật tài liệu nếu cần:
|
|
- `docs/`
|
|
- Ảnh màn hình trong `docs/screens/`
|
|
|
|
---
|
|
|
|
## F. Giới hạn quyền của Agent
|
|
|
|
* [ ] Agent **không được tự merge PR**.
|
|
|
|
* [ ] Agent **không được tự đóng issue**.
|
|
|
|
* [ ] Nếu đây là đóng góp từ **FSG AI Core**, cần hiểu rằng trạng thái **"Done"** chỉ được xác nhận khi PR đã thực sự được merge vào Cowork Local và có đầy đủ:
|
|
|
|
```
|
|
- Core issue reference
|
|
- PR reference
|
|
- Evidence
|
|
- Reviewer phía Cowork
|
|
- Merge reference
|
|
```
|