Nghiệm thu trước go-live — kế hoạch & biên bản
Đối tượng: QA / người nghiệm thu + sysadmin mở hệ thống cho user thật. Nguồn chi tiết từng case:
MANUAL-TEST-PLAN.mdtrong repo (77 test do người thật chạy). Môi trường: DEV FULL-STACK hoặc PRODUCTION — không chạy trên DEV-LITE (bypass phân quyền).
Cách dùng & chuẩn bị
- Chuẩn bị 1 repo mẫu (có remote để thử
create-pr; hoặc repo mới) + 2–3 email test đóng nhiều role. - Chạy lần lượt 12 nhóm dưới; ghi kết quả vào biên bản §"Biên bản" (PASS / FAIL + số lỗi / BLOCKED + lý do).
- Test 🔴 FAIL → dừng, không có "sẽ sửa sau". Chi tiết bước từng mã:
MANUAL-TEST-PLAN.md.
12 nhóm test
| Nhóm | Nội dung | Mã đáng chú ý |
|---|---|---|
| MT-0x Toàn vẹn môi trường | 11 service lên, hết preflight, UI + WS, agent khả dụng | — |
| MT-1x Danh tính & phân quyền | Đúng người, đổi danh tính, ma trận 4 role, không xoá owner cuối | 🔴 MT-13, MT-14, MT-15 |
| MT-2x Space & provisioning | Tạo Space, tới được Arkon, rollback sạch, list lọc membership | 🔴 MT-21 |
| MT-3x Vòng đời task & agent | Tạo/chạy/dừng/follow-up, worktree cách ly, result.json, bơm Wiki, repair loop | — |
| MT-4x AI Planner | Sinh cây, sửa trước apply, chặn cycle, apply nguyên tử | (BLOCKED nếu chưa có LLM key) |
| MT-5x Phụ thuộc & song song | Không mở non, mở khi done, maxConcurrency, Stop Group | 🔴 MT-51 |
| MT-6x Review & Human Gate | Approve + merge, member không approve được, service token không bypass, reviewer độc lập, rework, chặn 3 vòng | 🔴 MT-61, MT-62, MT-63 |
| MT-7x Merge & xung đột | Repo gốc sạch khi conflict, auto-rework 1 lần, create-pr, manual | 🔴 MT-71 |
| MT-8x/9x Tri thức & chịu lỗi | Đọc/search Wiki, MRP, agent đề xuất wiki, upload file, crash recovery, suy biến mềm, timeout, rate limit, backup + restore thật | 🔴 MT-91 |
| MT-10x OpenRouter & per-model | Provider→Model, badge origin, cô lập params, reset, guard Preview/Diagnose, diagnose 6 checks, ingest E2E, fail-loud key giả, Planner live | — |
| MT-11x Hồi quy 0B (Arkon substrate) | 8 cờ + bảng tra cứu + cờ tới container + MRP 2 cổng + preserveVerbatim + biên Space (F1) + rollback + user/RBAC/persona/MCP token + reconciler + server chết giữa lúc nạp | 🔴 MT-110, MT-111, MT-114, MT-115 |
| MT-12x Board polish 0C | Palette + mention đa persona + comment realtime + auto-retro draft/sweep + room Space | 🔴 MT-121, MT-126 |
Fake client chỉ ghi lại lời gọi mà không xác thực nó: UAT-0B lòi 8 bug production + 1 rò xuyên
Space + 1 tính năng chỉ chạy cho đúng 1 tài khoản, trong khi test tự động vẫn xanh. Chi tiết
từng case: MANUAL-TEST-PLAN.md §16–§17.
Bất biến gốc của cả hai chặng: mọi cờ TẮT = Phase 1 (MT-110 cho 0B, MT-121 cho 0C). Case này
FAIL thì không cờ nào đáng tin: sources chưa mount phải 404, 8 route wiki sâu phải 404 (kể cả 4
route ghi — cờ tắt nghĩa là bề mặt không tồn tại), /api/wiki/pages + /api/wiki/drafts vẫn 200.
Sáu ca MT-12x có phần chỉ mắt người thấy được: chỉ báo header đổi màu (MT-126.1), comment
hiện ở tab thứ hai không reload (MT-123), và cảm giác Cmd+K (MT-121) — test tự động phủ phần
lớn nhưng không thay được ba cảm nhận này.
16 test 🔴 chặn go-live (tóm tắt kỳ vọng)
| Mã | Tên | Kỳ vọng |
|---|---|---|
| MT-13 | PENTEST giả mạo header | Header x-forwarded-* giả approve → 403 |
| MT-14 | PENTEST Human Gate | Actor không phải người approve → 403 |
| MT-15 | PENTEST RBAC fail-closed | Người lạ GET task → 403 |
| MT-21 | Tạo Space | Provisioning nguyên tử: Department + Wiki Home + 5 persona + owner |
| MT-51 | Không bỏ chặn non | Blocker ở review → task phụ thuộc vẫn chặn; chỉ mở khi done |
| MT-61 | Human Gate approve + merge | Người approve → merge --no-ff → done/approved + audit human |
| MT-62 | Member không approve được | 403 đúng thiết kế |
| MT-63 | Service token không bypass | 403, không có đường vòng |
| MT-71 | Xung đột: repo gốc sạch | Conflict → abort ngay, repo gốc sạch, task merge-conflict + 409 |
| MT-91 | Khôi phục sau crash | Restart → task về idle + Activity system_recovery, worktree nguyên |
| MT-110 | Bất biến "mọi cờ 0B TẮT = Phase 1" | sources chưa mount 404, 8 route wiki sâu 404, /api/wiki/pages + /drafts vẫn 200 |
| MT-111 | Cờ tới được container | Biến trong .env phải hiện trong printenv container + /api/features đúng ý định |
| MT-114 | Biên Space (F1 đã vá) | User Space A đọc plan/wiki Space B → 403 |
| MT-115 | Rollback Wiki | Admin + human → 200 (version mới); member/token → 403; Arkon thiếu wiki:write:all → 502 kèm detail |
| MT-121 | Command Palette 0C1 + bất biến cờ | Cờ bật → Cmd+K mở kể cả khi gõ input; cờ tắt → không có bề mặt |
| MT-126 | WS room theo Space 0C4 | Event không lọt xuyên Space; subscribe chéo → FORBIDDEN; badge header đổi màu đúng |
Biên bản (copy ra file riêng khi chạy)
| Trường | Giá trị |
|---|---|
| Ngày chạy / Người chạy | |
| Môi trường | ☐ DEV FULL-STACK ☐ PRODUCTION |
| Agent | ☐ giả lập (ScriptedProvider) ☐ thật (loại: ______) |
| LLM Planner | ☐ live ☐ replay (nhóm MT-4x = BLOCKED) |
| Commit / image tag |
Ghi 1 dòng cho mỗi mã MT-01…MT-95, MT-101…MT-111 (OR), MT-110…MT-120 (0B), MT-121…MT-126 (0C): PASS / FAIL (số lỗi) / BLOCKED (lý do).
Bảng mẫu đầy đủ: MANUAL-TEST-PLAN.md §12 + §15 + §16.2 + §17.1.
Tiêu chí thông qua
| Mức | Điều kiện |
|---|---|
| Chặn go-live | Bất kỳ test 🔴 nào FAIL. Không ngoại lệ, không "sẽ sửa sau" |
| Chặn mở cho user thật | MT-01, MT-02, MT-21, MT-31, MT-61 FAIL |
| Ghi nhận, không chặn | Test còn lại FAIL — phải có số hiệu lỗi và người phụ trách |
| BLOCKED chấp nhận được | MT-4x và MT-64 khi chưa có LLM key/model; MT-63 khi chưa dùng service token; MT-73 khi repo không remote |
Kết luận: ☐ THÔNG QUA (mọi 🔴 pass) · ☐ THÔNG QUA CÓ ĐIỀU KIỆN (ghi rõ: ______) · ☐ KHÔNG THÔNG QUA (🔴 FAIL: ______). Người ký / Ngày: ______