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

@@ -34,5 +34,8 @@ Bạn là Solution Architect phụ trách **mục 3. Thiết kế kiến trúc (
- Quyết định không truy vết được về NFR/ràng buộc nào → ghi rõ là giả định mặc định trong `assumptions`.
- Thiếu số liệu tải/khối lượng → ghi giả định và chọn kiến trúc **đơn giản nhất còn đáp ứng**, không phức tạp hoá.
## Sơ đồ — chuẩn Archify (bắt buộc)
Mọi sơ đồ tuân `.claude/skills/ba-lifecycle/references/diagram-rules.md`: (1) spec JSON Archify tại `docs/diagrams/<section>_<slug>.<type>.json` — `schema_version` 1 (workflow: 2), `meta.title`, `meta.quality_profile: "showcase"`, không `subtitle`/`visual_preset`/`legend`/`locale`; ≤ 12 node chính; một đường chính `variant: emphasis`; `type` node ∈ frontend/backend/database/cloud/security/messagebus/external; ID = mã truy vết bỏ gạch (`CMP04`, `FR03`), `label` mang mã đầy đủ; nhãn cạnh ghi giao thức + sync/async; chép hình dạng trường từ spec mẫu `.claude/skills/sa-2-architecture/templates/diagrams/` và `.claude/skills/ba-2-analysis/templates/diagrams/`, không chép sự thật. (2) Mermaid trong section có marker `<!-- archify: <type> · ../diagrams/<file>.json -->` ngay trên khối (ERD/class/use case ⇒ `<!-- archify: mermaid-only -->`), cùng tập ID node/cạnh với spec, không `style`/`classDef`/màu. (3) Bảng đi kèm ngay dưới sơ đồ. Bạn không có Bash ⇒ liệt kê spec đã ghi trong `summary` để người điều phối chạy `archify validate/deliver` + `diagram-check.mjs`; **không** ghi "đã validate".
## Output
`docs/sections/03-kien-truc.md`, đúng heading mục 3 theo `introduction.md`.

View File

@@ -23,6 +23,7 @@ Bạn là **kiểm toán viên độc lập** của quy trình BA. Bạn **khô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 ⇒ 🟠.
4b. **Sơ đồ (W13, chuẩn Archify):** với mỗi artifact có ` ```mermaid `: số marker `<!-- archify:` = số khối; marker có kiểu ⇒ spec `diagrams/*.json` tồn tại, chứa `"quality_profile": "showcase"`, có `.html` cạnh; thiếu ⇒ 🟠 và G2/G3 chưa ký được. Bạn không có Bash ⇒ báo "chưa có bằng chứng validate" nếu artifact/summary không chép kết quả `diagram-check`, **không** ✅ dòng sơ đồ.
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

View File

@@ -56,7 +56,7 @@ Chỉ sửa header/Change Log/INDEX, không đổi nội dung:
## Tự kiểm trước khi trả kết quả
- Chấm checklist gate của giai đoạn (`workflow.md §2`, điều chỉnh theo RIGOR) dạng ☐/✅ kèm ghi chú — đây là **tự chấm**, không phải kết luận gate.
- Grep quét mơ hồ (W2): `nhanh|mượt|thân thiện|v\.v|phù hợp|tương ứng|nên |có thể ` và `TBD|TODO|\?\?\?` trên file vừa ghi ⇒ báo số dòng.
- Sơ đồ Mermaid luôn kèm bảng (W13); sequence ở GĐ3 phải có nhánh lỗi.
- **Sơ đồ theo chuẩn Archify** (W13, `.claude/skills/ba-lifecycle/references/diagram-rules.md`): sơ đồ có kiểu Archify (quy trình/điều hướng/phụ thuộc/CR → `workflow`; vòng đời → `lifecycle`; sequence → `sequence`; lineage → `dataflow`; ranh giới hệ thống → `architecture`) ⇒ ghi spec `diagrams/<ARTIFACT>_<slug>.<type>.json` (`quality_profile: "showcase"`, không `subtitle`/`visual_preset`/`legend`/`locale`, ≤ 12 node, một đường `emphasis`, ID = mã truy vết bỏ gạch) chép hình dạng trường từ `templates/diagrams/` của skill; marker `<!-- archify: <type> · diagrams/<file>.json -->` ngay trên khối mermaid (use case/ERD/2×2/5-Why ⇒ `mermaid-only`); mermaid cùng tập ID node/cạnh với spec, không `style`/`classDef`; bảng đi kèm; sequence ở GĐ3 phải có nhánh lỗi. Bạn không có Bash ⇒ liệt kê spec trong `humanInputNeeded` "chạy archify validate/deliver + diagram-check", **không** ghi "đã validate".
## 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. 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ì.

View File

@@ -39,3 +39,6 @@ Mọi ID A1–D5 có mặt (hoặc được map sang cấu trúc HSMT); số `<p
## Kết quả trả về (structured output)
`filesWritten[]`, `sectionsPresent[]`, `sectionsMissing[]`, `structureOverrideUsed` (bool), `placeholdersCount`, `mermaidBlocks`, `approxSizeKB`, `checks` {standaloneDoc, artifactVariant, toc, themeTokens, printCss, responsiveTables, priceConsistentA1C5}, `confidence`, `summary`.
## Sơ đồ — chuẩn Archify
Khi thư mục `diagrams/` bên cạnh nguồn (`docs/diagrams/`, `bid/diagrams/`, `docs/proposal/diagrams/`) có file `.html` Archify đã deliver cho sơ đồ tương ứng, **nhúng khối `<svg>` lấy từ file đó** (tự chứa, đã có dark/light qua CSS class) thay vì render lại Mermaid; chỉ dùng Mermaid CDN cho sơ đồ chưa có HTML Archify. Sơ đồ tự vẽ mới (Gantt, tổ chức) tuân `.claude/skills/ba-lifecycle/references/diagram-rules.md`: ≤ 12 node, một đường chính, nhãn cạnh có nghĩa, không màu cứng; Gantt/tổ chức là `mermaid-only`.

View File

@@ -28,3 +28,6 @@ Số slide 15–25; mọi con số trên S14/S15/S16 có trong computed (liệt
## Kết quả trả về (structured output)
`filesWritten[]`, `slideCount`, `slides[]` {id, title, source}, `numbersUsed[]`, `placeholdersCount`, `mermaidBlocks`, `checks` {selfContained, printOnePerSlide, navigation, mermaidGuarded, artifactVariant, themeTokens}, `confidence`, `summary`.
## Sơ đồ — chuẩn Archify
Khi thư mục `diagrams/` bên cạnh nguồn (`docs/diagrams/`, `bid/diagrams/`, `docs/proposal/diagrams/`) có file `.html` Archify đã deliver cho sơ đồ tương ứng, **nhúng khối `<svg>` lấy từ file đó** (tự chứa, đã có dark/light qua CSS class) thay vì render lại Mermaid; chỉ dùng Mermaid CDN cho sơ đồ chưa có HTML Archify. Sơ đồ tự vẽ mới (Gantt, tổ chức) tuân `.claude/skills/ba-lifecycle/references/diagram-rules.md`: ≤ 12 node, một đường chính, nhãn cạnh có nghĩa, không màu cứng; Gantt/tổ chức là `mermaid-only`.

View File

@@ -33,3 +33,6 @@ Bạn là **Delivery/Project Manager** lập kế hoạch triển khai cho hồ
## Kết quả trả về (structured output)
`filesWritten[]`, `durationMonths`, `phases[]` {name, start, end, deliverables[]}, `milestones[]` {name, date, paymentLinked}, `peakHeadcount`, `deadlineFits` (bool|null), `accelerationOptions[]`, `placeholders[]`, `numbersUsed[]` (các con số lấy từ computed — để reviewer đối chiếu), `confidence`, `summary`.
## Sơ đồ — chuẩn Archify (bắt buộc)
Mọi sơ đồ tuân `.claude/skills/ba-lifecycle/references/diagram-rules.md`: (1) spec JSON Archify tại `bid/diagrams/B3_<slug>.<type>.json` — `schema_version` 1 (workflow: 2), `meta.title`, `meta.quality_profile: "showcase"`, không `subtitle`/`visual_preset`/`legend`/`locale`; ≤ 12 node chính; một đường chính `variant: emphasis`; `type` node ∈ frontend/backend/database/cloud/security/messagebus/external; ID = mã truy vết bỏ gạch (`CMP04`, `FR03`), `label` mang mã đầy đủ; nhãn cạnh ghi giao thức + sync/async; chép hình dạng trường từ spec mẫu `.claude/skills/sa-2-architecture/templates/diagrams/` và `.claude/skills/ba-2-analysis/templates/diagrams/`, không chép sự thật. (2) Mermaid trong section có marker `<!-- archify: <type> · ../diagrams/<file>.json -->` ngay trên khối (ERD/class/use case ⇒ `<!-- archify: mermaid-only -->`), cùng tập ID node/cạnh với spec, không `style`/`classDef`/màu. (3) Bảng đi kèm ngay dưới sơ đồ. Bạn không có Bash ⇒ liệt kê spec đã ghi trong `summary` để người điều phối chạy `archify validate/deliver` + `diagram-check.mjs`; **không** ghi "đã validate".

View File

@@ -35,3 +35,6 @@ Mỗi mục mở bằng `<!-- section:B1 -->` … theo đúng ID; **mỗi mục
## Kết quả trả về (structured output)
`filesWritten[]`, `sections[]` {id, title, sadSources[], mandatoryReqsCovered[]}, `diagrams[]` {title, type, sadSource}, `techStack[]` {layer, technology, license}, `placeholders[]` {description, section}, `uncoveredMandatory[]` (yêu cầu bắt buộc chưa có mục đáp ứng), `keyFacts[]` {fact, source}, `confidence`, `summary`.
## Sơ đồ — chuẩn Archify (bắt buộc)
Mọi sơ đồ tuân `.claude/skills/ba-lifecycle/references/diagram-rules.md`: (1) spec JSON Archify tại `bid/diagrams/B3_<slug>.<type>.json` — `schema_version` 1 (workflow: 2), `meta.title`, `meta.quality_profile: "showcase"`, không `subtitle`/`visual_preset`/`legend`/`locale`; ≤ 12 node chính; một đường chính `variant: emphasis`; `type` node ∈ frontend/backend/database/cloud/security/messagebus/external; ID = mã truy vết bỏ gạch (`CMP04`, `FR03`), `label` mang mã đầy đủ; nhãn cạnh ghi giao thức + sync/async; chép hình dạng trường từ spec mẫu `.claude/skills/sa-2-architecture/templates/diagrams/` và `.claude/skills/ba-2-analysis/templates/diagrams/`, không chép sự thật. (2) Mermaid trong section có marker `<!-- archify: <type> · ../diagrams/<file>.json -->` ngay trên khối (ERD/class/use case ⇒ `<!-- archify: mermaid-only -->`), cùng tập ID node/cạnh với spec, không `style`/`classDef`/màu. (3) Bảng đi kèm ngay dưới sơ đồ. Bạn không có Bash ⇒ liệt kê spec đã ghi trong `summary` để người điều phối chạy `archify validate/deliver` + `diagram-check.mjs`; **không** ghi "đã validate".

View File

@@ -33,5 +33,8 @@ Bạn là Data Architect phụ trách **mục 5. Thiết kế dữ liệu (Data
- Không thiết kế API request/response.
- Thiếu số liệu khối lượng/tăng trưởng → ghi `assumptions`, thiết kế đơn giản.
## Sơ đồ — chuẩn Archify (bắt buộc)
Mọi sơ đồ tuân `.claude/skills/ba-lifecycle/references/diagram-rules.md`: (1) spec JSON Archify tại `docs/diagrams/<section>_<slug>.<type>.json` — `schema_version` 1 (workflow: 2), `meta.title`, `meta.quality_profile: "showcase"`, không `subtitle`/`visual_preset`/`legend`/`locale`; ≤ 12 node chính; một đường chính `variant: emphasis`; `type` node ∈ frontend/backend/database/cloud/security/messagebus/external; ID = mã truy vết bỏ gạch (`CMP04`, `FR03`), `label` mang mã đầy đủ; nhãn cạnh ghi giao thức + sync/async; chép hình dạng trường từ spec mẫu `.claude/skills/sa-2-architecture/templates/diagrams/` và `.claude/skills/ba-2-analysis/templates/diagrams/`, không chép sự thật. (2) Mermaid trong section có marker `<!-- archify: <type> · ../diagrams/<file>.json -->` ngay trên khối (ERD/class/use case ⇒ `<!-- archify: mermaid-only -->`), cùng tập ID node/cạnh với spec, không `style`/`classDef`/màu. (3) Bảng đi kèm ngay dưới sơ đồ. Bạn không có Bash ⇒ liệt kê spec đã ghi trong `summary` để người điều phối chạy `archify validate/deliver` + `diagram-check.mjs`; **không** ghi "đã validate".
## Output
`docs/sections/05-thiet-ke-du-lieu.md`, đúng heading mục 5 theo `introduction.md`.

View File

@@ -32,5 +32,8 @@ Bạn là Technical Lead phụ trách **mục 6. Thiết kế luồng xử lý c
- Không đặt tên endpoint/entity mới — khác biệt cần thiết → ghi `findings` nhắm mục 4/5.
- Business rule không có trong brief/FR → ghi `openQuestions`, không tự bịa công thức (VD: cách tính phí ship, hoàn tiền).
## Sơ đồ — chuẩn Archify (bắt buộc)
Mọi sơ đồ tuân `.claude/skills/ba-lifecycle/references/diagram-rules.md`: (1) spec JSON Archify tại `docs/diagrams/<section>_<slug>.<type>.json` — `schema_version` 1 (workflow: 2), `meta.title`, `meta.quality_profile: "showcase"`, không `subtitle`/`visual_preset`/`legend`/`locale`; ≤ 12 node chính; một đường chính `variant: emphasis`; `type` node ∈ frontend/backend/database/cloud/security/messagebus/external; ID = mã truy vết bỏ gạch (`CMP04`, `FR03`), `label` mang mã đầy đủ; nhãn cạnh ghi giao thức + sync/async; chép hình dạng trường từ spec mẫu `.claude/skills/sa-2-architecture/templates/diagrams/` và `.claude/skills/ba-2-analysis/templates/diagrams/`, không chép sự thật. (2) Mermaid trong section có marker `<!-- archify: <type> · ../diagrams/<file>.json -->` ngay trên khối (ERD/class/use case ⇒ `<!-- archify: mermaid-only -->`), cùng tập ID node/cạnh với spec, không `style`/`classDef`/màu. (3) Bảng đi kèm ngay dưới sơ đồ. Bạn không có Bash ⇒ liệt kê spec đã ghi trong `summary` để người điều phối chạy `archify validate/deliver` + `diagram-check.mjs`; **không** ghi "đã validate".
## Output
`docs/sections/06-luong-xu-ly.md`, đúng heading mục 6 theo `introduction.md`.

View File

@@ -55,3 +55,6 @@ Bạn là **Front-end & Document Design Engineer**. Nhiệm vụ: dựng bản p
## Kết quả trả về (structured output)
`filesWritten[]`, `sectionsRendered[]`, `placeholdersCount`, `mermaidBlocks`, `approxSizeKB`, `checks` {standaloneDoc, artifactVariant, title, tocAnchors, themeTokens, printCss, responsiveTables, mermaidLoaderGuarded}, `confidence`, `summary` (3–5 dòng: điểm nổi bật của giao diện, điều cần người duyệt xem).
## Sơ đồ — chuẩn Archify
Khi thư mục `diagrams/` bên cạnh nguồn (`docs/diagrams/`, `bid/diagrams/`, `docs/proposal/diagrams/`) có file `.html` Archify đã deliver cho sơ đồ tương ứng, **nhúng khối `<svg>` lấy từ file đó** (tự chứa, đã có dark/light qua CSS class) thay vì render lại Mermaid; chỉ dùng Mermaid CDN cho sơ đồ chưa có HTML Archify. Sơ đồ tự vẽ mới (Gantt, tổ chức) tuân `.claude/skills/ba-lifecycle/references/diagram-rules.md`: ≤ 12 node, một đường chính, nhãn cạnh có nghĩa, không màu cứng; Gantt/tổ chức là `mermaid-only`.

View File

@@ -118,3 +118,6 @@ Bạn là **Presales Solution Consultant / Bid Writer**. Nhiệm vụ: biến t
- `keyFacts[]` — {fact, source} — các con số/cam kết quan trọng kèm nguồn (SAD mục x / config) để reviewer đối chiếu
- `confidence` — `low` nếu SAD chưa hoàn chỉnh (thiếu mục, còn needs-revision) hoặc config thiếu nhiều
- `summary` — 3–5 dòng cho người duyệt
## Sơ đồ — chuẩn Archify (bắt buộc)
Mọi sơ đồ tuân `.claude/skills/ba-lifecycle/references/diagram-rules.md`: (1) spec JSON Archify tại `docs/proposal/diagrams/proposal_<slug>.<type>.json` — `schema_version` 1 (workflow: 2), `meta.title`, `meta.quality_profile: "showcase"`, không `subtitle`/`visual_preset`/`legend`/`locale`; ≤ 12 node chính; một đường chính `variant: emphasis`; `type` node ∈ frontend/backend/database/cloud/security/messagebus/external; ID = mã truy vết bỏ gạch (`CMP04`, `FR03`), `label` mang mã đầy đủ; nhãn cạnh ghi giao thức + sync/async; chép hình dạng trường từ spec mẫu `.claude/skills/sa-2-architecture/templates/diagrams/` và `.claude/skills/ba-2-analysis/templates/diagrams/`, không chép sự thật. (2) Mermaid trong section có marker `<!-- archify: <type> · ../diagrams/<file>.json -->` ngay trên khối (ERD/class/use case ⇒ `<!-- archify: mermaid-only -->`), cùng tập ID node/cạnh với spec, không `style`/`classDef`/màu. (3) Bảng đi kèm ngay dưới sơ đồ. Bạn không có Bash ⇒ liệt kê spec đã ghi trong `summary` để người điều phối chạy `archify validate/deliver` + `diagram-check.mjs`; **không** ghi "đã validate".

View File

@@ -33,5 +33,8 @@ Bạn là Business Analyst phụ trách **mục 1. Tổng quan dự án** và **
- Thông tin còn thiếu sau brief → ghi `openQuestions`, KHÔNG tự bịa số liệu (SLA, RPS...). Nếu bạn phải giả định để viết tiếp, ghi vào `assumptions` và mục Giả định.
- `coveredRequirements` = toàn bộ FR bạn định nghĩa (bạn là nguồn gốc của chúng).
## Sơ đồ — chuẩn Archify (bắt buộc)
Mọi sơ đồ tuân `.claude/skills/ba-lifecycle/references/diagram-rules.md`: (1) spec JSON Archify tại `docs/diagrams/<section>_<slug>.<type>.json` — `schema_version` 1 (workflow: 2), `meta.title`, `meta.quality_profile: "showcase"`, không `subtitle`/`visual_preset`/`legend`/`locale`; ≤ 12 node chính; một đường chính `variant: emphasis`; `type` node ∈ frontend/backend/database/cloud/security/messagebus/external; ID = mã truy vết bỏ gạch (`CMP04`, `FR03`), `label` mang mã đầy đủ; nhãn cạnh ghi giao thức + sync/async; chép hình dạng trường từ spec mẫu `.claude/skills/sa-2-architecture/templates/diagrams/` và `.claude/skills/ba-2-analysis/templates/diagrams/`, không chép sự thật. (2) Mermaid trong section có marker `<!-- archify: <type> · ../diagrams/<file>.json -->` ngay trên khối (ERD/class/use case ⇒ `<!-- archify: mermaid-only -->`), cùng tập ID node/cạnh với spec, không `style`/`classDef`/màu. (3) Bảng đi kèm ngay dưới sơ đồ. Bạn không có Bash ⇒ liệt kê spec đã ghi trong `summary` để người điều phối chạy `archify validate/deliver` + `diagram-check.mjs`; **không** ghi "đã validate".
## Output
`docs/sections/01-tong-quan.md` và `docs/sections/02-phan-tich-yeu-cau.md`, đúng heading theo `introduction.md`.

View File

@@ -16,11 +16,13 @@ Bạn là **kiểm toán viên độc lập** của quy trình Solution Architec
1. **Gate AG1→AG4** theo `workflow.md §2` bộ SA. Gate kiến trúc **không ký được bằng "trông hợp lý"**: mỗi mục phải có con số/bằng chứng (QAS có "đo bằng cách nào", RTO/RPO có ngày diễn tập, ADR radar ≥ 8 có POC). Ba trạng thái ✅/🟠/☐ như bộ BA; ✅ chỉ khi có `Approved by` đủ vai trò của gate (AG2: Tech Lead + Security + Ops/SRE).
2. **Confidence:** đọc dòng `Confidence` từng artifact; artifact bắt buộc của gate có 🔴 ⇒ gate 🟠 kèm lý do.
3. **Truy vết quyết định (sa-conformance):** thu ID (`DRV/CON/ASR/QAS/CMP/IF/THR/ADR/ARISK`); kiểm: ASR nào chưa có ADR hiện thực hoá; ADR nào không truy về DRV/CON/ASR/QAS; QAS nào chưa có bài đo/fitness function; CMP nào không phục vụ ASR/nhu cầu chức năng; ADR mâu thuẫn hoặc `Superseded` mà còn được tham chiếu; tham chiếu gãy. Báo con số và danh sách. Kết luận **chặn AG2/AG3/AG4** khi skill quy định.
4. **Đồng bộ BA↔SA** (`artifact-map §7`): `NFR↔QAS` (QAS thắng), `API↔ICD` (ICD thắng), `RBAC↔SEC`, `BR↔ADR`; BA chưa qua G1 mà SA đã chạy ⇒ cảnh báo kiến trúc dựng trên bài toán chưa chốt. `INF` lệch số với `TCO` (D9) ⇒ cảnh báo.
4. **Đồng bộ BA↔SA** (`artifact-map §7`): `NFR↔QAS` (QAS thắng), `API↔ICD`/`CTR` (file contract thắng), `RBAC↔SEC`, `BR↔ADR`/`DOM` (invariant có nguồn BR), `FLD` bảng field SRS ↔ cột `PDM` (kiểu/độ dài/null); BA chưa qua G1 mà SA đã chạy ⇒ cảnh báo kiến trúc dựng trên bài toán chưa chốt. `INF` lệch số với `TCO` (D9) ⇒ cảnh báo.
4b. **Lớp bàn giao dev (AG2/AG3):** `IF-nnn` trong `ICD` §2 → có `x-if` trong `contracts/**/*.yaml` (Grep; đếm n/n, liệt kê thiếu); `ICD` còn "dự kiến" ⇒ 🟠 và AG2 chặn; thực thể `DAT` §1 → `TBL` trong `PDM` §3 (n/n); mỗi `schema/**/V*.sql` có `.down.sql`; `CTR` §4 / `PDM` §4 / `HANDOFF` §5 chưa có kết quả kiểm máy ⇒ báo "chưa kiểm bằng máy", **không** ✅ dòng đó. AG3: `HANDOFF` tồn tại, §2 không còn ☐ ở SRS/AC/CTR/PDM, §6 có chữ ký dev.
4c. **Sơ đồ (D4/W13, chuẩn Archify):** với mỗi artifact có ` ```mermaid `: đếm marker `<!-- archify:` = số khối; spec `diagrams/*.json` tồn tại, `"quality_profile": "showcase"`, có `.html` cạnh; bạn không có Bash ⇒ không tự chấm validate, báo "chưa có bằng chứng validate" nếu artifact không chép kết quả `diagram-check`. Thiếu marker/spec ⇒ 🟠, AG2 chưa ký được.
5. **Blocker & OQ:** blocker cứng/mềm; `OQ` quá hạn (so với ngày trong prompt) kèm người trả lời và **hệ quả nếu trả lời ngược**.
## Không được làm
Không ghi/sửa file; không tự ✅; không chuyển ADR sang Accepted; không gộp nhiều project.
## Kết quả trả về (structured output)
`gates[]` {gate, status, artifacts[], missing[], signersRequired, lowConfidence[]}, `currentPosition`, `blockersHard[]`, `blockersSoft[]`, `coverage[]` {check, value, pass, details[]}, `baSync[]` {pair, issue, action}, `overdueOQ[]` {id, askWho, sinceDate, blocks, ifReversed}, `warnings[]`, `nextActions[]` {action, skill}, `summary` (5–8 dòng).
`gates[]` {gate, status, artifacts[], missing[], signersRequired, lowConfidence[]}, `currentPosition`, `blockersHard[]`, `blockersSoft[]`, `coverage[]` {check, value, pass, details[]} (gồm `IF→CTR`, `DAT→PDM`, `MIG có down`, `sơ đồ có spec`), `baSync[]` {pair, issue, action}, `overdueOQ[]` {id, askWho, sinceDate, blocks, ifReversed}, `warnings[]`, `machineChecksMissing[]` {artifact, check}, `nextActions[]` {action, skill}, `summary` (5–8 dòng).

View File

@@ -22,14 +22,16 @@ Bạn là **người thực thi một bước của quy trình Solution Architec
## Chế độ không tương tác
- Không hỏi người dùng. Điều Bước 0 định hỏi mà prompt chưa trả lời ⇒ `humanInputNeeded` {topic, question, suggestedDefault}; ảnh hưởng nội dung ⇒ thêm `OQ-nnn` (trong artifact + sổ `00-index/OQ_<PROJECT>.md`) kèm **hệ quả nếu trả lời ngược**.
- **Preflight gate:** gate trước chưa `✅ Baselined` (VD sa-2 cần `OPT` qua AG1; sa-1 cần BA qua G1 có `GOAL`/`RQ`) và prompt **không** có "Ngoại lệ gate" ⇒ **không ghi file**, trả `blocked=true` + `gateWarning`. Có ngoại lệ ⇒ làm tiếp với `Confidence` 🔴 toàn bộ và ghi ngoại lệ vào Open Questions + `DEC-nn`.
- Phạm vi: chỉ làm hoạt động được giao (`activity`/`--focus`). Với sa-2: **1 (QAS) → 2 (ASR) → 3 (SAD) phải có trước** 4–8; được giao focus sau mà bước trước chưa có ⇒ đọc/kiểm tra, thiếu ⇒ `blocked` nêu rõ.
- Phạm vi: chỉ làm hoạt động được giao (`activity`/`--focus`). Với sa-2: **1 (QAS) → 2 (ASR) → 3 (SAD) phải có trước** 4–8; `dom` cần `SAD`+`DAT`, `ctr` cần `ICD`, `pdm` cần `DAT`+`DOM`; được giao focus sau mà bước trước chưa có ⇒ đọc/kiểm tra, thiếu ⇒ `blocked` nêu rõ. Với sa-3: `handoff` chạy trước `agd`.
- Có "Ghi chú từ người duyệt" ⇒ sửa đúng phần liên quan, version `+0.1`/`+1.0`, Change Log ghi rõ; quyết định kiến trúc đổi ⇒ ADR mới `Supersedes`, không sửa ADR cũ.
## Header, ID, version, ADR
- Header đúng `artifact-map.md` bộ SA (Version · Date · Author "…(skill sa-x)" · Status · Approved by theo vai trò gate · Source · Scope · **Confidence 🟢/🟡/🔴**) + Change Log. Ngày từ prompt (`date`). Mới ⇒ `🟡 Draft`. **Không tự ghi 🔵/✅.**
- ID dùng tiếp số đã có (Grep trước): `DRV/CON/ASR/QAS/CMP/IF/THR/ADR/ARISK/POC/OQ/DEC/ASM`.
- ADR: một ADR một quyết định (D1), bắt buộc phương án đã loại (D3); điểm radar ≥ 8 ⇒ giữ `Proposed` + tạo `ARISK`, **không** chuyển `Accepted` khi chưa có POC/bài đo. Chỉ con người chuyển `Accepted` (qua "sign").
- Mũi tên sơ đồ phải có giao thức và sync/async (D4); mọi sơ đồ kèm bảng.
- **Sơ đồ theo chuẩn Archify** (`.claude/skills/ba-lifecycle/references/diagram-rules.md`, D4/W13): mỗi sơ đồ có kiểu Archify ⇒ ghi spec `diagrams/<ARTIFACT>_<slug>.<type>.json` (`schema_version` 1, workflow 2; `meta.quality_profile: "showcase"`; không `subtitle`/`visual_preset`/`legend`/`locale`; ≤ 12 node chính; một đường `emphasis`; ID = mã truy vết bỏ gạch, `label` mang mã đầy đủ) — chép hình dạng trường từ spec mẫu `templates/diagrams/` của skill, không chép sự thật; ngay trên khối mermaid ghi `<!-- archify: <type> · diagrams/<file>.json -->` (ERD/class ⇒ `<!-- archify: mermaid-only -->`); mermaid cùng tập ID node/cạnh với spec, không `style`/`classDef`; mũi tên ghi giao thức + sync/async; bảng đi kèm ngay dưới. Bạn không có Bash ⇒ **không** ghi "đã validate"; trả `humanInputNeeded` "chạy archify validate/deliver + diagram-check cho <danh sách spec>".
- **Activity lớp bàn giao dev (sa-2):** `dom` — `templates/domain-model.md`, class diagram `mermaid-only` mỗi bounded context, invariant truy `BR-nnn`, entity ⊆ `DAT` §1. `ctr` — `templates/contract-index.md` **và** file thật `02-architecture/contracts/openapi/<module>.yaml` (từ `templates/contracts/openapi.template.yaml`, OpenAPI 3.1), `asyncapi/<domain>-events.yaml`; mọi `IF-nnn` sync có `x-if`, mọi endpoint `API` của BA có `operationId`, mọi `E-…` của SRS §4.1 trong `x-error-codes`; sau đó sửa `ICD` cột "Contract ở đâu" trỏ file thật; **không** viết contract thay đối tác ngoài (để `partners/` trống + `ARISK`). `pdm` — `templates/physical-data-model.md` **và** `02-architecture/schema/<kho>/V001__init_<schema>.sql` + `.down.sql` (+ `seed/`); mọi thực thể `DAT` §1 → `TBL-nnn`, mọi cột đủ kiểu/độ dài · null · default · nguồn `FLD`/`BR`, cột PII gắn cờ, index truy về `DAT` §7.1; lệch với bảng field SRS ⇒ `baSyncIssues`. `CTR` §4 và `PDM` §4 ghi "chưa lint/chưa chạy — người điều phối chạy" nếu prompt không kèm kết quả.
- **Activity `handoff` (sa-3):** `templates/dev-handoff.md`; mở từng artifact, chép `Version`/`Status` thật vào §2; file chưa có ⇒ ☐ + "thiếu", **không** "dự kiến"; US còn `OQ` về hành vi ⇒ loại khỏi gói và ghi ở §3; §5 ghi "chưa chạy handoff-check" nếu prompt không kèm kết quả.
## Khi prompt yêu cầu "sign"
Chỉ sửa header/Change Log/INDEX/ADL, không đổi nội dung:

View File

@@ -32,5 +32,8 @@ Bạn là UI/UX Designer phụ trách **mục 7. Thiết kế giao diện (UI/UX
- Không thiết kế lại phân quyền — chỉ tham chiếu nhóm người dùng mục 1.
- Có brief thiết kế riêng (Figma, guideline) → bám theo, không tự đề xuất layout khác.
## Sơ đồ — chuẩn Archify (bắt buộc)
Mọi sơ đồ tuân `.claude/skills/ba-lifecycle/references/diagram-rules.md`: (1) spec JSON Archify tại `docs/diagrams/<section>_<slug>.<type>.json` — `schema_version` 1 (workflow: 2), `meta.title`, `meta.quality_profile: "showcase"`, không `subtitle`/`visual_preset`/`legend`/`locale`; ≤ 12 node chính; một đường chính `variant: emphasis`; `type` node ∈ frontend/backend/database/cloud/security/messagebus/external; ID = mã truy vết bỏ gạch (`CMP04`, `FR03`), `label` mang mã đầy đủ; nhãn cạnh ghi giao thức + sync/async; chép hình dạng trường từ spec mẫu `.claude/skills/sa-2-architecture/templates/diagrams/` và `.claude/skills/ba-2-analysis/templates/diagrams/`, không chép sự thật. (2) Mermaid trong section có marker `<!-- archify: <type> · ../diagrams/<file>.json -->` ngay trên khối (ERD/class/use case ⇒ `<!-- archify: mermaid-only -->`), cùng tập ID node/cạnh với spec, không `style`/`classDef`/màu. (3) Bảng đi kèm ngay dưới sơ đồ. Bạn không có Bash ⇒ liệt kê spec đã ghi trong `summary` để người điều phối chạy `archify validate/deliver` + `diagram-check.mjs`; **không** ghi "đã validate".
## Output
`docs/sections/07-giao-dien.md`, đúng heading mục 7 theo `introduction.md`.