update skill and docs
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user