Files
sys-analysis-design/.claude/skills/sa-4-evolution/templates/conformance-report.md
Leonard-ThindPad-P50 c81f249920 init git
2026-09-08 10:26:21 +07:00

164 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CONF — Architecture Conformance Report — <PROJECT> · kỳ <YYYY-MM>
| | |
|---|---|
| **Version** | 1.0 |
| **Date** | YYYY-MM-DD |
| **Author** | <SA> (skill sa-4-evolution) |
| **Status** | 🟡 Draft |
| **Approved by** | PO: — · SRE: — · EA: — |
| **Source** | QAS_… v1.1 · TCO_… v1.0 · INF_… v1.0 · hoá đơn … · dashboard … · log sự cố … |
| **Scope** | Kỳ … |
| **Confidence** | 🟢 *(số đo thật)* / 🟡 *(một phần ước lượng)* |
## Change Log
| Version | Date | Người sửa | Thay đổi |
|---|---|---|---|
| 1.0 | | | Bản đầu |
> Mỗi kỳ một file, **không ghi đè kỳ trước**. So sánh giữa các kỳ là nơi xu hướng lộ ra.
---
## 1. Tóm tắt
| | Đạt | Không đạt | **Chưa đo được** |
|---|---|---|---|
| `QAS` mức Must | | | |
| `QAS` mức Should | | | |
| | Ước lượng | Thực tế | Chênh |
|---|---|---|---|
| Chi phí hạ tầng/tháng | | | % |
| | Số |
|---|---|
| Sự cố trong kỳ | |
| — truy về một `ADR` | |
| — truy về một `ASM` sai | |
| — **điểm mù mới** | |
| Drift phát hiện được | |
**Ba việc cần xử lý trước:** … *(dẫn sang `TRM`)*
---
## 2. `QAS` × telemetry thật
| `QAS` | Mục tiêu | Đo được | Nguồn đo | Kết quả | Ghi chú / `TD` |
|---|---|---|---|---|---|
| `QAS-001` | p95 ≤ 300ms | | Grafana … | ✅ / ❌ / ⚠️ | |
| `QAS-004` | ≤ 45 phút | | | | |
**Ký hiệu:** ✅ đạt · ❌ không đạt · ⚠️ **chưa đo được**
🔴 **⚠️ không nhẹ hơn ❌ — nó nặng hơn.** ❌ nghĩa là ta biết mình đang ở đâu; ⚠️ nghĩa là ta
không biết gì cả. Mỗi mục ⚠️ phải ghi rõ vì sao chưa đo được:
| `QAS` | Vì sao chưa đo được | Cần gì để đo được | Vào `TRM` |
|---|---|---|---|
| | cách đo ở AG2 không khả thi / thiếu observability / chưa có bài đo | | ☐ |
**Xu hướng so với kỳ trước**
| `QAS` | Kỳ trước | Kỳ này | Xu hướng |
|---|---|---|---|
| | | | ↗ xấu đi · → ổn định · ↘ tốt lên |
## 3. `TCO` × hoá đơn thật
| Hạng mục | Ước lượng | Thực tế | Chênh | Giải thích |
|---|---|---|---|---|
| Compute | | | % | |
| CSDL | | | | |
| Cache | | | | |
| Lưu trữ | | | | |
| Message broker | | | | |
| **Egress** | | | | |
| Observability | | | | |
| Non-prod | | | | |
| **Tổng** | | | % | |
**Chênh lệch > 20% — truy nguyên** *(phải thuộc một trong bốn loại)*
| Hạng mục | Chênh | Loại nguyên nhân | Chi tiết | Hành động |
|---|---|---|---|---|
| | | ① tải khác dự kiến · ② cấu hình khác thiết kế · ③ bỏ sót khi ước lượng · ④ đơn giá đổi | | |
🔴 **Không thuộc bốn loại trên ⇒ đang có thứ gì đó chạy mà không ai biết.** Đây là phát hiện
nghiêm trọng, không phải chuyện kế toán.
**Chi phí trên đơn vị nghiệp vụ** *(chỉ số này ổn định hơn tổng chi phí)*
| | Kỳ trước | Kỳ này |
|---|---|---|
| Chi phí / 1.000 giao dịch | | |
| Chi phí / người dùng hoạt động | | |
## 4. Sự cố × quyết định kiến trúc
| Sự cố | Ngày | Ảnh hưởng | Truy về | Chi tiết | Hành động |
|---|---|---|---|---|---|
| `INC-…` | | … phút downtime | `ADR-nnn` | Hệ quả đã ghi trong ADR §5 | Không cần đổi |
| `INC-…` | | | `ASM-nn` **sai** | Giả định "…" không đúng thực tế | Sửa `ASM`, rà mọi thứ dựa trên nó |
| `INC-…` | | | 🔴 **điểm mù mới** | Không tài liệu nào nói tới | Thêm `QAS-nnn` + `FM-nn` + `FIT-nn` |
🔴 **Điểm mù mới là phát hiện có giá trị nhất của cả báo cáo.** Nó là thứ không ai nghĩ tới —
và bây giờ đã nghĩ tới. Ghi kỹ, đừng gộp vào các dòng khác.
**Ngân sách lỗi**
| `QAS` sẵn sàng | Ngân sách/tháng | Đã dùng | Còn lại |
|---|---|---|---|
| `QAS-007` 99.9% | 43 phút | | |
Dùng hết ngân sách lỗi ⇒ dừng phát hành tính năng mới, ưu tiên ổn định. Quy tắc này ai chốt: …
## 5. Drift — thiết kế × đang chạy
| # | Loại drift | Phát hiện bằng | Chi tiết | Mức | Hành động |
|---|---|---|---|---|---|
| 1 | `FIT` đỏ hoặc bị tắt | lịch sử CI | | | |
| 2 | Component có trong code, không có trong `SAD` | so repo/deployment | | | Cập nhật `SAD` hoặc gỡ bỏ |
| 3 | Interface đang gọi, không có trong `ICD` | **trace/log** | | | |
| 4 | Cấu hình khác `INF` | so IaC thật | | | |
| 5 | Whitelist `FIT` quá hạn | `FIT` §3 | | | |
| 6 | `TD` quá hạn xét lại | `TDEBT` | | | |
🔴 **Loại 3 phải tìm bằng trace/log, không bằng đọc code.** Lời gọi phát sinh lúc chạy (qua
cấu hình, plugin, job định kỳ) không lộ ra khi đọc code tĩnh.
**Kết luận về drift:** kiến trúc đang chạy *(còn khớp thiết kế / đã trôi ở …)*
## 6. `ADR` cần xem lại
| `ADR` | Điều kiện xét lại (§7 của ADR) | Đã chạm ngưỡng | Hành động |
|---|---|---|---|
| `ADR-nnn` | thông lượng vượt … | ☐ | |
| `ADR` | Bị thực tế bác bỏ ở đâu | ADR thay thế |
|---|---|---|
| | | `ADR-nnn` |
*Không sửa nội dung `ADR` cũ. Viết ADR mới có `Supersedes:`.*
## 7. Bài học kỳ này
| Bài học | Sinh từ | Áp dụng vào đâu |
|---|---|---|
| | sự cố / drift / chênh lệch chi phí | `AGD` / `FIT` / quy trình / dự án sau |
## 8. Đề xuất cho `TRM`
*Xếp theo lợi ích/chi phí. **Không xếp thứ tự ưu tiên thay PO** — trình bảng, PO xếp.*
| # | Việc | Chi phí | Lợi ích *(bằng số)* | Rủi ro nếu không làm | Sinh từ |
|---|---|---|---|---|---|
| 1 | | … ngày công | … /tháng | | §3 |
## 9. Open Questions
| ID | Câu hỏi | Hỏi ai | Từ ngày | Chặn gì |
|---|---|---|---|---|