update skill ba

This commit is contained in:
Canhchimlac
2026-09-11 23:01:18 +07:00
parent 2c7bcde741
commit d169c85dd4
51 changed files with 4111 additions and 30 deletions

View File

@@ -95,9 +95,9 @@ một phần".
🔴 **Phép kiểm bị bỏ vì profile phải được ghi ra trong báo cáo**, kèm lý do — đừng lặng lẽ
tính coverage trên tập nhỏ hơn rồi báo 100%.
### Bước 3 — Sáu phép kiểm nhất quán
### Bước 3 — Tám phép kiểm nhất quán
Ngoài coverage, kiểm tra tài liệu có mâu thuẫn nhau không:
Ngoài coverage, kiểm tra tài liệu có mâu thuẫn nhau không (6 phép cho mọi loại + 2 phép riêng cho design, `screen`):
| # | Phép kiểm | Cách kiểm | Ví dụ lỗi bắt được |
|---|---|---|---|
@@ -105,8 +105,10 @@ Ngoài coverage, kiểm tra tài liệu có mâu thuẫn nhau không:
| 2 | **Ràng buộc lệch** | Bảng field trong `SRS` vs. bảng ràng buộc trong `API` | UI chặn 20 ký tự, API chặn 50 |
| 3 | **Mã lỗi lệch** | Mã trong `SRS` §4.1 vs. mã trong `API` §4 | Mã lỗi không endpoint nào sinh ra |
| 4 | **Trạng thái lệch** | Trạng thái trong `BR` vs. trạng thái dùng trong `SRS`/`RBAC` | RBAC phân quyền cho trạng thái không tồn tại |
| 5 | **Thành phần lệch** *(screen)* | Tập `C-id`/`F-id` trong `SRS` §2.3.1/§2.3.3 vs. `WF` §3.x.2 và `data-c` trong `WF.html` — **hai chiều** | Nút có trong WF (từ prototype) mà SRS không đặc tả hành vi; hoặc SRS có nút mà WF không đặt chỗ |
| 5 | **Thành phần lệch** *(screen)* | Tập `C-id`/`F-id` trong `SRS` §2.3.1/§2.3.3 vs. `WF` §3.x.2, `data-c` trong `WF.html` **và** `data-c`/`data-f` trong `HIFI.html` — **hai chiều** | Nút có trong WF (từ prototype) mà SRS không đặc tả hành vi; hoặc SRS có nút mà WF không đặt chỗ |
| 6 | **Quy ước lệch** *(screen)* | `SRS` §2.3.2/§2.3.6/§4.3 định nghĩa phân trang, trạng thái, định dạng khác `UICONV` mà `UICONV` §12 không có dòng | Hai SRS hai kiểu phân trang; múi giờ hiển thị khác nhau |
| 7 | **Text lệch** *(screen · design)* | Text của mọi `data-key` trong `HIFI.html` vs. bảng `SRS` §4.2 — phải **nguyên văn** (W5) | Design "làm gọn" nhãn: SRS "Tạo mới", HIFI "Tạo"; message lỗi viết lại |
| 8 | **Token lệch** *(screen · design)* | Khối `:root`/`ds-components` trong `HIFI` vs. `00-index/ds/`; mã màu thô trong markup HIFI; màu trong `FIGMA/*.svg` ∉ `tokens.json`; `SCR` của SRS §2.1 thiếu trong HIFI/SVG | HIFI dùng `#333` không có trong DS; SVG còn màu cũ sau khi đổi token; màn hình lỗi không có mockup |
Phép 1 chạy được bằng máy: so `Source:` trong header với version thật của file được trích dẫn.
Phép 5 cũng vậy:
@@ -117,6 +119,19 @@ grep -oE "\b[CF][0-9]{2}\b|data-c=\"[CF][0-9]{2}\"" WF_<US>*.md WF_<US>*.html |
comm -3 /tmp/srs_ids /tmp/wf_ids # phải rỗng
```
Phép 5 (phần `HIFI`), 7 và 8 chạy bằng script của `ba-design` — chép kết quả nguyên văn vào RTM §4:
```bash
node .claude/skills/ba-design/scripts/design-check.mjs \
--tokens ba-output/<P>/00-index/ds/tokens.json --css ba-output/<P>/00-index/ds/tokens.css \
--components ba-output/<P>/00-index/ds/components.html \
--html ba-output/<P>/03-specification/design/HIFI_<US>_v1.0.html \
--srs ba-output/<P>/03-specification/SRS_<US>_v1.0.md --wf ba-output/<P>/03-specification/WF_<US>_v1.0.md \
--svg-dir ba-output/<P>/03-specification/design/FIGMA_<US>_v1.0
```
Không chạy được ⇒ ghi "chưa kiểm bằng máy" cho phép 7–8, không báo "không lệch". H3/H4 🔴 ⇒ **chặn G3**.
Ngoài ra với `screen`: đọc `WF` §5 — mỗi dòng loại **Tồn tại/Hành vi** có trạng thái ☐ là một
blocker G3, liệt kê đích danh. `WF` không có §5 hoặc §5 trống không ghi "đã đối chiếu" ⇒ báo
"chưa đối chiếu prototype", không phải "không lệch".
@@ -165,7 +180,7 @@ Phép kiểm thêm: đối soát nguồn–đích · lưu vết mọi hành đ
Sửa bằng: /ba-2-analysis Settlement --only br
```
**③ Bảng nhất quán** — bốn phép kiểm ở Bước 3, mỗi mâu thuẫn một dòng.
**③ Bảng nhất quán** — tám phép kiểm ở Bước 3, mỗi mâu thuẫn một dòng; phép 7–8 kèm dòng kết quả `design-check`.
**④ `OQ`/`CR` tồn đọng** — sắp theo số ngày quá hạn giảm dần.