TEST — Toàn bộ Rule "Chính sách & Rule" (§1 → §8)

Campaign Điểm thi · GEARVN OPS · DOC-QA-TC v1.0 · 2026-06-26 · code checked: 5b876f5

§2 dedup (đã test) §3a rate-limit (đã test) audit §1,§4-§8 11 case

⚠️ Phát hiện cao nhất — §2 xung đột policy

Trang admin §2 nói chống trùng theo CẶP (1 SBD nhiều SĐT / 1 SĐT nhiều SBD vẫn cấp). Nhưng REQ §5.2/§7.4 + CODE chặn theo CÁ NHÂN (1 SBD/1 voucher, 1 SĐT/1 voucher). test-dedup.mjs xác nhận lệch ở 2/4 tình huống → cần owner chốt policy.

Bảng tổng hợp theo mục

2
✅ Đạt (§1, §3a)
4
⚠️ Lệch/một phần
3
❌ Chưa implement
MụcNội dungPhương phápKết quả
§1Triết lý (2 lớp online + cửa hàng)Audit✅ Phản ánh đúng
§2Chống trùng theo CẶP (SBD+SĐT)Logic test⚠️ XUNG ĐỘT (code chặn cá nhân)
§3aRate-limit theo scopeLogic test✅ Cơ chế đúng · ⚠️ default lệch
§3bTrần voucher/IP/giờ (ISSUE_LIMIT)Audit❌ Chưa implement
§4Chặn tay IP/CIDR (BLOCKED 403)Audit❌ Chưa implement
§5Lưu IP thật (source_ip_plain, ADMIN_SHOW_PII)Audit❌ Chưa implement (chỉ hash)
§6Cửa hàng offline — chốt chặn thậtAudit⚠️ Quy trình thủ công
§7Bảng trạng thái trả vềAudit⚠️ 3/6 status có
§8Biến môi trường cấu hìnhAudit⚠️ 6/8 biến có hiệu lực

Chi tiết test/audit theo mục

Kết luận & ưu tiên xử lý

  1. §2 — XUNG ĐỘT POLICY (cao nhất): trang admin (chặn cặp) mâu thuẫn REQ §5.2 + code (chặn cá nhân). Owner chốt một hướng; nếu theo trang admin → phải SỬA CODE + unique index ux_claims_campaign_cand_phone.
  2. §3b, §4, §5 chưa implement: nếu cần trần voucher/IP, blocklist, soi IP thật → code bổ sung; nếu không → sửa trang admin để khỏi mô tả tính năng chưa có.
  3. §7, §8: bổ sung status (ISSUE_LIMIT, BLOCKED, NOT_ELIGIBLE) + env (RL_ISSUE_IP, ADMIN_SHOW_PII) đi kèm khi làm §3b/§4/§5.
  4. §3a default: set env RL_* đúng spec trang hoặc sửa RL_DEFAULTS.