Bộ 7 role chuyên biệt (triage → specialist → implementer → reviewer) cùng lớp dùng chung: guardrail, tri thức về repo, checklist, và contract đầu ra. Vì sao có: bug UI/UX được báo bằng lời kể triệu chứng, và người sửa hay bỏ qua ba thứ mà repo này rất dễ vi phạm — luật "không file nào ngoài theme/ được đặt tên một màu", trần LOC theo bánh cóc, và việc ui/ với presentation/ cùng tồn tại nên sửa nhầm file là "đã fix mà vẫn thấy lỗi". knowledge/qt_pitfalls.md chép lại 20 nguyên nhân gốc hay gặp của bug PySide6; examples/bad_fix.md có hai ca CÓ THẬT, gồm ca chính bản vá trong nhánh này từng mắc (compare_digest trên str ngoài ASCII) và lọt qua vòng review đầu. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2.5 KiB
2.5 KiB
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.jsonlocal, 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: requiredvà 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/, ảnhdocs/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.