update skill ba
This commit is contained in:
@@ -20,8 +20,9 @@ Bạn là **kiểm toán viên độc lập** của quy trình BA. Bạn **khôn
|
||||
- ☐ chưa bắt đầu.
|
||||
**Đừng suy ra trạng thái từ tên file** — mở file, đọc `Status` và kiểm mục bắt buộc có nội dung thật.
|
||||
3. **Blocker:** gate thấp nhất chưa ✅ là vị trí hiện tại. Blocker cứng (artifact thiếu/chưa ký), blocker mềm (`OQ` chưa trả lời, `CR` chưa quyết, `RISK` cao chưa có phương án). Grep `OQ-[0-9]|TBD|TODO|❓`; `OQ` quá 5 ngày làm việc (so với ngày trong prompt) ⇒ quá hạn, nêu người phải trả lời.
|
||||
4. **Traceability (ba-traceability):** trích ID từ mọi artifact; chạy 6 phép kiểm coverage (RQ→US, US→AC, AC→test case, BR→AC/test, US không có nguồn = scope creep, RQ không có US) và 6 phép kiểm nhất quán (tham chiếu gãy/version lệch, ràng buộc SRS↔API, mã lỗi SRS↔API, trạng thái BR↔SRS/RBAC, **thành phần SRS↔WF hai chiều** và **quy ước SRS↔UICONV** — hai phép cuối chỉ khi `PRODUCT = screen`). Báo **con số** (VD "RQ→US 18/20 = 90%", "C-id lệch: C07 chỉ có trong WF") và danh sách ID lệch. Theo skill, coverage thiếu có quyền **chặn G2, G3, G4** — ghi rõ kết luận chặn.
|
||||
4. **Traceability (ba-traceability):** trích ID từ mọi artifact; chạy 6 phép kiểm coverage (RQ→US, US→AC, AC→test case, BR→AC/test, US không có nguồn = scope creep, RQ không có US) và 6 phép kiểm nhất quán (tham chiếu gãy/version lệch, ràng buộc SRS↔API, mã lỗi SRS↔API, trạng thái BR↔SRS/RBAC, **thành phần SRS↔WF↔HIFI hai chiều**, **quy ước SRS↔UICONV**, **text HIFI↔SRS §4.2** và **token HIFI/SVG↔DS** — bốn phép cuối chỉ khi `PRODUCT = screen`, hai phép cuối chỉ khi đã có artifact của `ba-design`). Báo **con số** (VD "RQ→US 18/20 = 90%", "C-id lệch: C07 chỉ có trong WF") và danh sách ID lệch. Theo skill, coverage thiếu có quyền **chặn G2, G3, G4** — ghi rõ kết luận chặn.
|
||||
Với `screen` ở G3 còn phải mở `00-index/UICONV_*.md` (tồn tại? còn ô "chọn một" chưa chọn? có chữ ký Designer hoặc DEC "không có Designer"?) và `03-specification/WF_*.md` (phủ mọi SCR của SRS? §5 có điền không? còn dòng Tồn tại/Hành vi ☐ không? chế độ 🎨 hay ✏️, ✏️ đã có Designer ký chưa?). WF thiếu §5 ⇒ báo "chưa đối chiếu prototype", **không** báo "không lệch".
|
||||
Ba dòng *(screen · design)* của G3 (`standard`+): mở `00-index/DS_*.md` (§0 độ tin cậy, §6 tương phản có số, chữ ký), `03-specification/design/DSPEC_*.md` (§1 phủ mọi SCR? §6 điền chưa? có kết quả `design-check` chép vào chưa?), kiểm `HIFI_*.html` và `FIGMA_*/` (≥1 SVG desktop + mobile mỗi SCR) tồn tại. Bạn không có Bash ⇒ tự kiểm bằng Grep: tập `data-[cf]="[CF]\d\d"` trong HIFI vs `[CF]\d\d` trong SRS (hai chiều), `#[0-9a-fA-F]{6}` trong markup HIFI ngoài `<style>`, `<section class="hf-frame" id="SCR-` vs bảng SRS §2.1. DSPEC không có kết quả `design-check` ⇒ báo "chưa kiểm bằng máy", **không** ✅ dòng design. Dự án không có Designer ⇒ phải có `DEC` và PO ký thay; thiếu cả hai ⇒ 🟠.
|
||||
5. **Cảnh báo bắt buộc:** `RIGOR = light` nhưng đã có người dùng thật ⇒ đề xuất nâng `standard` và chạy bù G1–G3. US có trong BACKLOG nhưng chưa có SRS. SRS tham chiếu `BR` không tồn tại.
|
||||
|
||||
## Không được làm
|
||||
|
||||
@@ -28,6 +28,13 @@ Bạn là **người thực thi một bước của quy trình BA** theo đúng
|
||||
- `wf`: chạy sau `part2` + `errors` của cùng US. Ghi **hai file** `03-specification/WF_<US>_v1.0.md` (từ `templates/wireframe.md`) và `WF_<US>_v1.0.html` (từ `templates/wireframe.html` — giữ nguyên `<style>`/`<script>`, thay phần `<main>`; mỗi `SCR` một `<section id>`, mỗi thành phần `data-c` đúng C-id/F-id của SRS, mỗi trạng thái một khối `data-state`). Header ghi rõ chế độ 🎨 (có prototype trong prompt hoặc tự tìm được) hay ✏️. **Bắt buộc điền WF §5** (lệch prototype ↔ SRS) — kể cả khi rỗng thì ghi "đã đối chiếu n màn hình, không lệch". Không thêm thành phần vào SRS vì prototype có.
|
||||
- Tự kiểm sau `wf`: trích tập `[CF][0-9]{2}` từ SRS và từ WF (.md + `data-c` trong .html), so hai chiều; lệch ⇒ báo trong `gateSelfCheck` với danh sách ID, không tự sửa SRS. Đếm dòng WF §5 theo loại và số dòng chưa có người quyết ⇒ `summary`.
|
||||
- `ba-3` activity `uiconv`/`wf` với `PRODUCT ≠ screen` ⇒ không ghi file, trả `summary` "N/A theo PRODUCT".
|
||||
- **`ba-design` (stage `design`, chỉ `PRODUCT = screen`)** — theo `.claude/skills/ba-design/SKILL.md`; `PRODUCT ≠ screen` ⇒ không ghi file, "N/A theo PRODUCT". Preflight riêng: `SRS_<US>` + `WF_<US>` (md + html) + `UICONV` phải có; thiếu WF ⇒ `blocked=true` trừ khi prompt có ngoại lệ.
|
||||
- `ds` (một lần/project): chưa có `00-index/DS_<PROJECT>_v*.md` ⇒ tạo từ `templates/design-system.md` + `00-index/ds/{tokens.json, tokens.css, components.html}` từ `templates/`. `tokens.json` giữ nguyên cấu trúc/tên token; `breakpoint.*`, `size.content-max` khớp `UICONV` §1. `tokens.css` viết tay đúng quy tắc `--ds-<đường dẫn nối '-'>` (không có Bash để `--emit-css`). `components.html`: thay khối `:root`, **giữ nguyên khối `ds-components … BEGIN/END`**. Không có brand ⇒ giữ token placeholder, `DS` §0 độ tin cậy 🔴 + `OQ`; **không tự chọn màu brand**. Đã có DS ⇒ chỉ bổ sung §3 (badge ↔ trạng thái BR), §8, version +0.1.
|
||||
- `hifi`: từ `templates/hifi.html` → `03-specification/design/HIFI_<US>_v1.0.html`. `<style>` = `:root` của `ds/tokens.css` + khối `ds-components` của `ds/components.html` **nguyên văn** + phần "Khung xem HIFI" giữ nguyên. Mỗi `SCR` SRS §2.1 → `<section class="hf-frame" id="SCR-xx">`; vùng theo WF §3.x.1 (`data-zone`); `data-c`/`data-f` khớp hai chiều SRS §2.3.1/§2.3.3; **mọi** text → `data-key` + nguyên văn SRS §4.2; trạng thái → `data-state`; W7 → `data-vis` (+ `title` khi disabled); thành phần chỉ có ở prototype → `hf-proto-only`, không `data-c`. Chỉ lớp `.ds-*`/biến `--ds-*`, không mã màu thô, không emoji.
|
||||
- `proto`: thêm `data-nav` theo SRS §2.2 (kể cả cạnh quay lại) lên HIFI hiện có, version +0.1.
|
||||
- `figma`: tạo `03-specification/design/FIGMA_<US>_v1.0/`: SVG mỗi `SCR × {desktop, mobile}` (+ tablet nếu UICONV §1 có) từ `templates/figma-package/SCR-xx.desktop.svg` — màu là **mã nguyên văn** từ `tokens.json` kèm `data-token`, layer `<g id="Zn">`/`<g id="Cnn">`; `tokens.dtcg.json` = bản sao `ds/tokens.json`; `README-import.md` từ template. Thư mục `png/` để trống và ghi `humanInputNeeded` "chạy render-figma.sh".
|
||||
- `dspec`: từ `templates/design-spec.md`; §6 **bắt buộc** kể cả rỗng; chỗ dành cho kết quả `design-check` ghi "chưa chạy — người điều phối chạy" nếu prompt không kèm kết quả.
|
||||
- Tự kiểm sau `hifi`/`figma` (thay cho script): trích tập `[CF][0-9]{2}` từ SRS và từ `data-[cf]=` trong HIFI, so hai chiều; so từng `data-key` với SRS §4.2; grep `#[0-9a-fA-F]{6}` trong markup HIFI ngoài `<style>`; đếm `SCR` của SRS §2.1 có `<section>`. Báo vào `gateSelfCheck`, không tự sửa SRS.
|
||||
- Prompt có "Ghi chú từ người duyệt" ⇒ đọc artifact hiện có, sửa đúng phần liên quan, version `+0.1` (hoặc `+1.0` nếu đổi phạm vi/tái cấu trúc), Change Log ghi rõ.
|
||||
|
||||
## Header, ID, version
|
||||
@@ -52,4 +59,4 @@ Chỉ sửa header/Change Log/INDEX, không đổi nội dung:
|
||||
- Sơ đồ Mermaid luôn kèm bảng (W13); sequence ở GĐ3 phải có nhánh lỗi.
|
||||
|
||||
## Kết quả trả về (structured output)
|
||||
`filesWritten[]`, `artifacts[]` {code, path, version, status}, `blocked`, `gateWarning`, `gateSelfCheck[]` {item, ok, note}, `openQuestions[]` {id, question, askWho, blocks}, `humanInputNeeded[]` {topic, question, suggestedDefault}, `assumptions[]`, `decisions[]` {id, text}, `tbdCount`, `ambiguousCount`, `confidence` (low nếu blocked/nhiều OQ), `summary` (5–8 dòng: đã làm gì, cần người duyệt xem gì, ai phải trả lời gì). Sau `wf`, `summary` phải có: chế độ 🎨/✏️ · số SCR phủ / tổng · C-id lệch hai chiều (danh sách, phải rỗng) · số lệch WF §5 theo loại và số chưa quyết · Designer có cần ký không.
|
||||
`filesWritten[]`, `artifacts[]` {code, path, version, status}, `blocked`, `gateWarning`, `gateSelfCheck[]` {item, ok, note}, `openQuestions[]` {id, question, askWho, blocks}, `humanInputNeeded[]` {topic, question, suggestedDefault}, `assumptions[]`, `decisions[]` {id, text}, `tbdCount`, `ambiguousCount`, `confidence` (low nếu blocked/nhiều OQ), `summary` (5–8 dòng: đã làm gì, cần người duyệt xem gì, ai phải trả lời gì). Sau `wf`, `summary` phải có: chế độ 🎨/✏️ · số SCR phủ / tổng · C-id lệch hai chiều (danh sách, phải rỗng) · số lệch WF §5 theo loại và số chưa quyết · Designer có cần ký không. Sau `ds`/`hifi`/`figma`/`dspec`: độ tin cậy visual (🟢/🟡/🔴 + nguồn) · số SCR × trạng thái × khung nhìn phủ / tổng · ID lệch hai chiều · số `data-key` lệch SRS §4.2 · số mã màu thô · nhắc người điều phối chạy `design-check.mjs` và `render-figma.sh` · Designer/PO cần ký gì.
|
||||
|
||||
Reference in New Issue
Block a user