Chuyển tới nội dung chính
Phiên bản: 1.0

Duyệt & approve — dành cho Approver

Đối tượng: Tech Lead / Reviewer — chốt chặn cuối trước khi code agent vào nhánh chính. Role kỹ thuật: Board admin actor.type === 'human' (cùng owner là 2 role duy nhất được approve). Điều kiện: hiểu Máy trạng thái task (peer-reviewhuman-gateapproved).

Màn hình — Review View

Review View — placeholder, sẽ bổ sung ảnh chụp thật

Vào Header → Review, tối ưu duyệt liên tục bằng bàn phím (j xuống, k lên, a approve):

  • ReviewQueue (sidebar): mọi task ở cột review, badge tầng hiện tại (Human Gate / Peer Review / Rework / Conflict / Escalated / Approved), kèm agentType/priority.
  • ReviewPanel: header itemKey + branchName; nút Rework (R) / Approve (A); Description + Acceptance Criteria.
  • 3 tab: Automated Verdict (điểm + findings của Reviewer Agent) / Code Changes (DiffViewer) / Quality Checks (lint/test/typecheck).
  • ReworkModal: nhập ghi chú khi từ chối.
Checks chỉ là dữ liệu tham khảo, không phải cổng chặn

Không state nào của review phụ thuộc kết quả checks. Quyết định dựa trên diff + verdict + acceptance criteria — đừng tin "checks xanh là đủ".

Duyệt và approve — 3 tầng

  1. Tầng 1 — Task Checks: đọc kết quả lint/test/typecheck (POST /api/tasks/:id/checks). Đỏ không tự chặn task — bạn quyết có chấp nhận không.
  2. Tầng 2 — Reviewer Agent: persona @reviewer (khác persona viết code) đọc toàn bộ diff, đối chiếu từng acceptance criteria, xuất .board/review-verdict.json:
{
"score": 95,
"verdict": "approved",
"summary": "…",
"findings": [
{ "file": "src/payment/webhook.ts", "severity": "minor", "message": "…" }
]
}

verdictapproved | changes_requested | rejected; severitycritical | major | minor | info. Mặc định AGENTBOARD_REVIEWER_AGENT=auto chỉ chạy khi có LLM thật — không có LLM thì task đi thẳng tới bạn kèm cảnh báo, không kẹt.

  1. Tầng 3 — bạn: mở diff + verdict + checks → bấm Approve (a hoặc POST /api/tasks/:id/approve). Hệ thống ghi audit bắt buộc (reviews + Activity, không ngoại lệ) rồi merge theo mergeStrategy của Space:

Chiếm mutex withRepoLockgit merge --no-ff nhánh agent vào baseBranch → task done. Dùng khi repo và server cùng host (mặc định).

  1. Duyệt nhanh nhiều task: ở Review View dùng j/k di chuyển, a approve liên tục (phím tắt tắt khi con trỏ đang trong input/textarea/select).

Duyệt Wiki draft

Vào Wiki View → Review Queue: xem draft do agent (wikiProposals) hoặc member đề xuất → sửa trong Draft Editor nếu cần → Approve (POST /api/wiki/drafts/:id/approve) ghi vào Arkon Wiki, hoặc Reject. Duyệt Wiki cũng cần admin + human như approve code.

Việc bạn KHÔNG làm / KHÔNG được làm

ViệcQuy định
Approve bằng script CI / service token403 và không có cách bypass — tự động hoá được thì nó không còn là chốt chặn
Sửa cấu hình Space, thêm/xoá thành viêncần owner — liên hệ owner
Merge tay trong repo gốc khi hệ thống đang mergecấm — phá mutex withRepoLock, gây conflict khó cứu
Xoá owner cuối cùng (khi bạn kiêm owner)409 — cấp owner cho người khác trước
Không bao giờ chạy git tay trong repo gốc khi agent đang chạy

git checkout / merge / rebase / commit thủ công phá mutex withRepoLock (mutex trong-process, không biết terminal của bạn). Quy tắc bất di bất dịch.

Checklist tự xác minh

  • Duyệt 1 task end-to-end: verdict + diff + checks → approve → done/approved, code có mặt trên baseBranch (hoặc PR được tạo).
  • Phân biệt peer-review (AI đang xem) / human-gate (chờ bạn) / changes-requested / merge-conflict / needs-human.
  • Biết khi nào giao lại cho member (sửa mô tả), owner (đổi mergeStrategy/requireHumanGate), sysadmin (Reviewer Agent tắt vì thiếu LLM key).

Đọc tiếp: Từ chối, rework & xung đột merge · Pentest Human Gate.