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>
3.8 KiB
3.8 KiB
Handoff Contract — envelope truyền giữa các agent
Mọi agent kết thúc lượt bằng khối YAML này, đặt ngay trên phần nội dung chính. Đây là phần máy đọc; phần dưới nó là phần người đọc.
---
defect_id: UI-2026-0907-01 # UI-<YYYYMMDD>-<số thứ tự trong ngày>
from_agent: ui-bug-triage
next_agent: ui-visual-fixer # xem bảng giá trị hợp lệ bên dưới
tier: T2 # T0 | T1 | T2 | T3 | T3-SEC — do fix-dispatcher chấm
category: visual # visual | flow | i18n-a11y | security | not-ui
severity: S2 # S1 | S2 | S3 | S4
confidence: high # low | medium | high
reproducible: yes # yes | no | intermittent
security_review: not-required # required | not-required
affected_files:
- presentation/folder/folder_tab.py:118
- theme/qss.py:204
themes_verified: [dark, light] # [] nếu chưa kiểm
languages_verified: [vi] # [] nếu không liên quan
blocked_on: [] # danh sách open question CHẶN bước tiếp theo
---
Giá trị hợp lệ của next_agent
| Giá trị | Nghĩa |
|---|---|
fix-dispatcher |
Escalate về hub: vượt phạm vi tier hiện tại, cần chấm lại |
ui-visual-fixer / ux-flow-fixer / i18n-a11y-fixer |
Route sang specialist UI |
security-defect-fixer |
Route sang specialist bảo mật (category: security) |
fix-implementer |
Plan đã sẵn sàng để hiện thực |
regression-reviewer |
Patch đã sẵn sàng để review |
HUMAN_REVIEW |
Xong phía agent; chờ Cowork Team |
RETURN_TO_REPORTER |
Không phải bug, hoặc thiếu thông tin chặn, hoặc cần quyết định sản phẩm |
Luật
defect_idkhông đổi suốt vòng đời một lỗi, kể cả khi quay vòng FAIL.- Một defect_record = một nguyên nhân gốc. Triage phát hiện hai nguyên nhân → tách
thành hai
defect_id. confidence: low→next_agentchỉ được làui-bug-triagehoặcRETURN_TO_REPORTER.blocked_onkhác rỗng → agent nhận không được implement; chỉ được điều tra thêm.security_review: requiredlà cờ dính: một khi bật, không agent nào được tắt. Chỉ Cowork Team gỡ được.category: securitythì cờ này luôn bật.themes_verified/languages_verifiedchỉ ghi thứ thực sự đã kiểm. Đây là chỗ hay bị ghi khống nhất (guardrail.mdG10).- Agent nhận envelope phải kiểm envelope trước khi làm việc. Thiếu trường hoặc mâu thuẫn
(ví dụ
confidence: lowmànext_agent: fix-implementer) → trả về ngay, không xử lý. category: securitythắng mọi nhóm khác. Một lỗi vừa lệch layout vừa lộ credential thìnext_agent: security-defect-fixer; phần UI tách thànhdefect_idriêng, xử lý sau.blocked_oncủa role 7 có thể chứa câu hỏi chính sách (needs-security-decision). Đó là chờ hợp lệ — người trả lời là Cowork Team, không phải agent khác.tierchỉ đi lên. Không agent nào được hạtiertrong envelope nhận được. Thấy việc lớn hơn tier đang mang → đặtnext_agent: fix-dispatcher, ghi lý do vàoblocked_on, dừng. Hub là chỗ duy nhất được ghitier.tier: T0mànext_agentkhácHUMAN_REVIEWlà mâu thuẫn: T0 không gọi agent nào.tier: T3-SECthìsecurity_reviewluôn làrequired.report_id(nếu có) gom cácdefect_idtách ra từ cùng một phản ánh. Nó chỉ để truy vết ngược về người báo lỗi; không dùng nó để gộp PR — một PR vẫn là mộtdefect_id(guardrail.mdG8).