update skill and docs

This commit is contained in:
Canhchimlac
2026-09-22 13:46:36 +07:00
parent 343ad8bbbc
commit 51506aabc7
149 changed files with 43752 additions and 300 deletions

View File

@@ -28,6 +28,9 @@ Sáu chỗ đứt phải phát hiện được, và mỗi chỗ có nghĩa khác
| `QAS` không có bài đo | Cam kết không kiểm chứng được | 🔴 chặn AG3 (mức Must) |
| Ràng buộc `AGD` không có `FIT` và không có nhãn khuyến nghị | Sẽ bị vi phạm mà không ai biết | 🔴 chặn AG3 |
| `CMP` không phục vụ `ASR` nào và không có nhu cầu chức năng rõ | Thành phần thừa | 🟠 |
| `IF` không có file contract trong `CTR` (còn "dự kiến") | Dev FE/BE mỗi bên tự viết một bản | 🔴 chặn AG2 |
| Thực thể `DAT` không có bảng `PDM`, hoặc `MIG` không có down | Dev tự đặt schema; migration một chiều | 🔴 chặn AG2 |
| Sơ đồ không có spec Archify / spec chưa validate | Sơ đồ không kiểm được, không render được cho dev | 🟠 |
## Bốn nguyên tắc bất di bất dịch
@@ -63,8 +66,12 @@ Bỏ bước dừng khi lệnh có `go`.
| `QAS`/`ASR` | `QAS-nnn`, `ASR-nnn` |
| `SAD` | `CMP-nn` |
| `adr/` | `ADR-nnn` + trạng thái + `Supersedes`/`Superseded by` |
| `ICD` | `IF-nnn` |
| `ICD` | `IF-nnn` + cột "Contract ở đâu" (file thật hay "dự kiến") |
| `CTR` + `contracts/**/*.yaml` | `CTR-nn`, `x-if: IF-nnn`, `operationId`, `x-error-codes` |
| `DAT` | thực thể + chủ sở hữu |
| `DOM` | aggregate/class + invariant ↔ `BR-nnn` |
| `PDM` + `schema/**/*.sql` | `TBL-nnn` ↔ thực thể `DAT` · `MIG-nnn` (có `.down.sql`?) · cột PII |
| `HANDOFF` | dòng ☐/✅ ở §2 |
| `SEC` | `THR-nn` |
| `FAIL` | `FM-nn` |
| `AGD` | ràng buộc §3 |
@@ -84,6 +91,8 @@ ID trùng nhau ở hai file ⇒ 🔴 báo ngay, đó là lỗi nghiêm trọng h
| `ASR` × `ADR` | Yêu cầu này được quyết định thế nào | Quyết định này phục vụ gì |
| `ADR` × `CMP` | Quyết định này hiện ra ở đâu trong hệ thống | Component này tồn tại vì gì |
| `QAS` × bài đo × `FIT` | Cam kết này kiểm chứng bằng gì | Bài kiểm này bảo vệ cam kết nào |
| `IF` × `CTR` (file + `x-if`) | Interface này dev code theo file nào | File contract này phục vụ interface nào |
| `DAT` thực thể × `DOM` class × `PDM` `TBL` | Thực thể này là class nào, bảng nào | Bảng này tồn tại vì thực thể nào |
**Đọc ngược quan trọng hơn đọc xuôi.** Đọc xuôi tìm chỗ thiếu; đọc ngược tìm chỗ thừa — và
chỗ thừa (component không ai cần, ADR không phục vụ gì) thường không bao giờ bị phát hiện.
@@ -114,6 +123,10 @@ ADR → nguồn 14/16 88% 🟠 không nguồn: ADR-006, ADR-012
QAS(Must) → bài đo 6/9 67% 🔴 thiếu: QAS-009, QAS-011, QAS-012 → chặn AG3
Ràng buộc AGD → FIT 12/18 67% 🔴 thiếu và không có nhãn: §3.2-2, §3.4-3
CMP → ASR 9/11 82% 🟠 không phục vụ ASR nào: CMP-07, CMP-10
IF → CTR (x-if) 14/17 82% 🔴 chưa có file: IF-007, IF-008, IF-020 → chặn AG2
DAT thực thể → PDM 12/12 100% ✅
MIG có down 3/4 75% 🔴 thiếu down: MIG-003 → chặn AG2
Sơ đồ có spec Archify 6/8 75% 🟠 thiếu spec: SAD §5, SEC §1
```
### Bước 5 — Xếp phát hiện và kết luận gate