Verify Issue — /qa-full:verify-issue
Lệnh dùng nhiều nhất hàng ngày. Tự động verify GitHub issues trên staging theo 7 bước: đọc issue, tìm TC, gap analysis (gọi ck:scenario 12 chiều), verify, comment, label, push.
Cú pháp
Luồng hoạt động bên trong
Bước 1: Đọc Issue — Extract ACs
Chạy
gh issue view {number} --json title,body để lấy nội dung.
Parse tất cả Acceptance Criteria blocks (GIVEN/WHEN/THEN/AND).
Liệt kê từng THEN condition riêng biệt.Output: Bảng ACs với THEN conditions.Bước 2: Tìm TC-IDs từ QA doc
Grep
docs/qa/F*.md để map mỗi AC → TC-IDs tương ứng.Output: Bảng TC-IDs per AC.Bước 3: Gap Analysis — BẮT BUỘC gọi ck:scenario
So sánh AC THEN conditions vs TC-IDs hiện có → tìm gap.BẮT BUỘC gọi skill
ck:scenario phân tích 12 chiều:
User Types, Input Extremes, Timing, Scale, State Transitions, Environment, Error Cascades, Authorization, Data Integrity, Integration, Compliance, Business Logic.Quy tắc:- Chỉ analyze dimensions relevant (skip irrelevant + ghi “N/A”)
- Mỗi dimension → 2-3 scenarios (không quá 5)
- Tổng TC mới <= 10 per issue (chọn highest severity trước)
- Mỗi scenario PHẢI có severity: Critical / High / Medium / Low
Bước 4: Verify từng TC trên Staging
Verify từng TC theo thứ tự ưu tiên:
Output mẫu per-TC:
| Ưu tiên | Phương pháp | Khi nào dùng |
|---|---|---|
| 1 | Unit test | Tìm trong src/__tests__/ |
| 2 | API call | curl staging/api/... |
| 3 | Source code | Grep confirm logic exists |
| 4 | Playwright E2E | Chạy E2E test nếu có |
| 5 | Browser test | Dùng ck:chrome-devtools |
| 6 | Cần QC | CHỈ khi thật sự cần người |
| TC-ID | Type | Result | Evidence |
|---|---|---|---|
| TC-F05.06 | UI/DB | Pass | Unit test PASS page-manager.test.tsx:56 |
| TC-F05.07 | Func | Bug | API POST /api/sites/2/pages → HTTP 500 |
| TC-F05.10d | UX | Pass | Source: PageManagerPanel.tsx:350 |
| TC-F05.06c | UX | Cần QC | Cần QC: loading skeleton CSS animation |
Bước 5: Comment trên Issue
Tự động post comment lên GitHub issue với format chuẩn team: per-AC per-TC table + bug report (Steps, Expected, Actual, Evidence).
Bước 6: Update Label
| Điều kiện | Hành động |
|---|---|
| All TC pass (hoặc chỉ còn Cần QC visual) | qa:passed + close issue |
| Any TC bug (500, wrong behavior) | qa:failed + keep open |
| Missing implementation | qa:failed + note |
Quy tắc bắt buộc
- KHÔNG đánh
qa:passednếu chưa verify từng TC-ID - KHÔNG đánh “Cần QC” nếu có thể verify qua API/source code
- Bug report theo chuẩn team (Steps, Expected, Actual, Evidence)
- Nếu bug duplicate với comment trước → update comment cũ
- BẮT BUỘC gọi ck:scenario ở Bước 3
Ví dụ thực tế
- Input
- Output
So sánh với chat trực tiếp
| Tiêu chí | /qa-full:verify-issue | Chat trực tiếp |
|---|---|---|
| AC parsing | Tự động parse GIVEN/WHEN/THEN | Đọc thủ công |
| TC mapping | Tự động map AC → TC-IDs | Phải tìm tay |
| Gap analysis | ck:scenario 12 chiều, severity | Tự nghĩ edge cases |
| Verify method | 6 phương pháp ưu tiên | Thường chỉ test browser |
| Comment format | Chuẩn team: per-AC per-TC table | Text tự do |
| Label update | Tự động qa:passed/qa:failed | Phải làm tay |
| TC supplement | Tự động commit + push | Không tạo TC mới |
Khi nào dùng / không dùng
| Dùng | Không dùng |
|---|---|
| Verify issue dev assign cho QA | Khi chưa có GitHub issue |
| Hàng ngày verify issues mới | Khi cần QA toàn bộ project (dùng /qa-full:full) |
| Verify batch cuối sprint | Khi cần viết tests mới (dùng /qa-full:check) |
Batch Mode
Khi verify nhiều issues cùng lúc:- List issues:
gh issue list --label "qa:pending" --label "feature:F05" - Gom TC supplements cho cùng feature → 1 commit
- Verify song song cho independent issues
- Comment + label từng issue riêng