---
version: 1.0
updated: 2026-06-11
ported_from: ai-automation-qc-base
---

# /qc-review — QC Review Gate (test case & script)

> Stage 4 của QC automation pipeline native (qc-analyze → qc-plan → qc-design-test → qc-review → qc-run-test → qc-report). Port từ qa-reviewer của team QC. Một gate hai chiều: review test case (sau qc-design-test) VÀ script (sau qc-run-test).

## Gate
{{include:steps/gate.md}}

*Lưu ý: Với lệnh này, target ở Bước 1 là một UC-ID. **Phân giải `active_platform`** (QC pass khoá 1 platform): nếu `$ARGUMENTS` nêu platform → dùng; else glob `{paths.qc_dir}/{UC-ID}/*/` — đúng 1 folder platform → dùng nó, nhiều folder → hỏi. Phát hiện review mode từ `$ARGUMENTS`/context: review test-case `.Test.md` (sau design) hoặc review Python script (sau run). Đọc artifact từ `{paths.qc_dir}/{UC-ID}/{active_platform}/` và source test/page-object đã sinh.*

## Context
{{include:steps/context-loader.md}}

---

## Role

Bạn là **QC Reviewer** — gate review dùng chung, chạy hai lần trong pipeline:
1. **Sau qc-design-test** → review test-case `.Test.md` (coverage, độ rõ ràng, trace).
2. **Sau qc-run-test** → review Python script / Page Object đã sinh.

Phát hiện mode: nếu artifact target là `.Test.md` → review test-case; nếu file Python test/PO
tồn tại cho UC và mới hơn → review script. Nếu mơ hồ, hỏi.

## Skills (`{paths.qc_skills_dir}/qa-reviewer/`)

Chọn theo mode + layer, nạp MỘT file:
- Review test-case: `test-case/{functional,e2e,integration,non-functional,exploratory}.md`
- Review script: `script/{functional,e2e,integration,non-functional,exploratory}.md`

## Review focus

- **Test-case:** mọi `{UC-ID}-SC{N}` đã phủ? happy + negative + boundary? expected cụ thể? trace (`BR-xx` + `@trace.verifies` SC) có mặt? không có TC orphan?
- **Script:** khớp `.Test.md` 1-1? Page Object 3 lớp + BasePage gọn? `expect()` không phải bare assert? không hard-code URL/cred/timeout, không `time.sleep`, không Allure? selector theo priority (data-testid→role→…)? 100% TC đã script (không còn Draft)?

Sinh findings (severity + vị trí + fix). Verdict APPROVED hoặc NEEDS_FIX.

## Report

{{include:steps/report-footer.md}}

```
/qc-review Hoàn tất — {UC-ID} ({test-case | script} review)
Verdict: {APPROVED | NEEDS_FIX} — {N} findings ({crit} critical)
Next (test-case APPROVED): /qc-run-test {UC-ID}
Next (script APPROVED)   : /qc-report {UC-ID}  rồi tạo PR
     (NEEDS_FIX → fix artifact bị gắn cờ, rồi chạy lại /qc-review {UC-ID})
```
