update skill and docs
This commit is contained in:
@@ -11,7 +11,7 @@ cấu trúc thư mục. Những thứ đó thuộc `sa-3-enablement` và Tech Le
|
||||
|
||||
## Đây là giai đoạn dài nhất — đừng chạy một lần
|
||||
|
||||
9 artifact là công việc **nhiều tuần**, không phải một buổi. Cách chạy đúng:
|
||||
12 artifact là công việc **nhiều tuần**, không phải một buổi. Cách chạy đúng:
|
||||
|
||||
```
|
||||
Tuần 1 /sa-2-architecture <P> --focus qas → lượng hoá NFR (làm TRƯỚC mọi thứ)
|
||||
@@ -19,9 +19,13 @@ Tuần 1 /sa-2-architecture <P> --focus qas → lượng hoá NFR (làm TR
|
||||
Tuần 2 /sa-2-architecture <P> --focus sad → phân rã + C4 + ADR kiểu kiến trúc
|
||||
Tuần 3 --focus icd · --focus dat → chạy song song được
|
||||
Tuần 4 --focus sec · --focus inf · --focus fail
|
||||
Tuần 5 --focus dom · --focus ctr · --focus pdm → lớp bàn giao dev: class diagram, OpenAPI/AsyncAPI, schema + DDL/migration
|
||||
Liên tục --focus adr → viết ADR mỗi khi có quyết định
|
||||
```
|
||||
|
||||
🔴 **Không có `CTR` và `PDM` thì dev vẫn phải tự viết contract và schema** — đúng hai chỗ FE/BE lệch
|
||||
nhau nhiều nhất. AG2 chặn khi thiếu.
|
||||
|
||||
🔴 **Thứ tự 1→2→3 là bắt buộc.** Vẽ sơ đồ trước khi có con số thì sơ đồ đó sẽ được bảo vệ
|
||||
bằng mọi giá về sau, kể cả khi con số nói nó sai.
|
||||
|
||||
@@ -40,7 +44,7 @@ bằng mọi giá về sau, kể cả khi con số nói nó sai.
|
||||
## Cú pháp
|
||||
|
||||
```
|
||||
/sa-2-architecture <PROJECT> [--focus qas|asr|sad|adr|icd|dat|sec|inf|fail|all] [--out <path>] [go]
|
||||
/sa-2-architecture <PROJECT> [--focus qas|asr|sad|adr|icd|dat|sec|inf|fail|dom|ctr|pdm|all] [--out <path>] [go]
|
||||
```
|
||||
|
||||
| `--focus` | Sinh ra | Cần có trước |
|
||||
@@ -54,7 +58,10 @@ bằng mọi giá về sau, kể cả khi con số nói nó sai.
|
||||
| `inf` | `INF` — hạ tầng, HA/DR | `SAD`, `QAS`, `TCO` |
|
||||
| `fail` | `FAIL` — đường lỗi | `SAD`, `ICD` |
|
||||
| `adr` | Một `ADR` mới | — |
|
||||
| `all` | Cả 9 *(cảnh báo: rất dài)* | |
|
||||
| `dom` | `DOM` — domain model, class diagram theo bounded context, invariant ↔ `BR` | `SAD`, `DAT`, `BR` của BA |
|
||||
| `ctr` | `CTR` + **file thật** `contracts/openapi/*.yaml`, `contracts/asyncapi/*.yaml` | `ICD`, `API` + SRS §4.1 của BA |
|
||||
| `pdm` | `PDM` + **file thật** `schema/<kho>/V001__*.sql` (+ `.down.sql`, seed) | `DAT`, `DOM`, bảng field SRS, `SEC` §5 |
|
||||
| `all` | Cả 12 *(cảnh báo: rất dài)* | |
|
||||
|
||||
Viết một ADR cụ thể:
|
||||
|
||||
@@ -75,6 +82,9 @@ Viết một ADR cụ thể:
|
||||
| `sec` | `RBAC` của BA, chính sách bảo mật doanh nghiệp, **người của Security** | Bị phủ quyết ở AG2 |
|
||||
| `inf` | Báo giá cloud, `TCO`, năng lực đội SRE | `INF` lệch `TCO` |
|
||||
| `fail` | SLA của mọi hệ thống ngoài | Không biết degrade thế nào |
|
||||
| `dom` | `BR` đã qua G2, `DAT` §1 ownership | Aggregate vẽ theo bảng, invariant kiểm sai chỗ |
|
||||
| `ctr` | `ICD` xong, `API` + mã lỗi SRS của BA, tài liệu API đối tác thật | Contract "dự kiến", FE/BE mỗi bên một bản |
|
||||
| `pdm` | `DAT`, `DOM`, bảng field `FLD-*` của SRS, công cụ migration team dùng | UI chặn 40 ký tự, DB nhận 255 — dữ liệu bẩn |
|
||||
|
||||
🔴 **Bước `sec` cần một người thật từ Security ngồi cùng.** Skill dựng được threat model,
|
||||
nhưng người có quyền phủ quyết phải tham gia từ đầu, không phải lúc trình gate.
|
||||
@@ -91,6 +101,17 @@ sa-output/<PROJECT>/02-architecture/
|
||||
├── SEC_<PROJECT>_v1.0.md ← Security ký
|
||||
├── INF_<PROJECT>_v1.0.md ← SRE ký
|
||||
├── FAIL_<PROJECT>_v1.0.md
|
||||
├── DOM_<PROJECT>_v1.0.md ← class diagram theo bounded context, dev BE đọc
|
||||
├── CTR_<PROJECT>_v1.0.md ← mục lục + biên bản lint contract
|
||||
├── PDM_<PROJECT>_v1.0.md ← schema vật lý đủ cột, DBA + dev BE ký
|
||||
├── contracts/
|
||||
│ ├── openapi/<module>.yaml ← OpenAPI 3.1 — nguồn sự thật, thắng mọi bảng
|
||||
│ ├── asyncapi/<domain>-events.yaml
|
||||
│ └── partners/<ten>.yaml ← mirror tài liệu đối tác (ghi nguồn)
|
||||
├── schema/<kho>/
|
||||
│ ├── V001__init_<schema>.sql · V001__init_<schema>.down.sql
|
||||
│ └── seed/R__reference_data.sql
|
||||
├── diagrams/ ← spec Archify (.json) + HTML đã deliver, một cặp mỗi sơ đồ
|
||||
└── adr/
|
||||
├── ADR-001_kieu-kien-truc.md
|
||||
├── ADR-002_chon-csdl-chinh.md
|
||||
@@ -194,4 +215,7 @@ Rồi chạy `/sa-3-enablement <PROJECT>`.
|
||||
- Template: `templates/quality-scenarios.md` · `templates/sad.md` · `templates/adr.md` ·
|
||||
`templates/interface-catalog.md` · `templates/data-architecture.md` ·
|
||||
`templates/security-architecture.md` · `templates/infrastructure-design.md` ·
|
||||
`templates/failure-mode.md`
|
||||
`templates/failure-mode.md` · `templates/domain-model.md` · `templates/contract-index.md` (+
|
||||
`templates/contracts/*.template.yaml`) · `templates/physical-data-model.md`
|
||||
- Chuẩn sơ đồ Archify: `../ba-lifecycle/references/diagram-rules.md`; spec mẫu `templates/diagrams/`
|
||||
- Kiểm bằng máy: `scripts/contract-check.mjs` (CTR) · `../ba-lifecycle/scripts/diagram-check.mjs` (sơ đồ)
|
||||
|
||||
Reference in New Issue
Block a user