# RTM — Requirements Traceability Matrix — | | | |---|---| | **Cập nhật** | YYYY-MM-DD | | **Chạy bởi** | skill `ba-traceability` | | **Tài liệu đã quét** | *(liệt kê kèm version)* | | **Tài liệu thiếu** | *(và phép kiểm nào không chạy được vì thiếu nó)* | --- ## 1. Bảng coverage tổng hợp | # | Phép kiểm | Chiều | Tổng | Đã phủ | Coverage | Ngưỡng | ☐/✅ | Chặn gate | |---|---|---|---|---|---|---|---|---| | 1 | RQ → US | xuôi | | | | 100% | | G2 | | 2 | US → RQ | ngược | | | | 100% | | G2 | | 3 | US → AC (**đủ 4 nhóm**) | xuôi | | | | 100% | | G3 | | 4 | BR → áp dụng ở US/field | xuôi | | | | 100% | | G3 | | 5 | AC → test case | xuôi | | | | 100% | | G4 | | 6 | Tham chiếu → định nghĩa | — | | | | 100% | | mọi gate | **Không làm tròn lên.** Coverage 99% vẫn là chặn khi ngưỡng là 100% — cái 1% đó là một yêu cầu thật, của một người thật. --- ## 2. Ma trận chính *Một dòng cho mỗi mắt xích. Ô trống = lỗ hổng.* | RQ | MoSCoW | US | BR | AC | Field | Mã lỗi | Test case | Kết quả test | CR | |---|---|---|---|---|---|---|---|---|---| | RQ-001 | Must | US-001 | BR-003 | AC-01, AC-05 | F01, F02 | E-STL-0001 | TC-001..004 | ✅ | — | | RQ-005 | Should | 🔴 — | | | | | | | | --- ## 3. Chi tiết từng lỗ hổng *Mỗi dòng nêu đích danh ID, nơi định nghĩa, và **skill nào cần chạy để sửa**.* ### 3.1 🔴 RQ chưa có US nào phủ *(yêu cầu bị bỏ quên — chặn G2)* | RQ | MoSCoW | Định nghĩa tại | Vì sao chưa phủ | Sửa bằng | |---|---|---|---|---| | RQ-005 | Should | `BRIEF_…_v1.0.md` §6 | *(bị bỏ sót? đã hoãn nhưng chưa ghi DEC?)* | `/ba-2-analysis

` | ### 3.2 🔴 US không truy về RQ nào *(scope creep — chặn G2)* | US | Định nghĩa tại | Từ đâu ra | PO quyết | Sửa bằng | |---|---|---|---|---| | US-018 | `BACKLOG_…_v1.0.md` | | Giữ / Bỏ / Hoãn | `/ba-2-analysis

` | ### 3.3 🔴 US thiếu AC *(chặn G3)* *Đủ 4 nhóm mới tính là phủ. Chỉ có nhóm 1 ⇒ **chưa phủ**, không phải "phủ một phần".* | US | Thành công | Validation | Lỗi hệ thống | Phân quyền | Sửa bằng | |---|---|---|---|---|---| | US-013 | ✅ AC-20 | ✅ AC-21 | 🔴 — | 🔴 — | `/ba-3-specification US013` | ### 3.4 🟠 BR mồ côi *(không được áp dụng ở đâu)* | BR | Định nghĩa tại | Vì sao mồ côi | Sửa bằng | |---|---|---|---| | BR-030 | `BR_…_v1.0.md` | *(rule của phase sau? hay SRS quên áp?)* | `/ba-3-specification ` | ### 3.5 🔴 AC không có test case *(chặn G4)* | AC | US | Nhóm | Sửa bằng | |---|---|---|---| | AC-09 | US-011 | Lỗi hệ thống | `/ba-4-delivery-support US011 --part c` | ### 3.6 🔴 Tham chiếu gãy *ID được nhắc tới nhưng **không có nơi định nghĩa**.* | ID được tham chiếu | Nhắc ở đâu | Có thể là | Sửa bằng | |---|---|---|---| | BR-021 | `SRS_US011_v1.2` §1.3 | Đổi số? `BR` chưa cập nhật? | `/ba-2-analysis

--only br` | 🔴 Tham chiếu gãy nghĩa là dev đọc spec, thấy "theo BR-021", đi tìm không ra, rồi **tự quyết**. Đó là cách một business rule bốc hơi khỏi sản phẩm. --- ## 4. Kiểm tra nhất quán | # | Phép kiểm | Phát hiện | Mức | Xử lý | |---|---|---|---|---| | 1 | **Version lệch** — `Source:` trích version cũ | `SRS_US011` khai `BR_v1.0`, thực tế `BR` đã v1.2 | 🔴 | Rà lại SRS theo BR mới | | 2 | **Ràng buộc lệch** — field vs. API | F01 max 20 ký tự (SRS) vs. 50 (API) | 🔴 | | | 3 | **Mã lỗi lệch** — SRS vs. API | `E-STL-0007` không endpoint nào sinh ra | 🟠 | | | 4 | **Trạng thái lệch** — BR vs. SRS/RBAC | RBAC phân quyền cho trạng thái `LOCKED` không có trong BR | 🔴 | | | 5 | **Thành phần lệch** *(screen)* — SRS §2.3.1 vs. WF §3.x.2 / `data-c` | `C07` có trong WF (prototype vẽ nút Xuất) nhưng SRS không đặc tả | 🔴 G3 | PO quyết ở WF §5 | | 6 | **Quy ước lệch** *(screen)* — SRS vs. UICONV không có dòng §12 | SRS_US011 phân trang cursor, UICONV §3 offset | 🟠 | Sửa SRS hoặc thêm UICONV §12 | | 7 | **Text lệch** *(screen · design)* — `data-key` HIFI vs. SRS §4.2 | `btn.create`: HIFI "Tạo", SRS "Tạo mới" (`design-check` H4) | 🔴 G3 | Chép lại nguyên văn; muốn đổi ⇒ OQ cho BA/PO | | 8 | **Token lệch** *(screen · design)* — HIFI/SVG vs. `ds/tokens.json` | HIFI có `#333333` ngoài token; `SCR-05.mobile.svg` thiếu (`design-check` H2/S1) | 🔴 G3 | `/ba-design hifi` rồi `figma` | **Lệch prototype ↔ SRS còn mở** *(screen — đọc từ `WF` §5, chỉ loại Tồn tại/Hành vi)* | WF | # | Màn hình | Nội dung lệch | Ai quyết | Từ ngày | Chặn | |---|---|---|---|---|---|---| | `WF_US011` | 1 | SCR-03 | Prototype không có nút Huỷ, SRS có C07 | Designer | | 🔴 G3 | --- ## 5. Open Question & Change Request tồn đọng *Sắp theo số ngày quá hạn giảm dần.* | ID | Nội dung | Hỏi ai | Từ ngày | Số ngày | Chặn ID nào | Mức | |---|---|---|---|---|---|---| | OQ-014 | | | | 9 | AC-05, F03 | 🔴 quá hạn | | CR | Tóm tắt | Chờ ai quyết | Từ ngày | Số ngày | Mức | |---|---|---|---|---|---| **`TBD` / `TODO` còn lại:** | Tài liệu | Mục | Nội dung | Chặn gate | |---|---|---|---| | `SRS_US011` | §2.3.3 F01 | Độ dài chưa chốt | 🔴 G3 | --- ## 6. Kết luận gate ``` G1: ✅ / 🔴 CHẶN — G2: ✅ / 🔴 CHẶN — G3: ✅ / 🔴 CHẶN — G4: ✅ / ⏳ Chưa đánh giá được — G5: — ``` | Gate | Trạng thái | Blocker | Chạy gì để gỡ | |---|---|---|---| | G2 | 🔴 | RQ-005 chưa phủ · US-018, US-019 scope creep | `/ba-2-analysis

` | | G3 | 🔴 | 6/18 US thiếu AC nhóm lỗi · 4 TBD trong bảng field | `/ba-3-specification ` | --- ## 7. Lịch sử chạy | Ngày | Coverage RQ→US | US→AC | AC→TC | Số blocker | Ghi chú | |---|---|---|---|---|---| | | | | | | | *Chạy sau **mỗi giai đoạn**, không chỉ trước gate. Lỗ hổng phát hiện sớm thì rẻ; phát hiện hôm trước ngày họp duyệt thì chỉ để hoãn họp.*