175 lines
5.7 KiB
Markdown
175 lines
5.7 KiB
Markdown
# DTM — Decision Traceability Matrix — <PROJECT>
|
||
|
||
| | |
|
||
|---|---|
|
||
| **Cập nhật** | YYYY-MM-DD |
|
||
| **Author** | <SA> (skill sa-conformance) |
|
||
| **Nguồn quét** | *(liệt kê file + version đã đọc)* |
|
||
| **Artifact 🟡 Draft bị tách riêng** | *(liệt kê — không tính vào coverage chặn gate)* |
|
||
|
||
> Ma trận **trống trung thực tốt hơn ma trận đầy do suy diễn**. Ô trống là danh sách việc;
|
||
> ô điền bừa là cảm giác an toàn giả.
|
||
|
||
---
|
||
|
||
## 1. Báo cáo coverage
|
||
|
||
| Chuỗi | Tỉ lệ | % | Mức | ID bị đứt | Chặn gate |
|
||
|---|---|---|---|---|---|
|
||
| `DRV` → `ASR`/`QAS` | / | | | | AG2 |
|
||
| `ASR` → `ADR` | / | | | | AG2 |
|
||
| `ADR` → nguồn (`DRV`/`CON`/`QAS`/`ASR`) | / | | | | — |
|
||
| `ADR` → `CMP` | / | | | | AG2 |
|
||
| `QAS` (Must) → bài đo | / | | | | AG3 |
|
||
| `QAS` (Must) → kết quả đo thật | / | | | | AG3 |
|
||
| Ràng buộc `AGD` → `FIT` hoặc nhãn khuyến nghị | / | | | | AG3 |
|
||
| `CMP` → `ASR` hoặc nhu cầu chức năng | / | | | | — |
|
||
| `IF` → chủ sở hữu contract | / | | | | AG2 |
|
||
| Thực thể dữ liệu → đúng một chủ | / | | | | AG2 |
|
||
| `THR` → biện pháp → cách kiểm chứng | / | | | | AG2 |
|
||
| Phụ thuộc ngoài process → `FM` | / | | | | AG2 |
|
||
|
||
**Luôn ghi danh sách ID, không chỉ tỉ lệ.** "85%" không hành động được.
|
||
|
||
## 2. `DRV` × `ASR` / `QAS`
|
||
|
||
| | `ASR-001` | `ASR-002` | … | `QAS-001` | `QAS-002` | … | **Đứt** |
|
||
|---|---|---|---|---|---|---|---|
|
||
| `DRV-01` | ● | | | ● | | | |
|
||
| `DRV-02` | | | | | | | 🔴 |
|
||
|
||
**Đọc ngược** — `ASR`/`QAS` không sinh từ `DRV`/`CON` nào:
|
||
|
||
| ID | Sinh từ đâu | Hợp lệ? |
|
||
|---|---|---|
|
||
| | *(có thể hợp lệ: ràng buộc kỹ thuật nội tại, chuẩn doanh nghiệp)* | |
|
||
|
||
## 3. `ASR` × `ADR`
|
||
|
||
| `ASR` | Phát biểu ngắn | `ADR` hiện thực hoá | Trạng thái ADR | Đứt |
|
||
|---|---|---|---|---|
|
||
| `ASR-001` | | `ADR-005` | Accepted | |
|
||
| `ASR-004` | | — | — | 🔴 |
|
||
|
||
🔴 `ASR` không có `ADR` = yêu cầu định hình kiến trúc mà không ai quyết định gì. **Chặn AG2.**
|
||
|
||
**Đọc ngược** — `ADR` không phục vụ `ASR`/`QAS` nào:
|
||
|
||
| `ADR` | Quyết định gì | Nguồn ghi trong §1 | Hợp lệ? |
|
||
|---|---|---|---|
|
||
| `ADR-006` | | *(trống)* | 🟠 — sở thích cá nhân? hạ xuống `DEC-nn`? |
|
||
|
||
## 4. `ADR` × `CMP`
|
||
|
||
| | `CMP-01` | `CMP-02` | … | **Không hiện ở đâu** |
|
||
|---|---|---|---|---|
|
||
| `ADR-001` | ● | ● | | |
|
||
| `ADR-008` | | | | 🟠 |
|
||
|
||
**Đọc ngược** — `CMP` không phục vụ `ASR` nào và không có nhu cầu chức năng rõ:
|
||
|
||
| `CMP` | Trách nhiệm | Sinh từ | Hợp lệ? |
|
||
|---|---|---|---|
|
||
| `CMP-07` | | *(trống)* | 🟠 — có ai cần nó không? |
|
||
|
||
## 5. `QAS` × kiểm chứng
|
||
|
||
| `QAS` | Mức | Bài đo (`FIT`/tên bài) | Đã chạy | Kết quả | Nguồn kết quả | Đứt |
|
||
|---|---|---|---|---|---|---|
|
||
| `QAS-001` | Must | `FIT-05` / `perf/api.js` | ✅ | p95 240ms | `CONF` 2026-09 | |
|
||
| `QAS-009` | Must | — | — | — | — | 🔴 |
|
||
|
||
🔴 `QAS` mức Must không có bài đo ⇒ **chặn AG3**. Cam kết không kiểm chứng được không phải cam kết.
|
||
|
||
## 6. Ràng buộc `AGD` × `FIT`
|
||
|
||
| Ràng buộc `AGD` | Nguồn | `FIT` | Nhãn `⚠️ Khuyến nghị` | Đứt |
|
||
|---|---|---|---|---|
|
||
| §3.1-1 | `ADR-002` | `FIT-01` | — | |
|
||
| §3.2-2 | `DAT` §1 | — | — | 🔴 |
|
||
| §3.4-2 | `SEC` §3 | — | ✅ có nhãn + cách kiểm thủ công | |
|
||
|
||
🔴 Không có `FIT` **và** không có nhãn ⇒ chặn AG3 (quy tắc `D8`).
|
||
|
||
## 7. Kiểm tra chuyên biệt
|
||
|
||
### 7.1 Interface
|
||
|
||
| `IF-nnn` | Chủ sở hữu contract | Contract tồn tại | Versioning policy | `FM` khi hỏng | Đứt |
|
||
|---|---|---|---|---|---|
|
||
|
||
### 7.2 Dữ liệu
|
||
|
||
| Thực thể | Số chủ sở hữu | Hợp lệ | Ghi chú |
|
||
|---|---|---|---|
|
||
| | 1 / **2** / 0 | | 🔴 nếu ≠ 1 |
|
||
|
||
### 7.3 Bảo mật
|
||
|
||
| `THR-nn` | Có biện pháp | Có cách kiểm chứng | Đứt |
|
||
|---|---|---|---|
|
||
|
||
### 7.4 Đường lỗi
|
||
|
||
| Phụ thuộc ngoài process *(từ `SAD`+`ICD`)* | Có `FM-nn` | Trả lời đủ 4 câu | Đứt |
|
||
|---|---|---|---|
|
||
|
||
## 8. Đối chiếu chéo với bộ BA
|
||
|
||
| Kiểm | Kết quả | Hành động |
|
||
|---|---|---|
|
||
| Mọi `NFR-nn` của BA có `QAS` tương ứng | / | |
|
||
| Mọi endpoint trong `API` của BA có `IF-nnn` | / | |
|
||
| Mọi `ROLE-nn` trong `RBAC` map xuống `SEC` §3.1 | / | |
|
||
| `BR-nnn` ép ràng buộc kiến trúc đã có `ADR` | / | |
|
||
|
||
## 9. ID trùng lặp
|
||
|
||
*Lỗi nghiêm trọng hơn mọi chỗ đứt — hai thứ khác nhau mang cùng một tên.*
|
||
|
||
| ID | Xuất hiện ở | Mức |
|
||
|---|---|---|
|
||
| | file A §… và file B §… | 🔴 |
|
||
|
||
## 10. Tham chiếu gãy
|
||
|
||
| Từ | Trỏ tới | Vấn đề |
|
||
|---|---|---|
|
||
| `SAD` §4.1 | `ADR-014` | Không tồn tại |
|
||
| `AGD` §3.1 | `ADR-002` | ADR đã `Superseded by ADR-011` |
|
||
|
||
## 11. Phát hiện — xếp theo mức
|
||
|
||
### 🔴 Chặn gate
|
||
|
||
| # | Phát hiện | File · mục | Hành động | Skill sửa | Chặn |
|
||
|---|---|---|---|---|---|
|
||
| 1 | | | | | AG2 |
|
||
|
||
### 🟠 Nợ — phải trả trước gate sau
|
||
|
||
| # | Phát hiện | File · mục | Hành động | Skill sửa |
|
||
|---|---|---|---|---|
|
||
|
||
### 🟡 Cải thiện
|
||
|
||
| # | Phát hiện | File · mục | Hành động |
|
||
|---|---|---|---|
|
||
|
||
## 12. Kết luận gate
|
||
|
||
```
|
||
AG2: 🔴 CHẶN / ✅ QUA — <lý do một dòng>
|
||
AG3: 🔴 CHẶN / ✅ QUA / — chưa tới
|
||
AG4: — chưa tới
|
||
```
|
||
|
||
**Việc gần nhất:** `<lệnh>`
|
||
|
||
## 13. Chấp nhận có ý thức
|
||
|
||
*Chỗ đứt được chấp nhận có ghi chép. Khác hoàn toàn với bỏ qua.*
|
||
|
||
| Chỗ đứt | Vì sao chấp nhận | Ai chấp nhận · ngày | Hạn xử lý | `DEC` |
|
||
|---|---|---|---|---|
|