Chuyển tới nội dung chính

Vì sao Human Gate không bypass được

Trang này giải thích vì sao cổng duyệt cuối bắt buộc phải là con người bấm nút, và vì sao không token hay scope nào có thể vượt qua nó.

Ý tưởng cốt lõi: một chốt chặn mà script tự động vượt qua được thì không còn là chốt chặn con người.

Xác thực 2 lớp ở POST /api/tasks/:id/approve​

  • Lớp 1 — phải là người: agent và system đều 403. Mọi request dùng service token phân giải về actor system nên cũng 403 — không có ngoại lệ.
  • Lớp 2 — phải đủ quyền: role trên Space >= admin (xem Phân quyền Board).

Scope gate:approve cố ý không tồn tại​

Scope registry chỉ có các scope tích hợp (projects:read, agents:read, tasks:create, tasks:read, tasks:message, groups:create…). Không token nào xin được quyền approve vì quyền đó không tồn tại trong hệ thống — đây là thiết kế, không phải thiếu sót.

Audit bắt buộc, không ngoại lệ​

Mỗi approve ghi một bản ghi reviews (reviewer_actor_id, reviewer_actor_type='human') và một Activity. Đây là hành động nhạy cảm nhất hệ thống — approve mà không để lại audit là không thể.

Reviewer Agent không bao giờ approve​

Peer-review (reviewerActorType: 'agent') và Human Gate là hai tầng riêng: reviewer ≠ executor, và verdict approved của AI chỉ chuyển task sang human-gate — vẫn phải chờ người bấm nút.

Mention & retro chỉ sinh draft — không duyệt, không publish, không chạy agent​

  • @persona <việc> trong comment chỉ sinh subtask ở backlog/idle. Chạy hay không là quyết định của người — cờ mention không kèm quyền run.
  • Auto-retro nộp bản thảo lên Arkon Wiki dưới danh tính @architect quyền contributor — nghĩa là nó không thể tự duyệt bản của mình. Duyệt vẫn ở Unified Review Queue, bởi người.
  • Persona không tự duyệt draft của chính nó — kể cả draft nó vừa tạo. Đó là bất biến 0B, có test và đã đo trên Arkon thật.

Tự kiểm chứng​

Chạy Pentest Human Gate: header giả, service token, viewer — cả ba phát đều phải 403. Phát nào không 403 là sự cố bảo mật P0.