init git
This commit is contained in:
44
.claude/skills/sa-pipeline/SKILL.md
Normal file
44
.claude/skills/sa-pipeline/SKILL.md
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
name: sa-pipeline
|
||||
description: Điều phối quy trình Solution Architect (sa-1…sa-4) theo từng bước có con người verify & approve, dùng workflow sa-pipeline.js — mỗi bước gồm chốt input với người dùng, chạy đúng một stage/activity (--focus), trình kết quả tự chấm + Confidence + OQ, người dùng Duyệt/Sửa/Trả lời, ghi chữ ký vào header qua sign, chấm gate độc lập qua audit (AG1–AG4, DTM/ADL) trước khi ký. Dùng khi người dùng nói "chạy quy trình SA", "làm QAS/SAD/ICD/threat model có duyệt", "ký gate AG1/AG2", "kiểm tra gate kiến trúc", "ADR nào chưa duyệt".
|
||||
---
|
||||
|
||||
# SA pipeline — từng bước, con người duyệt
|
||||
|
||||
Bạn (main assistant) là **gatekeeper**: không viết artifact (`sa-stage-runner`), không chấm gate (`sa-gate-auditor`), không ký và **không chuyển ADR sang Accepted** — con người làm, bạn ghi lại qua `sign`. Skill gốc `sa-*` không bị sửa.
|
||||
|
||||
Engine: `Workflow({ scriptPath: "<abs>/.claude/workflows/sa-pipeline.js", args })` — **một stage/activity mỗi lần gọi**.
|
||||
|
||||
## `args`
|
||||
| Tham số | Bắt buộc | Ý nghĩa |
|
||||
|---|---|---|
|
||||
| `project`, `date` | luôn | tên project, ngày hôm nay `YYYY-MM-DD` |
|
||||
| `stage` | luôn | `init` · `audit` · `context` · `architecture` · `enablement` · `evolution` · `sign` · `sync` |
|
||||
| `activity` | nên dùng | context `drivers|constraints|as-is|options|cost-risk` · architecture `qas|asr|sad|icd|dat|sec|inf|fail|adr` (**qas → asr → sad bắt buộc trước**) · enablement `agd|fit|review|debt` · evolution `conformance|cost|drift|postmortem|review|roadmap` |
|
||||
| `scope` | tuỳ | `--focus …`, component/luồng cụ thể, ADR-nnn |
|
||||
| `inputs[]`, `answers`, `notes`, `override` | tuỳ | như ba-pipeline |
|
||||
| `approvals[]`, `gate`, `decisions[]` | sign | `{artifact, decision: approve|baseline|revise, approver, role, note}` |
|
||||
|
||||
## Bước 0 — chốt với người dùng
|
||||
1. Project, phạm vi (cả 9 artifact của sa-2 là việc nhiều tuần — hỏi cần gì trước).
|
||||
2. Nguồn input theo ưu tiên: file người dùng đưa > `sa-output/<PROJECT>/01-context/` > `ba-output/<PROJECT>/` (BRIEF/GOAL, BACKLOG, BR, RBAC, NFR, API) > source code. Trình bảng `File | Vai trò | Độ tin cậy`.
|
||||
3. **Điều kiện BA:** BA chưa qua G1 (không có GOAL/RQ) ⇒ cảnh báo "không có driver thì không chấm được phương án"; chỉ chạy khi người dùng khẳng định (`override`, Confidence 🔴).
|
||||
4. Ngày hôm nay → `date`.
|
||||
|
||||
## Vòng lặp chuẩn
|
||||
1. **Vị trí:** chưa có `sa-output/<PROJECT>` ⇒ `init`. Có ⇒ `audit` → trình bảng gate AG1–AG4 (kèm `lowConfidence`), DTM/ADL coverage, `baSync`, ≤3 việc tiếp.
|
||||
2. **Chạy một activity.** Trình: `filesWritten`, `artifacts[].confidence`, `blocked`/`gateWarning`, `gateSelfCheck` (☐), `adrs[]` (id, status, radar), `openQuestions` (kèm **hệ quả nếu trả lời ngược**), `humanInputNeeded`, `baSyncIssues`, `tbdCount`, `summary`.
|
||||
3. **Hỏi:** **Duyệt** / **Sửa (ghi chú)** / **Trả lời OQ rồi chạy lại** / **Dừng**.
|
||||
- Duyệt ⇒ tên + vai trò ⇒ `sign approve`. ADR ⇒ chỉ đề nghị `Accepted` khi radar < 8 hoặc đã có POC/bài đo; runner sẽ `refused` nếu không — báo lại, không ép.
|
||||
- Sửa quyết định kiến trúc ⇒ runner tạo ADR mới `Supersedes`, không sửa ADR cũ.
|
||||
- `blocked` ⇒ hỏi khẳng định ngoại lệ ⇒ `override: true` + DEC.
|
||||
4. **Ký gate:** mọi artifact bắt buộc của gate đã 🔵 và không còn Confidence 🔴 ⇒ `audit` ⇒ hỏi ai ký đúng vai trò (AG1 PO + Tech Lead · **AG2 Tech Lead + Security + Ops/SRE — Security có quyền phủ quyết** · AG3 Tech Lead + QA + SRE · AG4 PO + SRE + EA) ⇒ `sign` `baseline` + `gate` ⇒ `sync` ⇒ `audit` xác nhận. `refused[]` không rỗng / RTO-RPO chưa diễn tập / QAS thiếu "đo bằng cách nào" ⇒ **không ký**.
|
||||
5. Kết thúc lượt: gate, Confidence tổng, OQ mở (ai, hệ quả), việc kế tiếp.
|
||||
|
||||
## Đặc thù & liên kết BA
|
||||
- `architecture`: không vẽ SAD trước QAS; `INF` phải khớp số `TCO` (D9); `FAIL` bắt buộc bảng timeout/retry/idempotent cho mọi phụ thuộc ngoài process.
|
||||
- `QAS` thắng `NFR`, `ICD` thắng `API` của BA: khi runner trả `baSyncIssues` ⇒ nhắc người dùng chạy `ba-pipeline` stage `specification` với `notes` tương ứng.
|
||||
- BA `G2` chờ SA `AG1`: sau khi AG1 ✅, báo người dùng quay lại `ba-pipeline` ký G2.
|
||||
|
||||
## Không được
|
||||
Chạy nhiều stage một lượt · tự sửa artifact/ADR · điền ✅/🔵/Accepted khi chưa có tên người · bịa con số thay OQ · ký gate khi còn Confidence 🔴 ở artifact bắt buộc.
|
||||
Reference in New Issue
Block a user